From 1daa10fb356cb01d80eaa3fd13c8c1d9a53ea343 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Wed, 7 Jun 2023 13:29:01 -0700 Subject: [Strings] Fix non-nullable string emitting in the binary format (#5756) Related to #5737 which did something similar for other types. --- src/wasm/wasm-binary.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp index 1d0e99415..7b3f741b6 100644 --- a/src/wasm/wasm-binary.cpp +++ b/src/wasm/wasm-binary.cpp @@ -1401,9 +1401,15 @@ void WasmBinaryWriter::writeType(Type type) { o << S32LEB(BinaryConsts::EncodedType::funcref); return; } - assert(Type::isSubType(type, Type(HeapType::ext, Nullable))); - o << S32LEB(BinaryConsts::EncodedType::externref); - return; + if (Type::isSubType(type, Type(HeapType::ext, Nullable))) { + o << S32LEB(BinaryConsts::EncodedType::externref); + return; + } + if (Type::isSubType(type, Type(HeapType::string, Nullable))) { + o << S32LEB(BinaryConsts::EncodedType::stringref); + return; + } + WASM_UNREACHABLE("bad type without GC"); } auto heapType = type.getHeapType(); if (heapType.isBasic() && type.isNullable()) { -- cgit v1.2.3