summaryrefslogtreecommitdiff
path: root/src/wasm/wasm-binary.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/wasm/wasm-binary.cpp')
-rw-r--r--src/wasm/wasm-binary.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/wasm/wasm-binary.cpp b/src/wasm/wasm-binary.cpp
index 28a630c4a..869b44f2c 100644
--- a/src/wasm/wasm-binary.cpp
+++ b/src/wasm/wasm-binary.cpp
@@ -1500,6 +1500,9 @@ void WasmBinaryWriter::writeType(Type type) {
case HeapType::func:
o << S32LEB(BinaryConsts::EncodedType::funcref);
return;
+ case HeapType::cont:
+ o << S32LEB(BinaryConsts::EncodedType::contref);
+ return;
case HeapType::eq:
o << S32LEB(BinaryConsts::EncodedType::eqref);
return;
@@ -1539,6 +1542,9 @@ void WasmBinaryWriter::writeType(Type type) {
case HeapType::noexn:
o << S32LEB(BinaryConsts::EncodedType::nullexnref);
return;
+ case HeapType::nocont:
+ o << S32LEB(BinaryConsts::EncodedType::nullcontref);
+ return;
}
}
if (type.isNullable()) {
@@ -1612,6 +1618,9 @@ void WasmBinaryWriter::writeHeapType(HeapType type) {
case HeapType::func:
ret = BinaryConsts::EncodedHeapType::func;
break;
+ case HeapType::cont:
+ ret = BinaryConsts::EncodedHeapType::cont;
+ break;
case HeapType::any:
ret = BinaryConsts::EncodedHeapType::any;
break;
@@ -1654,6 +1663,9 @@ void WasmBinaryWriter::writeHeapType(HeapType type) {
case HeapType::noexn:
ret = BinaryConsts::EncodedHeapType::noexn;
break;
+ case HeapType::nocont:
+ ret = BinaryConsts::EncodedHeapType::nocont;
+ break;
}
o << S64LEB(ret); // TODO: Actually s33
}
@@ -1986,6 +1998,9 @@ bool WasmBinaryReader::getBasicType(int32_t code, Type& out) {
case BinaryConsts::EncodedType::funcref:
out = Type(HeapType::func, Nullable);
return true;
+ case BinaryConsts::EncodedType::contref:
+ out = Type(HeapType::cont, Nullable);
+ return true;
case BinaryConsts::EncodedType::externref:
out = Type(HeapType::ext, Nullable);
return true;
@@ -2031,6 +2046,9 @@ bool WasmBinaryReader::getBasicType(int32_t code, Type& out) {
case BinaryConsts::EncodedType::nullexnref:
out = Type(HeapType::noexn, Nullable);
return true;
+ case BinaryConsts::EncodedType::nullcontref:
+ out = Type(HeapType::nocont, Nullable);
+ return true;
default:
return false;
}
@@ -2041,6 +2059,9 @@ bool WasmBinaryReader::getBasicHeapType(int64_t code, HeapType& out) {
case BinaryConsts::EncodedHeapType::func:
out = HeapType::func;
return true;
+ case BinaryConsts::EncodedHeapType::cont:
+ out = HeapType::func;
+ return true;
case BinaryConsts::EncodedHeapType::ext:
out = HeapType::ext;
return true;
@@ -2086,6 +2107,9 @@ bool WasmBinaryReader::getBasicHeapType(int64_t code, HeapType& out) {
case BinaryConsts::EncodedHeapType::noexn:
out = HeapType::noexn;
return true;
+ case BinaryConsts::EncodedHeapType::nocont:
+ out = HeapType::nocont;
+ return true;
default:
return false;
}