diff options
author | Sam Clegg <sbc@chromium.org> | 2019-11-07 18:42:51 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-11-07 18:42:51 -0800 |
commit | 2e2991e5a0e6a75d57c9ed6ff7ee0ae88adf253f (patch) | |
tree | 724bddd7110147c66163e6f230d4456e1e1e870f /src/binary-reader.cc | |
parent | 2561eaca9cdba262eaa1e74ce877ffc7be543323 (diff) | |
download | wabt-2e2991e5a0e6a75d57c9ed6ff7ee0ae88adf253f.tar.gz wabt-2e2991e5a0e6a75d57c9ed6ff7ee0ae88adf253f.tar.bz2 wabt-2e2991e5a0e6a75d57c9ed6ff7ee0ae88adf253f.zip |
Initial implementation of reftype proposal in the interpreter. (#1206)
- Implement ref.func everywhere.
- Implement table.get and table.set in the interpreter.
Diffstat (limited to 'src/binary-reader.cc')
-rw-r--r-- | src/binary-reader.cc | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/binary-reader.cc b/src/binary-reader.cc index 52e49000..cbc254a8 100644 --- a/src/binary-reader.cc +++ b/src/binary-reader.cc @@ -390,6 +390,9 @@ bool BinaryReader::IsConcreteType(Type type) { case Type::Anyref: return options_.features.reference_types_enabled(); + case Type::Funcref: + return options_.features.reference_types_enabled(); + default: return false; } @@ -1482,6 +1485,14 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { break; } + case Opcode::RefFunc: { + Index func; + CHECK_RESULT(ReadIndex(&func, "func index")); + CALLBACK(OnRefFuncExpr, func); + CALLBACK(OnOpcodeUint32, func); + break; + } + case Opcode::RefNull: { CALLBACK(OnRefNullExpr); CALLBACK0(OnOpcodeBare); |