diff options
author | Sam Clegg <sbc@chromium.org> | 2019-11-15 11:46:13 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-15 11:46:13 -0800 |
commit | 8b554c8d21f3f9cd9d052ef91a370a032f75aba3 (patch) | |
tree | 0576692bee296a9726cdb37691cef22baf22822e /src/wast-parser.cc | |
parent | 2ce48702f02fe25b662a4625344a5a610ba23130 (diff) | |
download | wabt-8b554c8d21f3f9cd9d052ef91a370a032f75aba3.tar.gz wabt-8b554c8d21f3f9cd9d052ef91a370a032f75aba3.tar.bz2 wabt-8b554c8d21f3f9cd9d052ef91a370a032f75aba3.zip |
wast2json: add new `assert_return_func` assertion type (#1224)
This is needed for running the reference-types tests.
See: #1223
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); |