diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/wasm/wasm-s-parser.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/wasm/wasm-s-parser.cpp b/src/wasm/wasm-s-parser.cpp index 64d7a21a2..91d4c129c 100644 --- a/src/wasm/wasm-s-parser.cpp +++ b/src/wasm/wasm-s-parser.cpp @@ -1190,7 +1190,8 @@ Type SExpressionWasmBuilder::stringToType(std::string_view str, if (str.substr(0, 6) == "i31ref" && (prefix || str.size() == 6)) { return Type(HeapType::i31, Nullable); } - if (str.substr(0, 7) == "dataref" && (prefix || str.size() == 7)) { + if ((str.substr(0, 7) == "dataref" && (prefix || str.size() == 7)) || + (str.substr(0, 9) == "structref" && (prefix || str.size() == 9))) { return Type(HeapType::data, Nullable); } if (str.substr(0, 9) == "stringref" && (prefix || str.size() == 9)) { @@ -1238,7 +1239,8 @@ HeapType SExpressionWasmBuilder::stringToHeapType(std::string_view str, if (str.substr(0, 3) == "i31" && (prefix || str.size() == 3)) { return HeapType::i31; } - if (str.substr(0, 4) == "data" && (prefix || str.size() == 4)) { + if ((str.substr(0, 4) == "data" && (prefix || str.size() == 4)) || + (str.substr(0, 6) == "struct" && (prefix || str.size() == 6))) { return HeapType::data; } if (str.substr(0, 6) == "string" && (prefix || str.size() == 6)) { |