diff options
Diffstat (limited to 'src/wast-parser.cc')
-rw-r--r-- | src/wast-parser.cc | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/wast-parser.cc b/src/wast-parser.cc index 25f73205..eab00380 100644 --- a/src/wast-parser.cc +++ b/src/wast-parser.cc @@ -220,6 +220,7 @@ bool IsCommand(TokenTypePair pair) { case TokenType::AssertInvalid: case TokenType::AssertMalformed: case TokenType::AssertReturn: + case TokenType::AssertReturnFunc: case TokenType::AssertReturnArithmeticNan: case TokenType::AssertReturnCanonicalNan: case TokenType::AssertTrap: @@ -2383,6 +2384,9 @@ Result WastParser::ParseCommand(Script* script, CommandPtr* out_command) { case TokenType::AssertReturn: return ParseAssertReturnCommand(out_command); + case TokenType::AssertReturnFunc: + return ParseAssertReturnFuncCommand(out_command); + case TokenType::AssertReturnArithmeticNan: return ParseAssertReturnArithmeticNanCommand(out_command); @@ -2441,6 +2445,17 @@ Result WastParser::ParseAssertReturnCommand(CommandPtr* out_command) { return Result::Ok; } +Result WastParser::ParseAssertReturnFuncCommand(CommandPtr* out_command) { + WABT_TRACE(ParseAssertReturnFuncCommand); + EXPECT(Lpar); + EXPECT(AssertReturnFunc); + auto command = MakeUnique<AssertReturnFuncCommand>(); + CHECK_RESULT(ParseAction(&command->action)); + EXPECT(Rpar); + *out_command = std::move(command); + return Result::Ok; +} + Result WastParser::ParseAssertReturnArithmeticNanCommand( CommandPtr* out_command) { WABT_TRACE(ParseAssertReturnArithmeticNanCommand); |