diff options
Diffstat (limited to 'src/wasm/wasm-s-parser.cpp')
-rw-r--r-- | src/wasm/wasm-s-parser.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp index b2212db18..b9927cbc7 100644 --- a/src/wasm/wasm-s-parser.cpp +++ b/src/wasm/wasm-s-parser.cpp @@ -51,7 +51,7 @@ int unhex(char c) { namespace wasm { static Name STRUCT("struct"), FIELD("field"), ARRAY("array"), I8("i8"), - I16("i16"), RTT("rtt"), REF_IS_NULL("ref.is_null"); + I16("i16"), RTT("rtt"); static Address getAddress(const Element* s) { return atoll(s->c_str()); } @@ -1922,13 +1922,9 @@ Expression* SExpressionWasmBuilder::makeRefNull(Element& s) { return ret; } -Expression* SExpressionWasmBuilder::makeRefIs(Element& s) { +Expression* SExpressionWasmBuilder::makeRefIs(Element& s, RefIsOp op) { auto ret = allocator.alloc<RefIs>(); - if (*s[0] == REF_IS_NULL) { - ret->op = RefIsNull; - } else { - WASM_UNREACHABLE("unimplemented ref.is_*"); - } + ret->op = op; ret->value = parseExpression(s[1]); ret->finalize(); return ret; |