diff options
Diffstat (limited to 'src/wast-parser.cc')
-rw-r--r-- | src/wast-parser.cc | 10 |
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; } |