diff options
author | Alon Zakai <azakai@google.com> | 2022-06-29 09:34:26 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-29 09:34:26 -0700 |
commit | 7f75427f7671562874a22981c9dcc4a8e223f48b (patch) | |
tree | bd3237d5b43197127e7a17c63fec3b9f5102b5f9 /src/wasm/wasm-binary.cpp | |
parent | 9dbe45780d8c78dbb49c208fe4505cd1624a98ac (diff) | |
download | binaryen-7f75427f7671562874a22981c9dcc4a8e223f48b.tar.gz binaryen-7f75427f7671562874a22981c9dcc4a8e223f48b.tar.bz2 binaryen-7f75427f7671562874a22981c9dcc4a8e223f48b.zip |
[Strings] Add string proposal types (#4755)
This starts to implement the Wasm Strings proposal
https://github.com/WebAssembly/stringref/blob/main/proposals/stringref/Overview.md
This just adds the types.
Diffstat (limited to 'src/wasm/wasm-binary.cpp')
-rw-r--r-- | src/wasm/wasm-binary.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp index b74331aed..87ee00c8a 100644 --- a/src/wasm/wasm-binary.cpp +++ b/src/wasm/wasm-binary.cpp @@ -1351,6 +1351,18 @@ void WasmBinaryWriter::writeHeapType(HeapType type) { case HeapType::data: ret = BinaryConsts::EncodedHeapType::data; break; + case HeapType::string: + ret = BinaryConsts::EncodedHeapType::string; + break; + case HeapType::stringview_wtf8: + ret = BinaryConsts::EncodedHeapType::stringview_wtf8_heap; + break; + case HeapType::stringview_wtf16: + ret = BinaryConsts::EncodedHeapType::stringview_wtf16_heap; + break; + case HeapType::stringview_iter: + ret = BinaryConsts::EncodedHeapType::stringview_iter_heap; + break; } } else { WASM_UNREACHABLE("TODO: compound GC types"); @@ -1699,6 +1711,18 @@ bool WasmBinaryBuilder::getBasicType(int32_t code, Type& out) { case BinaryConsts::EncodedType::dataref: out = Type(HeapType::data, NonNullable); return true; + case BinaryConsts::EncodedType::stringref: + out = Type(HeapType::string, Nullable); + return true; + case BinaryConsts::EncodedType::stringview_wtf8: + out = Type(HeapType::stringview_wtf8, Nullable); + return true; + case BinaryConsts::EncodedType::stringview_wtf16: + out = Type(HeapType::stringview_wtf16, Nullable); + return true; + case BinaryConsts::EncodedType::stringview_iter: + out = Type(HeapType::stringview_iter, Nullable); + return true; default: return false; } @@ -1721,6 +1745,18 @@ bool WasmBinaryBuilder::getBasicHeapType(int64_t code, HeapType& out) { case BinaryConsts::EncodedHeapType::data: out = HeapType::data; return true; + case BinaryConsts::EncodedHeapType::string: + out = HeapType::string; + return true; + case BinaryConsts::EncodedHeapType::stringview_wtf8_heap: + out = HeapType::stringview_wtf8; + return true; + case BinaryConsts::EncodedHeapType::stringview_wtf16_heap: + out = HeapType::stringview_wtf16; + return true; + case BinaryConsts::EncodedHeapType::stringview_iter_heap: + out = HeapType::stringview_iter; + return true; default: return false; } |