summaryrefslogtreecommitdiff
path: root/src/wast-parser.cc
diff options
context:
space:
mode:
authorSam Clegg <sbc@chromium.org>2019-11-15 11:46:13 -0800
committerGitHub <noreply@github.com>2019-11-15 11:46:13 -0800
commit8b554c8d21f3f9cd9d052ef91a370a032f75aba3 (patch)
tree0576692bee296a9726cdb37691cef22baf22822e /src/wast-parser.cc
parent2ce48702f02fe25b662a4625344a5a610ba23130 (diff)
downloadwabt-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.cc15
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);