summaryrefslogtreecommitdiff
path: root/src/wast-parser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/wast-parser.cc')
-rw-r--r--src/wast-parser.cc10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/wast-parser.cc b/src/wast-parser.cc
index 82074da9..5748e812 100644
--- a/src/wast-parser.cc
+++ b/src/wast-parser.cc
@@ -608,14 +608,22 @@ bool WastParser::ParseAlignOpt(uint32_t* out_align) {
Result WastParser::ParseLimits(Limits* out_limits) {
WABT_TRACE(ParseLimits);
- CHECK_RESULT(ParseNat(&out_limits->initial));
+ if (PeekMatch(TokenType::Lpar)) {
+ Consume();
+ EXPECT(Shared);
+ out_limits->is_shared = true;
+ }
+ CHECK_RESULT(ParseNat(&out_limits->initial));
if (PeekMatch(TokenType::Nat)) {
CHECK_RESULT(ParseNat(&out_limits->max));
out_limits->has_max = true;
} else {
out_limits->has_max = false;
}
+ if (out_limits->is_shared) {
+ EXPECT(Rpar);
+ }
return Result::Ok;
}