diff options
108 files changed, 4160 insertions, 3800 deletions
diff --git a/docs/wast2json.md b/docs/wast2json.md index efd7f853..90fcd5ee 100644 --- a/docs/wast2json.md +++ b/docs/wast2json.md @@ -153,14 +153,14 @@ types are supported, with the given JSON format: | "f32" | `{"type": "f32", "value": <string>}` | | "f64" | `{"type": "f64", "value": <string>}` | -The `reference-types` proposal adds three more valid types: +The `reference-types` proposal adds three more valid types. In each case the +value can either be an integer or `"null"`: | type | JSON format | | - | - | -| "nullref" | `{"type": "nullref", "value": ""}` | -| "hostref" | `{"type": "hostref", "value": <string>}` | +| "externref" | `{"type": "externref", "value": <string>}` | | "funcref" | `{"type": "funcref", "value": <string>}` | - +| "exnref" | `{"type": "exnref", "value": <string>}` | The `simd` proposal adds another type, with a slightly different syntax. diff --git a/src/binary-reader-ir.cc b/src/binary-reader-ir.cc index e1bac665..d1a4ecf2 100644 --- a/src/binary-reader-ir.cc +++ b/src/binary-reader-ir.cc @@ -184,8 +184,8 @@ class BinaryReaderIR : public BinaryReaderNop { Result OnTableSizeExpr(Index table_index) override; Result OnTableFillExpr(Index table_index) override; Result OnRefFuncExpr(Index func_index) override; - Result OnRefNullExpr() override; - Result OnRefIsNullExpr() override; + Result OnRefNullExpr(Type type) override; + Result OnRefIsNullExpr(Type type) override; Result OnNopExpr() override; Result OnRethrowExpr() override; Result OnReturnExpr() override; @@ -213,7 +213,7 @@ class BinaryReaderIR : public BinaryReaderNop { Result EndElemSegmentInitExpr(Index index) override; Result OnElemSegmentElemType(Index index, Type elem_type) override; Result OnElemSegmentElemExprCount(Index index, Index count) override; - Result OnElemSegmentElemExpr_RefNull(Index segment_index) override; + Result OnElemSegmentElemExpr_RefNull(Index segment_index, Type type) override; Result OnElemSegmentElemExpr_RefFunc(Index segment_index, Index func_index) override; @@ -247,7 +247,7 @@ class BinaryReaderIR : public BinaryReaderNop { Result OnInitExprGlobalGetExpr(Index index, Index global_index) override; Result OnInitExprI32ConstExpr(Index index, uint32_t value) override; Result OnInitExprI64ConstExpr(Index index, uint64_t value) override; - Result OnInitExprRefNull(Index index) override; + Result OnInitExprRefNull(Index index, Type type) override; Result OnInitExprRefFunc(Index index, Index func_index) override; Result OnDataSymbol(Index index, uint32_t flags, string_view name, @@ -914,12 +914,12 @@ Result BinaryReaderIR::OnRefFuncExpr(Index func_index) { return AppendExpr(MakeUnique<RefFuncExpr>(Var(func_index))); } -Result BinaryReaderIR::OnRefNullExpr() { - return AppendExpr(MakeUnique<RefNullExpr>()); +Result BinaryReaderIR::OnRefNullExpr(Type type) { + return AppendExpr(MakeUnique<RefNullExpr>(type)); } -Result BinaryReaderIR::OnRefIsNullExpr() { - return AppendExpr(MakeUnique<RefIsNullExpr>()); +Result BinaryReaderIR::OnRefIsNullExpr(Type type) { + return AppendExpr(MakeUnique<RefIsNullExpr>(type)); } Result BinaryReaderIR::OnNopExpr() { @@ -1073,10 +1073,11 @@ Result BinaryReaderIR::OnElemSegmentElemExprCount(Index index, Index count) { return Result::Ok; } -Result BinaryReaderIR::OnElemSegmentElemExpr_RefNull(Index segment_index) { +Result BinaryReaderIR::OnElemSegmentElemExpr_RefNull(Index segment_index, + Type type) { assert(segment_index == module_->elem_segments.size() - 1); ElemSegment* segment = module_->elem_segments[segment_index]; - segment->elem_exprs.emplace_back(); + segment->elem_exprs.emplace_back(type); return Result::Ok; } @@ -1226,9 +1227,9 @@ Result BinaryReaderIR::OnInitExprI64ConstExpr(Index index, uint64_t value) { return Result::Ok; } -Result BinaryReaderIR::OnInitExprRefNull(Index index) { +Result BinaryReaderIR::OnInitExprRefNull(Index index, Type type) { Location loc = GetLocation(); - current_init_expr_->push_back(MakeUnique<RefNullExpr>(loc)); + current_init_expr_->push_back(MakeUnique<RefNullExpr>(type, loc)); return Result::Ok; } diff --git a/src/binary-reader-logging.cc b/src/binary-reader-logging.cc index c3e7e750..ef24ad0e 100644 --- a/src/binary-reader-logging.cc +++ b/src/binary-reader-logging.cc @@ -652,12 +652,24 @@ Result BinaryReaderLogging::OnComdatEntry(ComdatType kind, Index index) { return reader_->name(value); \ } +#define DEFINE_TYPE(name) \ + Result BinaryReaderLogging::name(Type type) { \ + LOGF(#name "(%s)\n", type.GetName()); \ + return reader_->name(type); \ + } + #define DEFINE_INDEX_DESC(name, desc) \ Result BinaryReaderLogging::name(Index value) { \ LOGF(#name "(" desc ": %" PRIindex ")\n", value); \ return reader_->name(value); \ } +#define DEFINE_INDEX_TYPE(name) \ + Result BinaryReaderLogging::name(Index value, Type type) { \ + LOGF(#name "(index: %" PRIindex ", type: %s)\n", value, type.GetName()); \ + return reader_->name(value, type); \ + } + #define DEFINE_INDEX_INDEX(name, desc0, desc1) \ Result BinaryReaderLogging::name(Index value0, Index value1) { \ LOGF(#name "(" desc0 ": %" PRIindex ", " desc1 ": %" PRIindex ")\n", \ @@ -777,8 +789,8 @@ DEFINE_INDEX(OnTableGrowExpr) DEFINE_INDEX(OnTableSizeExpr) DEFINE_INDEX_DESC(OnTableFillExpr, "table index") DEFINE_INDEX(OnRefFuncExpr) -DEFINE0(OnRefNullExpr) -DEFINE0(OnRefIsNullExpr) +DEFINE_TYPE(OnRefNullExpr) +DEFINE_TYPE(OnRefIsNullExpr) DEFINE0(OnNopExpr) DEFINE0(OnRethrowExpr); DEFINE_INDEX_DESC(OnReturnCallExpr, "func_index") @@ -798,7 +810,7 @@ DEFINE_INDEX(OnElemSegmentCount) DEFINE_INDEX(BeginElemSegmentInitExpr) DEFINE_INDEX(EndElemSegmentInitExpr) DEFINE_INDEX_INDEX(OnElemSegmentElemExprCount, "index", "count") -DEFINE_INDEX(OnElemSegmentElemExpr_RefNull) +DEFINE_INDEX_TYPE(OnElemSegmentElemExpr_RefNull) DEFINE_INDEX_INDEX(OnElemSegmentElemExpr_RefFunc, "index", "func_index") DEFINE_INDEX(EndElemSegment) DEFINE_END(EndElemSection) @@ -825,7 +837,7 @@ DEFINE_BEGIN(BeginRelocSection) DEFINE_END(EndRelocSection) DEFINE_INDEX_INDEX(OnInitExprGlobalGetExpr, "index", "global_index") -DEFINE_INDEX(OnInitExprRefNull) +DEFINE_INDEX_TYPE(OnInitExprRefNull) DEFINE_INDEX_INDEX(OnInitExprRefFunc, "index", "func_index") DEFINE_BEGIN(BeginDylinkSection) @@ -891,6 +903,10 @@ Result BinaryReaderLogging::OnOpcodeBlockSig(Type sig_type) { return reader_->OnOpcodeBlockSig(sig_type); } +Result BinaryReaderLogging::OnOpcodeType(Type type) { + return reader_->OnOpcodeType(type); +} + Result BinaryReaderLogging::OnEndFunc() { return reader_->OnEndFunc(); } diff --git a/src/binary-reader-logging.h b/src/binary-reader-logging.h index 9f70b61a..f5936562 100644 --- a/src/binary-reader-logging.h +++ b/src/binary-reader-logging.h @@ -140,6 +140,7 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result OnOpcodeF64(uint64_t value) override; Result OnOpcodeV128(v128 value) override; Result OnOpcodeBlockSig(Type sig_type) override; + Result OnOpcodeType(Type type) override; Result OnAtomicLoadExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override; @@ -199,8 +200,8 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result OnTableSizeExpr(Index table) override; Result OnTableFillExpr(Index table) override; Result OnRefFuncExpr(Index index) override; - Result OnRefNullExpr() override; - Result OnRefIsNullExpr() override; + Result OnRefNullExpr(Type type) override; + Result OnRefIsNullExpr(Type type) override; Result OnNopExpr() override; Result OnRethrowExpr() override; Result OnReturnCallExpr(Index func_index) override; @@ -239,7 +240,7 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result EndElemSegmentInitExpr(Index index) override; Result OnElemSegmentElemType(Index index, Type elem_type) override; Result OnElemSegmentElemExprCount(Index index, Index count) override; - Result OnElemSegmentElemExpr_RefNull(Index segment_index) override; + Result OnElemSegmentElemExpr_RefNull(Index segment_index, Type type) override; Result OnElemSegmentElemExpr_RefFunc(Index segment_index, Index func_index) override; Result EndElemSegment(Index index) override; @@ -347,7 +348,7 @@ class BinaryReaderLogging : public BinaryReaderDelegate { Result OnInitExprGlobalGetExpr(Index index, Index global_index) override; Result OnInitExprI32ConstExpr(Index index, uint32_t value) override; Result OnInitExprI64ConstExpr(Index index, uint64_t value) override; - Result OnInitExprRefNull(Index index) override; + Result OnInitExprRefNull(Index index, Type type) override; Result OnInitExprRefFunc(Index index, Index func_index) override; private: diff --git a/src/binary-reader-nop.h b/src/binary-reader-nop.h index 6caed9a8..1159476a 100644 --- a/src/binary-reader-nop.h +++ b/src/binary-reader-nop.h @@ -190,6 +190,7 @@ class BinaryReaderNop : public BinaryReaderDelegate { Result OnOpcodeF64(uint64_t value) override { return Result::Ok; } Result OnOpcodeV128(v128 value) override { return Result::Ok; } Result OnOpcodeBlockSig(Type sig_type) override { return Result::Ok; } + Result OnOpcodeType(Type type) override { return Result::Ok; } Result OnAtomicLoadExpr(Opcode opcode, uint32_t alignment_log2, Address offset) override { @@ -276,8 +277,8 @@ class BinaryReaderNop : public BinaryReaderDelegate { Result OnTableSizeExpr(Index table_index) override { return Result::Ok; } Result OnTableFillExpr(Index table_index) override { return Result::Ok; } Result OnRefFuncExpr(Index func_index) override { return Result::Ok; } - Result OnRefNullExpr() override { return Result::Ok; } - Result OnRefIsNullExpr() override { return Result::Ok; } + Result OnRefNullExpr(Type type) override { return Result::Ok; } + Result OnRefIsNullExpr(Type type) override { return Result::Ok; } Result OnNopExpr() override { return Result::Ok; } Result OnRethrowExpr() override { return Result::Ok; } Result OnReturnCallExpr(Index sig_index) override { return Result::Ok; } @@ -324,7 +325,8 @@ class BinaryReaderNop : public BinaryReaderDelegate { Result OnElemSegmentElemExprCount(Index index, Index count) override { return Result::Ok; } - Result OnElemSegmentElemExpr_RefNull(Index segment_index) override { + Result OnElemSegmentElemExpr_RefNull(Index segment_index, + Type type) override { return Result::Ok; } Result OnElemSegmentElemExpr_RefFunc(Index segment_index, @@ -508,7 +510,7 @@ class BinaryReaderNop : public BinaryReaderDelegate { Result OnInitExprI64ConstExpr(Index index, uint64_t value) override { return Result::Ok; } - Result OnInitExprRefNull(Index index) override { + Result OnInitExprRefNull(Index index, Type type) override { return Result::Ok; } Result OnInitExprRefFunc(Index index, Index func_index) override { diff --git a/src/binary-reader-objdump.cc b/src/binary-reader-objdump.cc index e21a7ff9..7570b8df 100644 --- a/src/binary-reader-objdump.cc +++ b/src/binary-reader-objdump.cc @@ -403,6 +403,7 @@ class BinaryReaderObjdumpDisassemble : public BinaryReaderObjdumpBase { Result OnOpcodeF64(uint64_t value) override; Result OnOpcodeV128(v128 value) override; Result OnOpcodeBlockSig(Type sig_type) override; + Result OnOpcodeType(Type type) override; Result OnBrTableExpr(Index num_targets, Index* target_depths, @@ -636,6 +637,12 @@ Result BinaryReaderObjdumpDisassemble::OnOpcodeV128(v128 value) { return Result::Ok; } +Result BinaryReaderObjdumpDisassemble::OnOpcodeType(Type type) { + Offset immediate_len = state->offset - current_opcode_offset; + LogOpcode(immediate_len, type.GetRefKindName()); + return Result::Ok; +} + Result BinaryReaderObjdumpDisassemble::OnBrTableExpr( Index num_targets, Index* target_depths, @@ -697,6 +704,8 @@ enum class InitExprType { V128, Global, FuncRef, + // TODO: There isn't a nullref anymore, this just represents ref.null of some + // type T. NullRef, }; @@ -709,6 +718,7 @@ struct InitExpr { uint64_t i64; uint64_t f64; v128 v128_v; + Type type; } value; }; @@ -804,7 +814,7 @@ class BinaryReaderObjdump : public BinaryReaderObjdumpBase { uint8_t flags) override; Result OnElemSegmentElemType(Index index, Type elem_type) override; Result OnElemSegmentElemExprCount(Index index, Index count) override; - Result OnElemSegmentElemExpr_RefNull(Index segment_index) override; + Result OnElemSegmentElemExpr_RefNull(Index segment_index, Type type) override; Result OnElemSegmentElemExpr_RefFunc(Index segment_index, Index func_index) override; @@ -838,7 +848,7 @@ class BinaryReaderObjdump : public BinaryReaderObjdumpBase { Result OnInitExprGlobalGetExpr(Index index, Index global_index) override; Result OnInitExprI32ConstExpr(Index index, uint32_t value) override; Result OnInitExprI64ConstExpr(Index index, uint64_t value) override; - Result OnInitExprRefNull(Index index) override; + Result OnInitExprRefNull(Index index, Type type) override; Result OnInitExprRefFunc(Index index, Index func_index) override; Result OnDylinkInfo(uint32_t mem_size, @@ -1286,8 +1296,10 @@ Result BinaryReaderObjdump::OnExport(Index index, return Result::Ok; } -Result BinaryReaderObjdump::OnElemSegmentElemExpr_RefNull(Index segment_index) { - PrintDetails(" - elem[%" PRIindex "] = nullref\n", elem_offset_ + elem_index_); +Result BinaryReaderObjdump::OnElemSegmentElemExpr_RefNull(Index segment_index, + Type type) { + PrintDetails(" - elem[%" PRIindex "] = ref.null %s\n", + elem_offset_ + elem_index_, type.GetName()); elem_index_++; return Result::Ok; } @@ -1395,7 +1407,7 @@ void BinaryReaderObjdump::PrintInitExpr(const InitExpr& expr) { break; } case InitExprType::NullRef: { - PrintDetails(" - init nullref\n"); + PrintDetails(" - init null\n"); break; } } @@ -1489,9 +1501,10 @@ Result BinaryReaderObjdump::OnInitExprI64ConstExpr(Index index, return Result::Ok; } -Result BinaryReaderObjdump::OnInitExprRefNull(Index index) { +Result BinaryReaderObjdump::OnInitExprRefNull(Index index, Type type) { InitExpr expr; expr.type = InitExprType::NullRef; + expr.value.type = type; HandleInitExpr(expr); return Result::Ok; } diff --git a/src/binary-reader.cc b/src/binary-reader.cc index 9a09560e..9780e39c 100644 --- a/src/binary-reader.cc +++ b/src/binary-reader.cc @@ -99,6 +99,7 @@ class BinaryReader { Result ReadS32Leb128(uint32_t* out_value, const char* desc) WABT_WARN_UNUSED; Result ReadS64Leb128(uint64_t* out_value, const char* desc) WABT_WARN_UNUSED; Result ReadType(Type* out_value, const char* desc) WABT_WARN_UNUSED; + Result ReadRefType(Type* out_value, const char* desc) WABT_WARN_UNUSED; Result ReadExternalKind(ExternalKind* out_value, const char* desc) WABT_WARN_UNUSED; Result ReadStr(string_view* out_str, const char* desc) WABT_WARN_UNUSED; @@ -302,6 +303,14 @@ Result BinaryReader::ReadType(Type* out_value, const char* desc) { return Result::Ok; } +Result BinaryReader::ReadRefType(Type* out_value, const char* desc) { + uint32_t type = 0; + CHECK_RESULT(ReadS32Leb128(&type, desc)); + *out_value = static_cast<Type>(type); + ERROR_UNLESS(out_value->IsRef(), "%s must be a reference type", desc); + return Result::Ok; +} + Result BinaryReader::ReadExternalKind(ExternalKind* out_value, const char* desc) { uint8_t value = 0; @@ -401,12 +410,11 @@ bool BinaryReader::IsConcreteType(Type type) { case Type::V128: return options_.features.simd_enabled(); - case Type::Funcref: - case Type::Anyref: - case Type::Nullref: + case Type::FuncRef: + case Type::ExternRef: return options_.features.reference_types_enabled(); - case Type::Exnref: + case Type::ExnRef: return options_.features.exceptions_enabled(); default: @@ -483,9 +491,12 @@ Result BinaryReader::ReadInitExpr(Index index, bool require_i32) { break; } - case Opcode::RefNull: - CALLBACK(OnInitExprRefNull, index); + case Opcode::RefNull: { + Type type; + CHECK_RESULT(ReadRefType(&type, "ref.null type")); + CALLBACK(OnInitExprRefNull, index, type); break; + } case Opcode::RefFunc: { Index func_index; @@ -514,9 +525,7 @@ Result BinaryReader::ReadInitExpr(Index index, bool require_i32) { } Result BinaryReader::ReadTable(Type* out_elem_type, Limits* out_elem_limits) { - CHECK_RESULT(ReadType(out_elem_type, "table elem type")); - ERROR_UNLESS(out_elem_type->IsRef(), - "table elem type must be a reference type"); + CHECK_RESULT(ReadRefType(out_elem_type, "table elem type")); uint32_t flags; uint32_t initial; @@ -1545,14 +1554,18 @@ Result BinaryReader::ReadFunctionBody(Offset end_offset) { } case Opcode::RefNull: { - CALLBACK(OnRefNullExpr); - CALLBACK0(OnOpcodeBare); + Type type; + CHECK_RESULT(ReadRefType(&type, "ref.null type")); + CALLBACK(OnRefNullExpr, type); + CALLBACK(OnOpcodeType, type); break; } case Opcode::RefIsNull: { - CALLBACK(OnRefIsNullExpr); - CALLBACK0(OnOpcodeBare); + Type type; + CHECK_RESULT(ReadRefType(&type, "ref.is_null type")); + CALLBACK(OnRefIsNullExpr, type); + CALLBACK(OnOpcodeType, type); break; } @@ -2184,7 +2197,7 @@ Result BinaryReader::ReadElemSection(Offset section_size) { if ((flags & (SegPassive | SegExplicitIndex)) == SegExplicitIndex) { CHECK_RESULT(ReadIndex(&table_index, "elem segment table index")); } - Type elem_type = Type::Funcref; + Type elem_type = Type::FuncRef; CALLBACK(BeginElemSegment, i, table_index, flags); @@ -2197,17 +2210,14 @@ Result BinaryReader::ReadElemSection(Offset section_size) { // For backwards compat we support not declaring the element kind. if (flags & (SegPassive | SegExplicitIndex)) { if (flags & SegUseElemExprs) { - CHECK_RESULT(ReadType(&elem_type, "table elem type")); - ERROR_UNLESS(elem_type.IsRef(), - "segment elem expr type must be a reference type (got %s)", - elem_type.GetName()); + CHECK_RESULT(ReadRefType(&elem_type, "table elem type")); } else { ExternalKind kind; CHECK_RESULT(ReadExternalKind(&kind, "export kind")); ERROR_UNLESS(kind == ExternalKind::Func, "segment elem type must be func (%s)", elem_type.GetName()); - elem_type = Type::Funcref; + elem_type = Type::FuncRef; } } @@ -2222,7 +2232,9 @@ Result BinaryReader::ReadElemSection(Offset section_size) { Opcode opcode; CHECK_RESULT(ReadOpcode(&opcode, "elem expr opcode")); if (opcode == Opcode::RefNull) { - CALLBACK(OnElemSegmentElemExpr_RefNull, i); + Type type; + CHECK_RESULT(ReadRefType(&type, "elem expr ref.null type")); + CALLBACK(OnElemSegmentElemExpr_RefNull, i, type); } else if (opcode == Opcode::RefFunc) { Index func_index; CHECK_RESULT(ReadIndex(&func_index, "elem expr func index")); diff --git a/src/binary-reader.h b/src/binary-reader.h index 405387ba..eae1e87d 100644 --- a/src/binary-reader.h +++ b/src/binary-reader.h @@ -199,6 +199,7 @@ class BinaryReaderDelegate { virtual Result OnOpcodeF64(uint64_t value) = 0; virtual Result OnOpcodeV128(v128 value) = 0; virtual Result OnOpcodeBlockSig(Type sig_type) = 0; + virtual Result OnOpcodeType(Type type) = 0; virtual Result OnAtomicLoadExpr(Opcode opcode, uint32_t alignment_log2, Address offset) = 0; @@ -265,8 +266,8 @@ class BinaryReaderDelegate { virtual Result OnTableSizeExpr(Index table_index) = 0; virtual Result OnTableFillExpr(Index table_index) = 0; virtual Result OnRefFuncExpr(Index func_index) = 0; - virtual Result OnRefNullExpr() = 0; - virtual Result OnRefIsNullExpr() = 0; + virtual Result OnRefNullExpr(Type type) = 0; + virtual Result OnRefIsNullExpr(Type type) = 0; virtual Result OnNopExpr() = 0; virtual Result OnRethrowExpr() = 0; virtual Result OnReturnExpr() = 0; @@ -304,7 +305,8 @@ class BinaryReaderDelegate { virtual Result EndElemSegmentInitExpr(Index index) = 0; virtual Result OnElemSegmentElemType(Index index, Type elem_type) = 0; virtual Result OnElemSegmentElemExprCount(Index index, Index count) = 0; - virtual Result OnElemSegmentElemExpr_RefNull(Index segment_index) = 0; + virtual Result OnElemSegmentElemExpr_RefNull(Index segment_index, + Type type) = 0; virtual Result OnElemSegmentElemExpr_RefFunc(Index segment_index, Index func_index) = 0; virtual Result EndElemSegment(Index index) = 0; @@ -425,7 +427,7 @@ class BinaryReaderDelegate { virtual Result OnInitExprGlobalGetExpr(Index index, Index global_index) = 0; virtual Result OnInitExprI32ConstExpr(Index index, uint32_t value) = 0; virtual Result OnInitExprI64ConstExpr(Index index, uint64_t value) = 0; - virtual Result OnInitExprRefNull(Index index) = 0; + virtual Result OnInitExprRefNull(Index index, Type type) = 0; virtual Result OnInitExprRefFunc(Index index, Index func_index) = 0; const State* state = nullptr; diff --git a/src/binary-writer-spec.cc b/src/binary-writer-spec.cc index 27c83767..4499e0ff 100644 --- a/src/binary-writer-spec.cc +++ b/src/binary-writer-spec.cc @@ -56,6 +56,7 @@ class BinaryWriterSpec { void WriteTypeObject(Type type); void WriteF32(uint32_t, ExpectedNan); void WriteF64(uint64_t, ExpectedNan); + void WriteRefBits(uintptr_t ref_bits); void WriteConst(const Const& const_); void WriteConstVector(const ConstVector& consts); void WriteAction(const Action& action); @@ -194,6 +195,14 @@ void BinaryWriterSpec::WriteF64(uint64_t f64_bits, ExpectedNan expected) { } } +void BinaryWriterSpec::WriteRefBits(uintptr_t ref_bits) { + if (ref_bits == Const::kRefNullBits) { + json_stream_->Writef("\"null\""); + } else { + json_stream_->Writef("\"%" PRIu64 "\"", ref_bits); + } +} + void BinaryWriterSpec::WriteConst(const Const& const_) { json_stream_->Writef("{"); WriteKey("type"); @@ -229,28 +238,19 @@ void BinaryWriterSpec::WriteConst(const Const& const_) { WriteF64(const_.f64_bits(), const_.expected_nan()); break; - case Type::Nullref: - WriteString("nullref"); - WriteSeparator(); - WriteKey("value"); - json_stream_->Writef("\"0\""); - break; - - case Type::Funcref: { + case Type::FuncRef: { WriteString("funcref"); WriteSeparator(); WriteKey("value"); - int64_t ref_bits = static_cast<int64_t>(const_.ref_bits()); - json_stream_->Writef("\"%" PRIu64 "\"", ref_bits); + WriteRefBits(const_.ref_bits()); break; } - case Type::Hostref: { - WriteString("hostref"); + case Type::ExternRef: { + WriteString("externref"); WriteSeparator(); WriteKey("value"); - int64_t ref_bits = static_cast<int64_t>(const_.ref_bits()); - json_stream_->Writef("\"%" PRIu64 "\"", ref_bits); + WriteRefBits(const_.ref_bits()); break; } diff --git a/src/binary-writer.cc b/src/binary-writer.cc index 03ee2147..b574402c 100644 --- a/src/binary-writer.cc +++ b/src/binary-writer.cc @@ -681,10 +681,12 @@ void BinaryWriter::WriteExpr(const Func* func, const Expr* expr) { } case ExprType::RefNull: { WriteOpcode(stream_, Opcode::RefNull); + WriteType(stream_, cast<RefNullExpr>(expr)->type, "ref.null type"); break; } case ExprType::RefIsNull: { WriteOpcode(stream_, Opcode::RefIsNull); + WriteType(stream_, cast<RefIsNullExpr>(expr)->type, "ref.is_null type"); break; } case ExprType::Nop: @@ -1126,6 +1128,7 @@ Result BinaryWriter::WriteModule() { switch (elem_expr.kind) { case ElemExprKind::RefNull: WriteOpcode(stream_, Opcode::RefNull); + WriteType(stream_, elem_expr.type, "elem expr ref.null type"); break; case ElemExprKind::RefFunc: diff --git a/src/decompiler-ls.h b/src/decompiler-ls.h index e58f6da1..b9261e8b 100644 --- a/src/decompiler-ls.h +++ b/src/decompiler-ls.h @@ -37,10 +37,9 @@ inline const char *GetDecompTypeName(Type t) { case Type::F64: return "double"; case Type::V128: return "simd"; case Type::Func: return "func"; - case Type::Funcref: return "funcref"; - case Type::Anyref: return "anyref"; - case Type::Nullref: return "nullref"; - case Type::Exnref: return "exnref"; + case Type::FuncRef: return "funcref"; + case Type::ExternRef: return "externref"; + case Type::ExnRef: return "exnref"; case Type::Void: return "void"; default: return "ILLEGAL"; } diff --git a/src/feature.def b/src/feature.def index 880ccde9..7e46c2e2 100644 --- a/src/feature.def +++ b/src/feature.def @@ -31,6 +31,6 @@ WABT_FEATURE(threads, "threads", false, "Threading su WABT_FEATURE(multi_value, "multi-value", true, "Multi-value") WABT_FEATURE(tail_call, "tail-call", false, "Tail-call support") WABT_FEATURE(bulk_memory, "bulk-memory", false, "Bulk-memory operations") -WABT_FEATURE(reference_types, "reference-types", false, "Reference types (anyref)") +WABT_FEATURE(reference_types, "reference-types", false, "Reference types (externref)") WABT_FEATURE(annotations, "annotations", false, "Custom annotation syntax") WABT_FEATURE(gc, "gc", false, "Garbage collection") diff --git a/src/interp/binary-reader-interp.cc b/src/interp/binary-reader-interp.cc index 96eaeadd..20a8368c 100644 --- a/src/interp/binary-reader-interp.cc +++ b/src/interp/binary-reader-interp.cc @@ -191,8 +191,8 @@ class BinaryReaderInterp : public BinaryReaderNop { Result OnMemoryInitExpr(Index segment_index) override; Result OnMemorySizeExpr() override; Result OnRefFuncExpr(Index func_index) override; - Result OnRefNullExpr() override; - Result OnRefIsNullExpr() override; + Result OnRefNullExpr(Type type) override; + Result OnRefIsNullExpr(Type type) override; Result OnNopExpr() override; Result OnReturnExpr() override; Result OnSelectExpr(Type result_type) override; @@ -224,7 +224,7 @@ class BinaryReaderInterp : public BinaryReaderNop { Result EndElemSegmentInitExpr(Index index) override; Result OnElemSegmentElemType(Index index, Type elem_type) override; Result OnElemSegmentElemExprCount(Index index, Index count) override; - Result OnElemSegmentElemExpr_RefNull(Index segment_index) override; + Result OnElemSegmentElemExpr_RefNull(Index segment_index, Type type) override; Result OnElemSegmentElemExpr_RefFunc(Index segment_index, Index func_index) override; @@ -243,7 +243,7 @@ class BinaryReaderInterp : public BinaryReaderNop { Result OnInitExprGlobalGetExpr(Index index, Index global_index) override; Result OnInitExprI32ConstExpr(Index index, uint32_t value) override; Result OnInitExprI64ConstExpr(Index index, uint64_t value) override; - Result OnInitExprRefNull(Index index) override; + Result OnInitExprRefNull(Index index, Type type) override; Result OnInitExprRefFunc(Index index, Index func_index) override; private: @@ -582,7 +582,7 @@ Result BinaryReaderInterp::EndGlobalInitExpr(Index index) { break; case InitExprKind::RefNull: - CHECK_RESULT(validator_.OnGlobalInitExpr_RefNull(loc)); + CHECK_RESULT(validator_.OnGlobalInitExpr_RefNull(loc, init_expr_.type_)); break; case InitExprKind::RefFunc: @@ -640,8 +640,9 @@ Result BinaryReaderInterp::OnInitExprI64ConstExpr(Index index, uint64_t value) { return Result::Ok; } -Result BinaryReaderInterp::OnInitExprRefNull(Index index) { +Result BinaryReaderInterp::OnInitExprRefNull(Index index, Type type) { init_expr_.kind = InitExprKind::RefNull; + init_expr_.type_ = type; return Result::Ok; } @@ -731,8 +732,9 @@ Result BinaryReaderInterp::OnElemSegmentElemExprCount(Index index, return Result::Ok; } -Result BinaryReaderInterp::OnElemSegmentElemExpr_RefNull(Index segment_index) { - CHECK_RESULT(validator_.OnElemSegmentElemExpr_RefNull(loc)); +Result BinaryReaderInterp::OnElemSegmentElemExpr_RefNull(Index segment_index, + Type type) { + CHECK_RESULT(validator_.OnElemSegmentElemExpr_RefNull(loc, type)); ElemDesc& elem = module_.elems.back(); elem.elements.push_back(ElemExpr{ElemKind::RefNull, 0}); return Result::Ok; @@ -1232,14 +1234,14 @@ Result BinaryReaderInterp::OnRefFuncExpr(Index func_index) { return Result::Ok; } -Result BinaryReaderInterp::OnRefNullExpr() { - CHECK_RESULT(validator_.OnRefNull(loc)); +Result BinaryReaderInterp::OnRefNullExpr(Type type) { + CHECK_RESULT(validator_.OnRefNull(loc, type)); istream_.Emit(Opcode::RefNull); return Result::Ok; } -Result BinaryReaderInterp::OnRefIsNullExpr() { - CHECK_RESULT(validator_.OnRefIsNull(loc)); +Result BinaryReaderInterp::OnRefIsNullExpr(Type type) { + CHECK_RESULT(validator_.OnRefIsNull(loc, type)); istream_.Emit(Opcode::RefIsNull); return Result::Ok; } diff --git a/src/interp/interp-inl.h b/src/interp/interp-inl.h index 7650ff1b..0d306ebe 100644 --- a/src/interp/interp-inl.h +++ b/src/interp/interp-inl.h @@ -365,16 +365,9 @@ template <typename T> void RequireType(ValueType type) { } inline bool TypesMatch(ValueType expected, ValueType actual) { - if (expected == actual) { - return true; - } - if (!IsReference(expected)) { - return false; - } - if (expected == ValueType::Anyref || actual == ValueType::Nullref) { - return true; - } - return false; + // Currently there is no subtyping, so expected and actual must match + // exactly. In the future this may be expanded. + return expected == actual; } //// Value //// diff --git a/src/interp/interp-util.cc b/src/interp/interp-util.cc index 60f17152..5b9e702b 100644 --- a/src/interp/interp-util.cc +++ b/src/interp/interp-util.cc @@ -49,20 +49,14 @@ std::string TypedValueToString(const TypedValue& tv) { case Type::I16: // For SIMD lane. return StringPrintf("i16:%u", tv.value.Get<u32>() & 0xffff); - case Type::Nullref: - return StringPrintf("nullref"); - - case Type::Hostref: - return StringPrintf("hostref:%" PRIzd, tv.value.Get<Ref>().index); - - case Type::Funcref: + case Type::FuncRef: return StringPrintf("funcref:%" PRIzd, tv.value.Get<Ref>().index); - case Type::Exnref: - return StringPrintf("exnref:%" PRIzd, tv.value.Get<Ref>().index); + case Type::ExternRef: + return StringPrintf("externref:%" PRIzd, tv.value.Get<Ref>().index); - case Type::Anyref: - return StringPrintf("anyref:%" PRIzd, tv.value.Get<Ref>().index); + case Type::ExnRef: + return StringPrintf("exnref:%" PRIzd, tv.value.Get<Ref>().index); case Type::Func: case Type::Struct: diff --git a/src/interp/interp-wasm-c-api.cc b/src/interp/interp-wasm-c-api.cc index 193f1144..e3c7b620 100644 --- a/src/interp/interp-wasm-c-api.cc +++ b/src/interp/interp-wasm-c-api.cc @@ -310,9 +310,9 @@ static ValueType ToWabtValueType(wasm_valkind_t kind) { case WASM_F64: return ValueType::F64; case WASM_ANYREF: - return ValueType::Anyref; + return ValueType::ExternRef; case WASM_FUNCREF: - return ValueType::Funcref; + return ValueType::FuncRef; default: TRACE("unexpected wasm_valkind_t: %d", kind); WABT_UNREACHABLE; @@ -330,11 +330,9 @@ static wasm_valkind_t FromWabtValueType(ValueType type) { return WASM_F32; case ValueType::F64: return WASM_F64; - case ValueType::Anyref: - case ValueType::Hostref: - case ValueType::Nullref: + case ValueType::ExternRef: return WASM_ANYREF; - case ValueType::Funcref: + case ValueType::FuncRef: return WASM_FUNCREF; default: WABT_UNREACHABLE; @@ -431,30 +429,16 @@ static wasm_val_t FromWabtValue(Store& store, const TypedValue& tv) { out_value.kind = WASM_F64; out_value.of.f64 = tv.value.Get<f64>(); break; - case Type::Anyref: - case Type::Funcref: - case Type::Hostref: - case Type::Nullref: { + case Type::FuncRef: { Ref ref = tv.value.Get<Ref>(); - // Get the actual type for this reference; tv.type uses the function - // signature, which may be to general (e.g. anyref). - Type type = store.GetValueType(ref); - out_value.kind = FromWabtValueType(type); - switch (type) { - case Type::Funcref: - out_value.of.ref = new wasm_func_t(store.UnsafeGet<Func>(ref)); - break; - - case Type::Hostref: - out_value.of.ref = new wasm_foreign_t(store.UnsafeGet<Foreign>(ref)); - break; - - case Type::Nullref: - out_value.of.ref = nullptr; - break; - - default: WABT_UNREACHABLE; - } + out_value.kind = WASM_FUNCREF; + out_value.of.ref = new wasm_func_t(store.UnsafeGet<Func>(ref)); + break; + } + case Type::ExternRef: { + Ref ref = tv.value.Get<Ref>(); + out_value.kind = WASM_ANYREF; + out_value.of.ref = new wasm_foreign_t(store.UnsafeGet<Foreign>(ref)); break; } default: diff --git a/src/interp/interp.cc b/src/interp/interp.cc index d9cb9797..7aee6012 100644 --- a/src/interp/interp.cc +++ b/src/interp/interp.cc @@ -204,7 +204,7 @@ bool Store::HasValueType(Ref ref, ValueType type) const { if (!IsValid(ref)) { return false; } - if (type == ValueType::Anyref) { + if (type == ValueType::ExternRef) { return true; } if (ref == Ref::Null) { @@ -213,29 +213,16 @@ bool Store::HasValueType(Ref ref, ValueType type) const { Object* obj = objects_.Get(ref.index).get(); switch (type) { - case ValueType::Funcref: + case ValueType::FuncRef: return obj->kind() == ObjectKind::DefinedFunc || obj->kind() == ObjectKind::HostFunc; - case ValueType::Nullref: - return ref.index == 0; - case ValueType::Exnref: // TODO + case ValueType::ExnRef: // TODO return false; default: return false; } } -ValueType Store::GetValueType(Ref ref) const { - Object* obj = objects_.Get(ref.index).get(); - switch (obj->kind()) { - case ObjectKind::Null: return ValueType::Nullref; - case ObjectKind::Foreign: return ValueType::Hostref; - case ObjectKind::DefinedFunc: - case ObjectKind::HostFunc: return ValueType::Funcref; - default: return ValueType::Anyref; - } -} - Store::RootList::Index Store::NewRoot(Ref ref) { return roots_.New(ref); } @@ -2210,10 +2197,9 @@ std::string Thread::TraceSource::Pick(Index index, Instr instr) { v.u32(2), v.u32(3)); } - case ValueType::Nullref: reftype = "nullref"; break; - case ValueType::Funcref: reftype = "funcref"; break; - case ValueType::Exnref: reftype = "exnref"; break; - case ValueType::Anyref: reftype = "anyref"; break; + case ValueType::FuncRef: reftype = "funcref"; break; + case ValueType::ExternRef: reftype = "externref"; break; + case ValueType::ExnRef: reftype = "exnref"; break; default: WABT_UNREACHABLE; diff --git a/src/interp/interp.h b/src/interp/interp.h index ec7a6f78..8ebd43df 100644 --- a/src/interp/interp.h +++ b/src/interp/interp.h @@ -115,6 +115,7 @@ struct InitExpr { f64 f64_; v128 v128_; Index index_; + Type type_; }; }; @@ -426,7 +427,6 @@ class Store { bool IsValid(Ref) const; bool HasValueType(Ref, ValueType) const; - ValueType GetValueType(Ref) const; template <typename T> bool Is(Ref) const; @@ -641,7 +641,7 @@ void Var::Destroy() { uint8_t ElemSegment::GetFlags(const Module* module) const { uint8_t flags = 0; - bool all_ref_func = elem_type == Type::Funcref; + bool all_ref_func = elem_type == Type::FuncRef; switch (kind) { case SegmentKind::Active: { @@ -74,6 +74,8 @@ struct Var { typedef std::vector<Var> VarVector; struct Const { + static constexpr uintptr_t kRefNullBits = ~uintptr_t(0); + Const() : Const(Type::I32, uint32_t(0)) {} static Const I32(uint32_t val = 0, const Location& loc = Location()) { @@ -132,9 +134,9 @@ struct Const { // Only used for expectations. (e.g. wast assertions) void set_f32(ExpectedNan nan) { set_f32(0); set_expected_nan(0, nan); } void set_f64(ExpectedNan nan) { set_f64(0); set_expected_nan(0, nan); } - void set_hostref(uintptr_t x) { From(Type::Hostref, x); } - void set_nullref() { From<uintptr_t>(Type::Nullref, 0); } - void set_funcref() { From<uintptr_t>(Type::Funcref, 0); } + void set_funcref() { From<uintptr_t>(Type::FuncRef, 0); } + void set_externref(uintptr_t x) { From(Type::ExternRef, x); } + void set_null(Type type) { From<uintptr_t>(type, kRefNullBits); } bool is_expected_nan(int lane = 0) const { return expected_nan(lane) != ExpectedNan::None; @@ -396,8 +398,18 @@ typedef ExprMixin<ExprType::Nop> NopExpr; typedef ExprMixin<ExprType::Rethrow> RethrowExpr; typedef ExprMixin<ExprType::Return> ReturnExpr; typedef ExprMixin<ExprType::Unreachable> UnreachableExpr; -typedef ExprMixin<ExprType::RefNull> RefNullExpr; -typedef ExprMixin<ExprType::RefIsNull> RefIsNullExpr; + +template <ExprType TypeEnum> +class RefTypeExpr : public ExprMixin<TypeEnum> { + public: + RefTypeExpr(Type type, const Location& loc = Location()) + : ExprMixin<TypeEnum>(loc), type(type) {} + + Type type; +}; + +typedef RefTypeExpr<ExprType::RefNull> RefNullExpr; +typedef RefTypeExpr<ExprType::RefIsNull> RefIsNullExpr; template <ExprType TypeEnum> class OpcodeExpr : public ExprMixin<TypeEnum> { @@ -707,7 +719,7 @@ struct Global { struct Table { explicit Table(string_view name) - : name(name.to_string()), elem_type(Type::Funcref) {} + : name(name.to_string()), elem_type(Type::FuncRef) {} std::string name; Limits elem_limits; @@ -720,11 +732,13 @@ enum class ElemExprKind { }; struct ElemExpr { - ElemExpr() : kind(ElemExprKind::RefNull) {} + ElemExpr() : kind(ElemExprKind::RefNull), type(Type::FuncRef) {} explicit ElemExpr(Var var) : kind(ElemExprKind::RefFunc), var(var) {} + explicit ElemExpr(Type type) : kind(ElemExprKind::RefNull), type(type) {} ElemExprKind kind; - Var var; // Only used when kind == RefFunc. + Var var; // Only used when kind == RefFunc. + Type type; // Only used when kind == RefNull }; typedef std::vector<ElemExpr> ElemExprVector; diff --git a/src/lexer-keywords.txt b/src/lexer-keywords.txt index edb319ba..fbf87ebe 100644 --- a/src/lexer-keywords.txt +++ b/src/lexer-keywords.txt @@ -4,6 +4,8 @@ struct TokenInfo { : name(name), token_type(token_type) {} TokenInfo(const char* name, Type value_type) : name(name), token_type(TokenType::ValueType), value_type(value_type) {} + TokenInfo(const char* name, Type value_type, TokenType token_type) + : name(name), token_type(token_type), value_type(value_type) {} TokenInfo(const char* name, TokenType token_type, Opcode opcode) : name(name), token_type(token_type), opcode(opcode) {} @@ -15,8 +17,7 @@ struct TokenInfo { }; }; %% -anyref, Type::Anyref -array, TokenType::Array +array, Type::Array, TokenType::Array assert_exhaustion, TokenType::AssertExhaustion assert_invalid, TokenType::AssertInvalid assert_malformed, TokenType::AssertMalformed @@ -45,7 +46,10 @@ elem, TokenType::Elem else, TokenType::Else, Opcode::Else end, TokenType::End, Opcode::End event, TokenType::Event -exnref, Type::Exnref +exn, Type::ExnRef, TokenType::Exn +exnref, Type::ExnRef +extern, Type::ExternRef, TokenType::Extern +externref, Type::ExternRef export, TokenType::Export f32.abs, TokenType::Unary, Opcode::F32Abs f32.add, TokenType::Binary, Opcode::F32Add @@ -148,8 +152,8 @@ f64x2.sqrt, TokenType::Unary, Opcode::F64X2Sqrt f64x2.sub, TokenType::Binary, Opcode::F64X2Sub f64x2, TokenType::F64X2 field, TokenType::Field -funcref, Type::Funcref -func, TokenType::Func +funcref, Type::FuncRef +func, Type::FuncRef, TokenType::Func get, TokenType::Get global.get, TokenType::GlobalGet, Opcode::GlobalGet global.set, TokenType::GlobalSet, Opcode::GlobalSet @@ -473,12 +477,11 @@ mut, TokenType::Mut nan:arithmetic, TokenType::NanArithmetic nan:canonical, TokenType::NanCanonical nop, TokenType::Nop, Opcode::Nop -nullref, Type::Nullref offset, TokenType::Offset param, TokenType::Param quote, TokenType::Quote +ref.extern, TokenType::RefExtern ref.func, TokenType::RefFunc, Opcode::RefFunc -ref.host, TokenType::RefHost ref.is_null, TokenType::RefIsNull, Opcode::RefIsNull ref.null, TokenType::RefNull, Opcode::RefNull register, TokenType::Register @@ -490,7 +493,7 @@ return, TokenType::Return, Opcode::Return select, TokenType::Select, Opcode::Select shared, TokenType::Shared start, TokenType::Start -struct, TokenType::Struct +struct, Type::Struct, TokenType::Struct table.copy, TokenType::TableCopy, Opcode::TableCopy table.fill, TokenType::TableFill, Opcode::TableFill table.get, TokenType::TableGet, Opcode::TableGet @@ -521,7 +524,7 @@ v8x16.load_splat, TokenType::Load, Opcode::V8X16LoadSplat v8x16.shuffle, TokenType::SimdShuffleOp, Opcode::V8X16Shuffle v8x16.swizzle, TokenType::Binary, Opcode::V8X16Swizzle # Deprecated names. -anyfunc, Type::Funcref +anyfunc, Type::FuncRef f32.convert_s/i32, TokenType::Convert, Opcode::F32ConvertI32S f32.convert_s/i64, TokenType::Convert, Opcode::F32ConvertI64S f32.convert_u/i32, TokenType::Convert, Opcode::F32ConvertI32U diff --git a/src/prebuilt/lexer-keywords.cc b/src/prebuilt/lexer-keywords.cc index 5f695a43..adbe2248 100644 --- a/src/prebuilt/lexer-keywords.cc +++ b/src/prebuilt/lexer-keywords.cc @@ -36,6 +36,8 @@ struct TokenInfo { : name(name), token_type(token_type) {} TokenInfo(const char* name, Type value_type) : name(name), token_type(TokenType::ValueType), value_type(value_type) {} + TokenInfo(const char* name, Type value_type, TokenType token_type) + : name(name), token_type(token_type), value_type(value_type) {} TokenInfo(const char* name, TokenType token_type, Opcode opcode) : name(name), token_type(token_type), opcode(opcode) {} @@ -46,7 +48,7 @@ struct TokenInfo { Opcode opcode; }; }; -/* maximum key range = 2173, duplicates = 0 */ +/* maximum key range = 2156, duplicates = 0 */ class Perfect_Hash { @@ -61,32 +63,32 @@ Perfect_Hash::hash (const char *str, size_t len) { static unsigned short asso_values[] = { - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 9, 42, 2196, 111, - 10, 137, 9, 385, 126, 321, 259, 525, 12, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 9, 15, 63, 12, 110, - 22, 15, 9, 401, 552, 12, 96, 18, 39, 10, - 26, 63, 334, 479, 57, 9, 9, 11, 41, 17, - 315, 431, 92, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, 2196, - 2196, 2196, 2196, 2196, 2196, 2196, 2196 + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 17, 27, 2179, 44, + 10, 94, 9, 392, 162, 310, 240, 516, 11, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 49, 11, 77, 46, 91, + 14, 9, 9, 508, 515, 12, 48, 14, 59, 22, + 20, 11, 416, 585, 10, 12, 12, 25, 101, 22, + 314, 331, 77, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, 2179, + 2179, 2179, 2179, 2179, 2179, 2179, 2179 }; unsigned int hval = len; @@ -150,11 +152,11 @@ Perfect_Hash::InWordSet (const char *str, size_t len) { enum { - TOTAL_KEYWORDS = 544, + TOTAL_KEYWORDS = 545, MIN_WORD_LENGTH = 2, MAX_WORD_LENGTH = 26, MIN_HASH_VALUE = 23, - MAX_HASH_VALUE = 2195 + MAX_HASH_VALUE = 2178 }; static struct TokenInfo wordlist[] = @@ -162,1428 +164,1413 @@ Perfect_Hash::InWordSet (const char *str, size_t len) {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 456 "src/lexer-keywords.txt" +#line 460 "src/lexer-keywords.txt" {"if", TokenType::If, Opcode::If}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 130 "src/lexer-keywords.txt" + {""}, {""}, {""}, +#line 42 "src/lexer-keywords.txt" + {"do", TokenType::Do}, + {""}, {""}, +#line 134 "src/lexer-keywords.txt" {"f64", Type::F64}, -#line 472 "src/lexer-keywords.txt" - {"mut", TokenType::Mut}, -#line 79 "src/lexer-keywords.txt" + {""}, +#line 83 "src/lexer-keywords.txt" {"f32", Type::F32}, -#line 406 "src/lexer-keywords.txt" +#line 410 "src/lexer-keywords.txt" {"i64", Type::I64}, - {""}, -#line 276 "src/lexer-keywords.txt" +#line 46 "src/lexer-keywords.txt" + {"else", TokenType::Else, Opcode::Else}, +#line 280 "src/lexer-keywords.txt" {"i32", Type::I32}, - {""}, {""}, {""}, {""}, {""}, -#line 459 "src/lexer-keywords.txt" - {"item", TokenType::Item}, - {""}, + {""}, {""}, {""}, {""}, +#line 47 "src/lexer-keywords.txt" + {"end", TokenType::End, Opcode::End}, + {""}, {""}, {""}, #line 45 "src/lexer-keywords.txt" - {"else", TokenType::Else, Opcode::Else}, -#line 44 "src/lexer-keywords.txt" {"elem", TokenType::Elem}, - {""}, {""}, {""}, {""}, {""}, -#line 501 "src/lexer-keywords.txt" - {"table", TokenType::Table}, - {""}, -#line 117 "src/lexer-keywords.txt" - {"f64.lt", TokenType::Compare, Opcode::F64Lt}, -#line 67 "src/lexer-keywords.txt" - {"f32.lt", TokenType::Compare, Opcode::F32Lt}, -#line 502 "src/lexer-keywords.txt" +#line 505 "src/lexer-keywords.txt" {"then", TokenType::Then}, -#line 47 "src/lexer-keywords.txt" - {"event", TokenType::Event}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 46 "src/lexer-keywords.txt" - {"end", TokenType::End, Opcode::End}, - {""}, -#line 115 "src/lexer-keywords.txt" - {"f64.le", TokenType::Compare, Opcode::F64Le}, -#line 65 "src/lexer-keywords.txt" - {"f32.le", TokenType::Compare, Opcode::F32Le}, -#line 150 "src/lexer-keywords.txt" +#line 154 "src/lexer-keywords.txt" {"field", TokenType::Field}, -#line 101 "src/lexer-keywords.txt" - {"f64.abs", TokenType::Unary, Opcode::F64Abs}, -#line 50 "src/lexer-keywords.txt" - {"f32.abs", TokenType::Unary, Opcode::F32Abs}, -#line 128 "src/lexer-keywords.txt" - {"f64.sub", TokenType::Binary, Opcode::F64Sub}, -#line 77 "src/lexer-keywords.txt" - {"f32.sub", TokenType::Binary, Opcode::F32Sub}, -#line 33 "src/lexer-keywords.txt" - {"br", TokenType::Br, Opcode::Br}, -#line 397 "src/lexer-keywords.txt" - {"i64.sub", TokenType::Binary, Opcode::I64Sub}, -#line 267 "src/lexer-keywords.txt" - {"i32.sub", TokenType::Binary, Opcode::I32Sub}, -#line 48 "src/lexer-keywords.txt" - {"exnref", Type::Exnref}, -#line 379 "src/lexer-keywords.txt" - {"i64.lt_s", TokenType::Compare, Opcode::I64LtS}, -#line 250 "src/lexer-keywords.txt" - {"i32.lt_s", TokenType::Compare, Opcode::I32LtS}, - {""}, -#line 471 "src/lexer-keywords.txt" - {"module", TokenType::Module}, -#line 380 "src/lexer-keywords.txt" - {"i64.lt_u", TokenType::Compare, Opcode::I64LtU}, -#line 251 "src/lexer-keywords.txt" - {"i32.lt_u", TokenType::Compare, Opcode::I32LtU}, -#line 370 "src/lexer-keywords.txt" - {"i64.le_s", TokenType::Compare, Opcode::I64LeS}, -#line 243 "src/lexer-keywords.txt" - {"i32.le_s", TokenType::Compare, Opcode::I32LeS}, +#line 463 "src/lexer-keywords.txt" + {"item", TokenType::Item}, {""}, -#line 151 "src/lexer-keywords.txt" - {"funcref", Type::Funcref}, -#line 371 "src/lexer-keywords.txt" - {"i64.le_u", TokenType::Compare, Opcode::I64LeU}, -#line 244 "src/lexer-keywords.txt" - {"i32.le_u", TokenType::Compare, Opcode::I32LeU}, -#line 41 "src/lexer-keywords.txt" - {"do", TokenType::Do}, +#line 476 "src/lexer-keywords.txt" + {"mut", TokenType::Mut}, {""}, {""}, -#line 499 "src/lexer-keywords.txt" - {"table.set", TokenType::TableSet, Opcode::TableSet}, +#line 49 "src/lexer-keywords.txt" + {"exn", Type::ExnRef, TokenType::Exn}, +#line 127 "src/lexer-keywords.txt" + {"f64.ne", TokenType::Compare, Opcode::F64Ne}, +#line 77 "src/lexer-keywords.txt" + {"f32.ne", TokenType::Compare, Opcode::F32Ne}, + {""}, #line 386 "src/lexer-keywords.txt" - {"i64.rem_s", TokenType::Binary, Opcode::I64RemS}, + {"i64.ne", TokenType::Compare, Opcode::I64Ne}, #line 257 "src/lexer-keywords.txt" - {"i32.rem_s", TokenType::Binary, Opcode::I32RemS}, - {""}, -#line 490 "src/lexer-keywords.txt" - {"select", TokenType::Select, Opcode::Select}, -#line 387 "src/lexer-keywords.txt" - {"i64.rem_u", TokenType::Binary, Opcode::I64RemU}, -#line 258 "src/lexer-keywords.txt" - {"i32.rem_u", TokenType::Binary, Opcode::I32RemU}, -#line 492 "src/lexer-keywords.txt" - {"start", TokenType::Start}, -#line 39 "src/lexer-keywords.txt" - {"data", TokenType::Data}, - {""}, -#line 485 "src/lexer-keywords.txt" - {"result", TokenType::Result}, - {""}, {""}, -#line 102 "src/lexer-keywords.txt" - {"f64.add", TokenType::Binary, Opcode::F64Add}, -#line 51 "src/lexer-keywords.txt" - {"f32.add", TokenType::Binary, Opcode::F32Add}, -#line 477 "src/lexer-keywords.txt" + {"i32.ne", TokenType::Compare, Opcode::I32Ne}, +#line 34 "src/lexer-keywords.txt" + {"br", TokenType::Br, Opcode::Br}, +#line 480 "src/lexer-keywords.txt" {"offset", TokenType::Offset}, -#line 315 "src/lexer-keywords.txt" - {"i64.add", TokenType::Binary, Opcode::I64Add}, -#line 200 "src/lexer-keywords.txt" - {"i32.add", TokenType::Binary, Opcode::I32Add}, -#line 498 "src/lexer-keywords.txt" - {"table.init", TokenType::TableInit, Opcode::TableInit}, +#line 48 "src/lexer-keywords.txt" + {"event", TokenType::Event}, {""}, -#line 316 "src/lexer-keywords.txt" - {"i64.and", TokenType::Binary, Opcode::I64And}, -#line 201 "src/lexer-keywords.txt" - {"i32.and", TokenType::Binary, Opcode::I32And}, -#line 493 "src/lexer-keywords.txt" - {"struct", TokenType::Struct}, +#line 50 "src/lexer-keywords.txt" + {"exnref", Type::ExnRef}, {""}, -#line 476 "src/lexer-keywords.txt" - {"nullref", Type::Nullref}, #line 119 "src/lexer-keywords.txt" - {"f64.min", TokenType::Binary, Opcode::F64Min}, + {"f64.le", TokenType::Compare, Opcode::F64Le}, #line 69 "src/lexer-keywords.txt" - {"f32.min", TokenType::Binary, Opcode::F32Min}, -#line 123 "src/lexer-keywords.txt" - {"f64.ne", TokenType::Compare, Opcode::F64Ne}, -#line 73 "src/lexer-keywords.txt" - {"f32.ne", TokenType::Compare, Opcode::F32Ne}, - {""}, -#line 382 "src/lexer-keywords.txt" - {"i64.ne", TokenType::Compare, Opcode::I64Ne}, -#line 253 "src/lexer-keywords.txt" - {"i32.ne", TokenType::Compare, Opcode::I32Ne}, -#line 32 "src/lexer-keywords.txt" - {"br_table", TokenType::BrTable, Opcode::BrTable}, + {"f32.le", TokenType::Compare, Opcode::F32Le}, +#line 496 "src/lexer-keywords.txt" + {"struct", Type::Struct, TokenType::Struct}, + {""}, {""}, {""}, +#line 121 "src/lexer-keywords.txt" + {"f64.lt", TokenType::Compare, Opcode::F64Lt}, +#line 71 "src/lexer-keywords.txt" + {"f32.lt", TokenType::Compare, Opcode::F32Lt}, {""}, {""}, -#line 357 "src/lexer-keywords.txt" - {"i64.div_s", TokenType::Binary, Opcode::I64DivS}, -#line 233 "src/lexer-keywords.txt" - {"i32.div_s", TokenType::Binary, Opcode::I32DivS}, - {""}, -#line 458 "src/lexer-keywords.txt" - {"invoke", TokenType::Invoke}, -#line 358 "src/lexer-keywords.txt" - {"i64.div_u", TokenType::Binary, Opcode::I64DivU}, -#line 234 "src/lexer-keywords.txt" - {"i32.div_u", TokenType::Binary, Opcode::I32DivU}, -#line 491 "src/lexer-keywords.txt" - {"shared", TokenType::Shared}, - {""}, -#line 489 "src/lexer-keywords.txt" +#line 488 "src/lexer-keywords.txt" + {"result", TokenType::Result}, +#line 155 "src/lexer-keywords.txt" + {"funcref", Type::FuncRef}, + {""}, {""}, {""}, +#line 51 "src/lexer-keywords.txt" + {"extern", Type::ExternRef, TokenType::Extern}, +#line 492 "src/lexer-keywords.txt" {"return", TokenType::Return, Opcode::Return}, -#line 110 "src/lexer-keywords.txt" - {"f64.div", TokenType::Binary, Opcode::F64Div}, -#line 60 "src/lexer-keywords.txt" - {"f32.div", TokenType::Binary, Opcode::F32Div}, +#line 504 "src/lexer-keywords.txt" + {"table", TokenType::Table}, +#line 475 "src/lexer-keywords.txt" + {"module", TokenType::Module}, {""}, -#line 29 "src/lexer-keywords.txt" - {"block", TokenType::Block, Opcode::Block}, - {""}, {""}, -#line 120 "src/lexer-keywords.txt" - {"f64.mul", TokenType::Binary, Opcode::F64Mul}, -#line 70 "src/lexer-keywords.txt" - {"f32.mul", TokenType::Binary, Opcode::F32Mul}, +#line 393 "src/lexer-keywords.txt" + {"i64.rotr", TokenType::Binary, Opcode::I64Rotr}, +#line 264 "src/lexer-keywords.txt" + {"i32.rotr", TokenType::Binary, Opcode::I32Rotr}, + {""}, {""}, {""}, {""}, +#line 131 "src/lexer-keywords.txt" + {"f64.store", TokenType::Store, Opcode::F64Store}, +#line 80 "src/lexer-keywords.txt" + {"f32.store", TokenType::Store, Opcode::F32Store}, {""}, -#line 381 "src/lexer-keywords.txt" - {"i64.mul", TokenType::Binary, Opcode::I64Mul}, -#line 252 "src/lexer-keywords.txt" - {"i32.mul", TokenType::Binary, Opcode::I32Mul}, - {""}, {""}, {""}, -#line 495 "src/lexer-keywords.txt" - {"table.fill", TokenType::TableFill, Opcode::TableFill}, -#line 152 "src/lexer-keywords.txt" - {"func", TokenType::Func}, - {""}, {""}, {""}, -#line 103 "src/lexer-keywords.txt" - {"f64.ceil", TokenType::Unary, Opcode::F64Ceil}, -#line 52 "src/lexer-keywords.txt" - {"f32.ceil", TokenType::Unary, Opcode::F32Ceil}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 400 "src/lexer-keywords.txt" + {"i64.store", TokenType::Store, Opcode::I64Store}, +#line 270 "src/lexer-keywords.txt" + {"i32.store", TokenType::Store, Opcode::I32Store}, {""}, -#line 104 "src/lexer-keywords.txt" +#line 489 "src/lexer-keywords.txt" + {"rethrow", TokenType::Rethrow, Opcode::Rethrow}, +#line 123 "src/lexer-keywords.txt" + {"f64.min", TokenType::Binary, Opcode::F64Min}, +#line 73 "src/lexer-keywords.txt" + {"f32.min", TokenType::Binary, Opcode::F32Min}, +#line 52 "src/lexer-keywords.txt" + {"externref", Type::ExternRef}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 398 "src/lexer-keywords.txt" + {"i64.store32", TokenType::Store, Opcode::I64Store32}, +#line 40 "src/lexer-keywords.txt" + {"data", TokenType::Data}, +#line 108 "src/lexer-keywords.txt" {"f64.const", TokenType::Const, Opcode::F64Const}, -#line 53 "src/lexer-keywords.txt" +#line 57 "src/lexer-keywords.txt" {"f32.const", TokenType::Const, Opcode::F32Const}, {""}, -#line 355 "src/lexer-keywords.txt" +#line 359 "src/lexer-keywords.txt" {"i64.const", TokenType::Const, Opcode::I64Const}, -#line 231 "src/lexer-keywords.txt" +#line 235 "src/lexer-keywords.txt" {"i32.const", TokenType::Const, Opcode::I32Const}, -#line 149 "src/lexer-keywords.txt" +#line 106 "src/lexer-keywords.txt" + {"f64.add", TokenType::Binary, Opcode::F64Add}, +#line 55 "src/lexer-keywords.txt" + {"f32.add", TokenType::Binary, Opcode::F32Add}, +#line 493 "src/lexer-keywords.txt" + {"select", TokenType::Select, Opcode::Select}, +#line 319 "src/lexer-keywords.txt" + {"i64.add", TokenType::Binary, Opcode::I64Add}, +#line 204 "src/lexer-keywords.txt" + {"i32.add", TokenType::Binary, Opcode::I32Add}, + {""}, {""}, {""}, {""}, +#line 320 "src/lexer-keywords.txt" + {"i64.and", TokenType::Binary, Opcode::I64And}, +#line 205 "src/lexer-keywords.txt" + {"i32.and", TokenType::Binary, Opcode::I32And}, +#line 156 "src/lexer-keywords.txt" + {"func", Type::FuncRef, TokenType::Func}, + {""}, {""}, +#line 153 "src/lexer-keywords.txt" {"f64x2", TokenType::F64X2}, {""}, {""}, -#line 419 "src/lexer-keywords.txt" +#line 423 "src/lexer-keywords.txt" {"i64x2", TokenType::I64X2}, +#line 495 "src/lexer-keywords.txt" + {"start", TokenType::Start}, +#line 494 "src/lexer-keywords.txt" + {"shared", TokenType::Shared}, +#line 374 "src/lexer-keywords.txt" + {"i64.le_s", TokenType::Compare, Opcode::I64LeS}, +#line 247 "src/lexer-keywords.txt" + {"i32.le_s", TokenType::Compare, Opcode::I32LeS}, +#line 30 "src/lexer-keywords.txt" + {"block", TokenType::Block, Opcode::Block}, +#line 383 "src/lexer-keywords.txt" + {"i64.lt_s", TokenType::Compare, Opcode::I64LtS}, +#line 254 "src/lexer-keywords.txt" + {"i32.lt_s", TokenType::Compare, Opcode::I32LtS}, +#line 502 "src/lexer-keywords.txt" + {"table.set", TokenType::TableSet, Opcode::TableSet}, {""}, {""}, -#line 481 "src/lexer-keywords.txt" - {"ref.host", TokenType::RefHost}, -#line 500 "src/lexer-keywords.txt" - {"table.size", TokenType::TableSize, Opcode::TableSize}, - {""}, -#line 486 "src/lexer-keywords.txt" - {"rethrow", TokenType::Rethrow, Opcode::Rethrow}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 388 "src/lexer-keywords.txt" - {"i64.rotl", TokenType::Binary, Opcode::I64Rotl}, -#line 259 "src/lexer-keywords.txt" - {"i32.rotl", TokenType::Binary, Opcode::I32Rotl}, - {""}, {""}, -#line 35 "src/lexer-keywords.txt" - {"call", TokenType::Call, Opcode::Call}, +#line 105 "src/lexer-keywords.txt" + {"f64.abs", TokenType::Unary, Opcode::F64Abs}, +#line 54 "src/lexer-keywords.txt" + {"f32.abs", TokenType::Unary, Opcode::F32Abs}, + {""}, {""}, {""}, +#line 390 "src/lexer-keywords.txt" + {"i64.rem_s", TokenType::Binary, Opcode::I64RemS}, +#line 261 "src/lexer-keywords.txt" + {"i32.rem_s", TokenType::Binary, Opcode::I32RemS}, {""}, {""}, -#line 127 "src/lexer-keywords.txt" - {"f64.store", TokenType::Store, Opcode::F64Store}, -#line 76 "src/lexer-keywords.txt" - {"f32.store", TokenType::Store, Opcode::F32Store}, - {""}, -#line 396 "src/lexer-keywords.txt" - {"i64.store", TokenType::Store, Opcode::I64Store}, -#line 266 "src/lexer-keywords.txt" - {"i32.store", TokenType::Store, Opcode::I32Store}, +#line 501 "src/lexer-keywords.txt" + {"table.init", TokenType::TableInit, Opcode::TableInit}, {""}, {""}, {""}, -#line 463 "src/lexer-keywords.txt" - {"local", TokenType::Local}, +#line 132 "src/lexer-keywords.txt" + {"f64.sub", TokenType::Binary, Opcode::F64Sub}, +#line 81 "src/lexer-keywords.txt" + {"f32.sub", TokenType::Binary, Opcode::F32Sub}, {""}, -#line 394 "src/lexer-keywords.txt" - {"i64.store32", TokenType::Store, Opcode::I64Store32}, -#line 116 "src/lexer-keywords.txt" +#line 401 "src/lexer-keywords.txt" + {"i64.sub", TokenType::Binary, Opcode::I64Sub}, +#line 271 "src/lexer-keywords.txt" + {"i32.sub", TokenType::Binary, Opcode::I32Sub}, +#line 375 "src/lexer-keywords.txt" + {"i64.le_u", TokenType::Compare, Opcode::I64LeU}, +#line 248 "src/lexer-keywords.txt" + {"i32.le_u", TokenType::Compare, Opcode::I32LeU}, + {""}, +#line 384 "src/lexer-keywords.txt" + {"i64.lt_u", TokenType::Compare, Opcode::I64LtU}, +#line 255 "src/lexer-keywords.txt" + {"i32.lt_u", TokenType::Compare, Opcode::I32LtU}, +#line 120 "src/lexer-keywords.txt" {"f64.load", TokenType::Load, Opcode::F64Load}, -#line 66 "src/lexer-keywords.txt" +#line 70 "src/lexer-keywords.txt" {"f32.load", TokenType::Load, Opcode::F32Load}, -#line 512 "src/lexer-keywords.txt" - {"v128.not", TokenType::Unary, Opcode::V128Not}, -#line 378 "src/lexer-keywords.txt" + {""}, +#line 382 "src/lexer-keywords.txt" {"i64.load", TokenType::Load, Opcode::I64Load}, -#line 249 "src/lexer-keywords.txt" +#line 253 "src/lexer-keywords.txt" {"i32.load", TokenType::Load, Opcode::I32Load}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 148 "src/lexer-keywords.txt" - {"f64x2.sub", TokenType::Binary, Opcode::F64X2Sub}, +#line 125 "src/lexer-keywords.txt" + {"f64.nearest", TokenType::Unary, Opcode::F64Nearest}, +#line 75 "src/lexer-keywords.txt" + {"f32.nearest", TokenType::Unary, Opcode::F32Nearest}, {""}, -#line 461 "src/lexer-keywords.txt" - {"local.set", TokenType::LocalSet, Opcode::LocalSet}, -#line 418 "src/lexer-keywords.txt" - {"i64x2.sub", TokenType::Binary, Opcode::I64X2Sub}, - {""}, {""}, {""}, -#line 389 "src/lexer-keywords.txt" - {"i64.rotr", TokenType::Binary, Opcode::I64Rotr}, -#line 260 "src/lexer-keywords.txt" - {"i32.rotr", TokenType::Binary, Opcode::I32Rotr}, - {""}, {""}, -#line 144 "src/lexer-keywords.txt" +#line 391 "src/lexer-keywords.txt" + {"i64.rem_u", TokenType::Binary, Opcode::I64RemU}, +#line 262 "src/lexer-keywords.txt" + {"i32.rem_u", TokenType::Binary, Opcode::I32RemU}, + {""}, +#line 148 "src/lexer-keywords.txt" {"f64x2.ne", TokenType::Compare, Opcode::F64X2Ne}, -#line 139 "src/lexer-keywords.txt" - {"f64x2.lt", TokenType::Compare, Opcode::F64X2Lt}, +#line 516 "src/lexer-keywords.txt" + {"v128.or", TokenType::Binary, Opcode::V128Or}, + {""}, {""}, +#line 107 "src/lexer-keywords.txt" + {"f64.ceil", TokenType::Unary, Opcode::F64Ceil}, +#line 56 "src/lexer-keywords.txt" + {"f32.ceil", TokenType::Unary, Opcode::F32Ceil}, {""}, -#line 462 "src/lexer-keywords.txt" - {"local.tee", TokenType::LocalTee, Opcode::LocalTee}, +#line 392 "src/lexer-keywords.txt" + {"i64.rotl", TokenType::Binary, Opcode::I64Rotl}, +#line 263 "src/lexer-keywords.txt" + {"i32.rotl", TokenType::Binary, Opcode::I32Rotl}, {""}, {""}, -#line 508 "src/lexer-keywords.txt" - {"v128.and", TokenType::Binary, Opcode::V128And}, - {""}, {""}, {""}, -#line 40 "src/lexer-keywords.txt" +#line 41 "src/lexer-keywords.txt" {"declare", TokenType::Declare}, - {""}, {""}, -#line 138 "src/lexer-keywords.txt" - {"f64x2.le", TokenType::Compare, Opcode::F64X2Le}, {""}, -#line 356 "src/lexer-keywords.txt" - {"i64.ctz", TokenType::Unary, Opcode::I64Ctz}, -#line 232 "src/lexer-keywords.txt" - {"i32.ctz", TokenType::Unary, Opcode::I32Ctz}, - {""}, {""}, -#line 141 "src/lexer-keywords.txt" - {"f64x2.min", TokenType::Binary, Opcode::F64X2Min}, +#line 124 "src/lexer-keywords.txt" + {"f64.mul", TokenType::Binary, Opcode::F64Mul}, +#line 74 "src/lexer-keywords.txt" + {"f32.mul", TokenType::Binary, Opcode::F32Mul}, + {""}, +#line 385 "src/lexer-keywords.txt" + {"i64.mul", TokenType::Binary, Opcode::I64Mul}, +#line 256 "src/lexer-keywords.txt" + {"i32.mul", TokenType::Binary, Opcode::I32Mul}, + {""}, {""}, {""}, +#line 462 "src/lexer-keywords.txt" + {"invoke", TokenType::Invoke}, {""}, {""}, {""}, {""}, -#line 353 "src/lexer-keywords.txt" - {"i64.atomic.wait", TokenType::AtomicWait, Opcode::I64AtomicWait}, -#line 229 "src/lexer-keywords.txt" - {"i32.atomic.wait", TokenType::AtomicWait, Opcode::I32AtomicWait}, - {""}, {""}, -#line 514 "src/lexer-keywords.txt" +#line 515 "src/lexer-keywords.txt" + {"v128.not", TokenType::Unary, Opcode::V128Not}, +#line 517 "src/lexer-keywords.txt" {"v128.store", TokenType::Store, Opcode::V128Store}, - {""}, {""}, -#line 507 "src/lexer-keywords.txt" - {"v128.andnot", TokenType::Binary, Opcode::V128Andnot}, -#line 121 "src/lexer-keywords.txt" - {"f64.nearest", TokenType::Unary, Opcode::F64Nearest}, -#line 71 "src/lexer-keywords.txt" - {"f32.nearest", TokenType::Unary, Opcode::F32Nearest}, {""}, -#line 352 "src/lexer-keywords.txt" +#line 503 "src/lexer-keywords.txt" + {"table.size", TokenType::TableSize, Opcode::TableSize}, + {""}, {""}, {""}, +#line 360 "src/lexer-keywords.txt" + {"i64.ctz", TokenType::Unary, Opcode::I64Ctz}, +#line 236 "src/lexer-keywords.txt" + {"i32.ctz", TokenType::Unary, Opcode::I32Ctz}, +#line 356 "src/lexer-keywords.txt" {"i64.atomic.store", TokenType::AtomicStore, Opcode::I64AtomicStore}, -#line 228 "src/lexer-keywords.txt" +#line 232 "src/lexer-keywords.txt" {"i32.atomic.store", TokenType::AtomicStore, Opcode::I32AtomicStore}, -#line 483 "src/lexer-keywords.txt" - {"ref.null", TokenType::RefNull, Opcode::RefNull}, -#line 131 "src/lexer-keywords.txt" - {"f64x2.abs", TokenType::Unary, Opcode::F64X2Abs}, - {""}, {""}, {""}, {""}, {""}, +#line 145 "src/lexer-keywords.txt" + {"f64x2.min", TokenType::Binary, Opcode::F64X2Min}, +#line 36 "src/lexer-keywords.txt" + {"call", TokenType::Call, Opcode::Call}, #line 142 "src/lexer-keywords.txt" - {"f64x2.mul", TokenType::Binary, Opcode::F64X2Mul}, + {"f64x2.le", TokenType::Compare, Opcode::F64X2Le}, + {""}, {""}, {""}, {""}, {""}, +#line 143 "src/lexer-keywords.txt" + {"f64x2.lt", TokenType::Compare, Opcode::F64X2Lt}, + {""}, {""}, {""}, {""}, +#line 361 "src/lexer-keywords.txt" + {"i64.div_s", TokenType::Binary, Opcode::I64DivS}, +#line 237 "src/lexer-keywords.txt" + {"i32.div_s", TokenType::Binary, Opcode::I32DivS}, + {""}, {""}, {""}, {""}, {""}, #line 354 "src/lexer-keywords.txt" + {"i64.atomic.store32", TokenType::AtomicStore, Opcode::I64AtomicStore32}, +#line 498 "src/lexer-keywords.txt" + {"table.fill", TokenType::TableFill, Opcode::TableFill}, + {""}, {""}, +#line 467 "src/lexer-keywords.txt" + {"local", TokenType::Local}, +#line 466 "src/lexer-keywords.txt" + {"local.tee", TokenType::LocalTee, Opcode::LocalTee}, + {""}, {""}, +#line 486 "src/lexer-keywords.txt" + {"ref.null", TokenType::RefNull, Opcode::RefNull}, + {""}, {""}, +#line 465 "src/lexer-keywords.txt" + {"local.set", TokenType::LocalSet, Opcode::LocalSet}, + {""}, +#line 349 "src/lexer-keywords.txt" + {"i64.atomic.rmw.or", TokenType::AtomicRmw, Opcode::I64AtomicRmwOr}, +#line 226 "src/lexer-keywords.txt" + {"i32.atomic.rmw.or", TokenType::AtomicRmw, Opcode::I32AtomicRmwOr}, + {""}, +#line 114 "src/lexer-keywords.txt" + {"f64.div", TokenType::Binary, Opcode::F64Div}, +#line 64 "src/lexer-keywords.txt" + {"f32.div", TokenType::Binary, Opcode::F32Div}, + {""}, +#line 362 "src/lexer-keywords.txt" + {"i64.div_u", TokenType::Binary, Opcode::I64DivU}, +#line 238 "src/lexer-keywords.txt" + {"i32.div_u", TokenType::Binary, Opcode::I32DivU}, + {""}, {""}, +#line 358 "src/lexer-keywords.txt" {"i64.clz", TokenType::Unary, Opcode::I64Clz}, -#line 230 "src/lexer-keywords.txt" +#line 234 "src/lexer-keywords.txt" {"i32.clz", TokenType::Unary, Opcode::I32Clz}, +#line 136 "src/lexer-keywords.txt" + {"f64x2.add", TokenType::Binary, Opcode::F64X2Add}, + {""}, {""}, #line 411 "src/lexer-keywords.txt" - {"i64x2.mul", TokenType::Binary, Opcode::I64X2Mul}, + {"i64x2.add", TokenType::Binary, Opcode::I64X2Add}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 152 "src/lexer-keywords.txt" + {"f64x2.sub", TokenType::Binary, Opcode::F64X2Sub}, {""}, -#line 513 "src/lexer-keywords.txt" - {"v128.or", TokenType::Binary, Opcode::V128Or}, +#line 24 "src/lexer-keywords.txt" + {"assert_return", TokenType::AssertReturn}, +#line 422 "src/lexer-keywords.txt" + {"i64x2.sub", TokenType::Binary, Opcode::I64X2Sub}, +#line 511 "src/lexer-keywords.txt" + {"v128.and", TokenType::Binary, Opcode::V128And}, +#line 33 "src/lexer-keywords.txt" + {"br_table", TokenType::BrTable, Opcode::BrTable}, {""}, -#line 350 "src/lexer-keywords.txt" - {"i64.atomic.store32", TokenType::AtomicStore, Opcode::I64AtomicStore32}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 376 "src/lexer-keywords.txt" + {"i64.load16_s", TokenType::Load, Opcode::I64Load16S}, +#line 249 "src/lexer-keywords.txt" + {"i32.load16_s", TokenType::Load, Opcode::I32Load16S}, + {""}, {""}, {""}, +#line 357 "src/lexer-keywords.txt" + {"i64.atomic.wait", TokenType::AtomicWait, Opcode::I64AtomicWait}, +#line 233 "src/lexer-keywords.txt" + {"i32.atomic.wait", TokenType::AtomicWait, Opcode::I32AtomicWait}, + {""}, {""}, {""}, {""}, +#line 135 "src/lexer-keywords.txt" + {"f64x2.abs", TokenType::Unary, Opcode::F64X2Abs}, + {""}, {""}, {""}, #line 133 "src/lexer-keywords.txt" - {"f64x2.div", TokenType::Binary, Opcode::F64X2Div}, + {"f64.trunc", TokenType::Unary, Opcode::F64Trunc}, +#line 82 "src/lexer-keywords.txt" + {"f32.trunc", TokenType::Unary, Opcode::F32Trunc}, {""}, {""}, {""}, -#line 339 "src/lexer-keywords.txt" - {"i64.atomic.rmw8.sub_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8SubU}, -#line 216 "src/lexer-keywords.txt" - {"i32.atomic.rmw8.sub_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8SubU}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 132 "src/lexer-keywords.txt" - {"f64x2.add", TokenType::Binary, Opcode::F64X2Add}, - {""}, -#line 23 "src/lexer-keywords.txt" - {"assert_return", TokenType::AssertReturn}, -#line 407 "src/lexer-keywords.txt" - {"i64x2.add", TokenType::Binary, Opcode::I64X2Add}, -#line 482 "src/lexer-keywords.txt" +#line 513 "src/lexer-keywords.txt" + {"v128.const", TokenType::Const, Opcode::V128Const}, + {""}, {""}, {""}, {""}, +#line 335 "src/lexer-keywords.txt" + {"i64.atomic.rmw32.or_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32OrU}, +#line 377 "src/lexer-keywords.txt" + {"i64.load16_u", TokenType::Load, Opcode::I64Load16U}, +#line 250 "src/lexer-keywords.txt" + {"i32.load16_u", TokenType::Load, Opcode::I32Load16U}, +#line 485 "src/lexer-keywords.txt" {"ref.is_null", TokenType::RefIsNull, Opcode::RefIsNull}, -#line 59 "src/lexer-keywords.txt" - {"f32.demote_f64", TokenType::Convert, Opcode::F32DemoteF64}, - {""}, -#line 21 "src/lexer-keywords.txt" - {"assert_invalid", TokenType::AssertInvalid}, +#line 146 "src/lexer-keywords.txt" + {"f64x2.mul", TokenType::Binary, Opcode::F64X2Mul}, +#line 510 "src/lexer-keywords.txt" + {"v128.andnot", TokenType::Binary, Opcode::V128Andnot}, {""}, -#line 511 "src/lexer-keywords.txt" +#line 415 "src/lexer-keywords.txt" + {"i64x2.mul", TokenType::Binary, Opcode::I64X2Mul}, + {""}, {""}, {""}, {""}, {""}, +#line 532 "src/lexer-keywords.txt" + {"f32.demote/f64", TokenType::Convert, Opcode::F32DemoteF64}, + {""}, {""}, {""}, +#line 336 "src/lexer-keywords.txt" + {"i64.atomic.rmw32.sub_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32SubU}, +#line 324 "src/lexer-keywords.txt" + {"i64.atomic.load", TokenType::AtomicLoad, Opcode::I64AtomicLoad}, +#line 208 "src/lexer-keywords.txt" + {"i32.atomic.load", TokenType::AtomicLoad, Opcode::I32AtomicLoad}, + {""}, {""}, {""}, +#line 514 "src/lexer-keywords.txt" {"v128.load", TokenType::Load, Opcode::V128Load}, + {""}, +#line 378 "src/lexer-keywords.txt" + {"i64.load32_s", TokenType::Load, Opcode::I64Load32S}, +#line 399 "src/lexer-keywords.txt" + {"i64.store8", TokenType::Store, Opcode::I64Store8}, +#line 269 "src/lexer-keywords.txt" + {"i32.store8", TokenType::Store, Opcode::I32Store8}, #line 346 "src/lexer-keywords.txt" - {"i64.atomic.rmw.sub", TokenType::AtomicRmw, Opcode::I64AtomicRmwSub}, + {"i64.atomic.rmw.add", TokenType::AtomicRmw, Opcode::I64AtomicRmwAdd}, #line 223 "src/lexer-keywords.txt" - {"i32.atomic.rmw.sub", TokenType::AtomicRmw, Opcode::I32AtomicRmwSub}, -#line 515 "src/lexer-keywords.txt" - {"v128", Type::V128}, - {""}, {""}, -#line 335 "src/lexer-keywords.txt" + {"i32.atomic.rmw.add", TokenType::AtomicRmw, Opcode::I32AtomicRmwAdd}, +#line 347 "src/lexer-keywords.txt" + {"i64.atomic.rmw.and", TokenType::AtomicRmw, Opcode::I64AtomicRmwAnd}, +#line 224 "src/lexer-keywords.txt" + {"i32.atomic.rmw.and", TokenType::AtomicRmw, Opcode::I32AtomicRmwAnd}, + {""}, +#line 339 "src/lexer-keywords.txt" {"i64.atomic.rmw8.add_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8AddU}, -#line 212 "src/lexer-keywords.txt" +#line 216 "src/lexer-keywords.txt" {"i32.atomic.rmw8.add_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8AddU}, - {""}, -#line 510 "src/lexer-keywords.txt" - {"v128.const", TokenType::Const, Opcode::V128Const}, -#line 336 "src/lexer-keywords.txt" +#line 63 "src/lexer-keywords.txt" + {"f32.demote_f64", TokenType::Convert, Opcode::F32DemoteF64}, + {""}, {""}, {""}, +#line 340 "src/lexer-keywords.txt" {"i64.atomic.rmw8.and_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8AndU}, -#line 213 "src/lexer-keywords.txt" +#line 217 "src/lexer-keywords.txt" {"i32.atomic.rmw8.and_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8AndU}, - {""}, {""}, -#line 332 "src/lexer-keywords.txt" - {"i64.atomic.rmw32.sub_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32SubU}, - {""}, {""}, {""}, -#line 372 "src/lexer-keywords.txt" - {"i64.load16_s", TokenType::Load, Opcode::I64Load16S}, -#line 245 "src/lexer-keywords.txt" - {"i32.load16_s", TokenType::Load, Opcode::I32Load16S}, -#line 509 "src/lexer-keywords.txt" - {"v128.bitselect", TokenType::Ternary, Opcode::V128BitSelect}, {""}, -#line 373 "src/lexer-keywords.txt" - {"i64.load16_u", TokenType::Load, Opcode::I64Load16U}, -#line 246 "src/lexer-keywords.txt" - {"i32.load16_u", TokenType::Load, Opcode::I32Load16U}, -#line 25 "src/lexer-keywords.txt" - {"assert_unlinkable", TokenType::AssertUnlinkable}, - {""}, {""}, -#line 320 "src/lexer-keywords.txt" - {"i64.atomic.load", TokenType::AtomicLoad, Opcode::I64AtomicLoad}, -#line 204 "src/lexer-keywords.txt" - {"i32.atomic.load", TokenType::AtomicLoad, Opcode::I32AtomicLoad}, -#line 529 "src/lexer-keywords.txt" - {"f32.demote/f64", TokenType::Convert, Opcode::F32DemoteF64}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, -#line 561 "src/lexer-keywords.txt" - {"set_local", TokenType::LocalSet, Opcode::LocalSet}, -#line 129 "src/lexer-keywords.txt" - {"f64.trunc", TokenType::Unary, Opcode::F64Trunc}, -#line 78 "src/lexer-keywords.txt" - {"f32.trunc", TokenType::Unary, Opcode::F32Trunc}, - {""}, -#line 374 "src/lexer-keywords.txt" - {"i64.load32_s", TokenType::Load, Opcode::I64Load32S}, - {""}, -#line 562 "src/lexer-keywords.txt" +#line 343 "src/lexer-keywords.txt" + {"i64.atomic.rmw8.sub_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8SubU}, +#line 220 "src/lexer-keywords.txt" + {"i32.atomic.rmw8.sub_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8SubU}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 565 "src/lexer-keywords.txt" {"tee_local", TokenType::LocalTee, Opcode::LocalTee}, - {""}, -#line 375 "src/lexer-keywords.txt" +#line 379 "src/lexer-keywords.txt" {"i64.load32_u", TokenType::Load, Opcode::I64Load32U}, -#line 342 "src/lexer-keywords.txt" - {"i64.atomic.rmw.add", TokenType::AtomicRmw, Opcode::I64AtomicRmwAdd}, -#line 219 "src/lexer-keywords.txt" - {"i32.atomic.rmw.add", TokenType::AtomicRmw, Opcode::I32AtomicRmwAdd}, -#line 505 "src/lexer-keywords.txt" - {"type", TokenType::Type}, - {""}, {""}, {""}, -#line 345 "src/lexer-keywords.txt" - {"i64.atomic.rmw.or", TokenType::AtomicRmw, Opcode::I64AtomicRmwOr}, -#line 222 "src/lexer-keywords.txt" - {"i32.atomic.rmw.or", TokenType::AtomicRmw, Opcode::I32AtomicRmwOr}, - {""}, {""}, {""}, -#line 22 "src/lexer-keywords.txt" + {""}, +#line 564 "src/lexer-keywords.txt" + {"set_local", TokenType::LocalSet, Opcode::LocalSet}, + {""}, {""}, +#line 518 "src/lexer-keywords.txt" + {"v128", Type::V128}, +#line 35 "src/lexer-keywords.txt" + {"call_indirect", TokenType::CallIndirect, Opcode::CallIndirect}, +#line 23 "src/lexer-keywords.txt" {"assert_malformed", TokenType::AssertMalformed}, -#line 488 "src/lexer-keywords.txt" - {"return_call", TokenType::ReturnCall, Opcode::ReturnCall}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 457 "src/lexer-keywords.txt" - {"import", TokenType::Import}, + {""}, +#line 555 "src/lexer-keywords.txt" + {"i64.trunc_s/f32", TokenType::Convert, Opcode::I64TruncF32S}, +#line 543 "src/lexer-keywords.txt" + {"i32.trunc_s/f32", TokenType::Convert, Opcode::I32TruncF32S}, {""}, {""}, -#line 49 "src/lexer-keywords.txt" - {"export", TokenType::Export}, +#line 506 "src/lexer-keywords.txt" + {"throw", TokenType::Throw, Opcode::Throw}, {""}, {""}, -#line 107 "src/lexer-keywords.txt" - {"f64.convert_i64_s", TokenType::Convert, Opcode::F64ConvertI64S}, -#line 56 "src/lexer-keywords.txt" - {"f32.convert_i64_s", TokenType::Convert, Opcode::F32ConvertI64S}, +#line 137 "src/lexer-keywords.txt" + {"f64x2.div", TokenType::Binary, Opcode::F64X2Div}, {""}, {""}, {""}, -#line 328 "src/lexer-keywords.txt" +#line 332 "src/lexer-keywords.txt" {"i64.atomic.rmw32.add_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32AddU}, {""}, -#line 34 "src/lexer-keywords.txt" - {"call_indirect", TokenType::CallIndirect, Opcode::CallIndirect}, - {""}, -#line 329 "src/lexer-keywords.txt" +#line 559 "src/lexer-keywords.txt" + {"i64.trunc_u/f32", TokenType::Convert, Opcode::I64TruncF32U}, +#line 547 "src/lexer-keywords.txt" + {"i32.trunc_u/f32", TokenType::Convert, Opcode::I32TruncF32U}, + {""}, {""}, +#line 333 "src/lexer-keywords.txt" {"i64.atomic.rmw32.and_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32AndU}, - {""}, -#line 105 "src/lexer-keywords.txt" - {"f64.convert_i32_s", TokenType::Convert, Opcode::F64ConvertI32S}, -#line 54 "src/lexer-keywords.txt" - {"f32.convert_i32_s", TokenType::Convert, Opcode::F32ConvertI32S}, - {""}, {""}, {""}, {""}, {""}, -#line 503 "src/lexer-keywords.txt" - {"throw", TokenType::Throw, Opcode::Throw}, {""}, {""}, {""}, {""}, -#line 343 "src/lexer-keywords.txt" - {"i64.atomic.rmw.and", TokenType::AtomicRmw, Opcode::I64AtomicRmwAnd}, -#line 220 "src/lexer-keywords.txt" - {"i32.atomic.rmw.and", TokenType::AtomicRmw, Opcode::I32AtomicRmwAnd}, - {""}, {""}, {""}, -#line 400 "src/lexer-keywords.txt" - {"i64.trunc_f64_s", TokenType::Convert, Opcode::I64TruncF64S}, -#line 270 "src/lexer-keywords.txt" - {"i32.trunc_f64_s", TokenType::Convert, Opcode::I32TruncF64S}, -#line 401 "src/lexer-keywords.txt" - {"i64.trunc_f64_u", TokenType::Convert, Opcode::I64TruncF64U}, -#line 271 "src/lexer-keywords.txt" - {"i32.trunc_f64_u", TokenType::Convert, Opcode::I32TruncF64U}, - {""}, -#line 100 "src/lexer-keywords.txt" - {"f32x4", TokenType::F32X4}, -#line 108 "src/lexer-keywords.txt" - {"f64.convert_i64_u", TokenType::Convert, Opcode::F64ConvertI64U}, -#line 57 "src/lexer-keywords.txt" - {"f32.convert_i64_u", TokenType::Convert, Opcode::F32ConvertI64U}, -#line 307 "src/lexer-keywords.txt" - {"i32x4", TokenType::I32X4}, -#line 153 "src/lexer-keywords.txt" - {"get", TokenType::Get}, -#line 42 "src/lexer-keywords.txt" - {"drop", TokenType::Drop, Opcode::Drop}, -#line 331 "src/lexer-keywords.txt" - {"i64.atomic.rmw32.or_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32OrU}, -#line 398 "src/lexer-keywords.txt" +#line 402 "src/lexer-keywords.txt" {"i64.trunc_f32_s", TokenType::Convert, Opcode::I64TruncF32S}, -#line 268 "src/lexer-keywords.txt" +#line 272 "src/lexer-keywords.txt" {"i32.trunc_f32_s", TokenType::Convert, Opcode::I32TruncF32S}, -#line 399 "src/lexer-keywords.txt" +#line 27 "src/lexer-keywords.txt" + {"atomic.fence", TokenType::AtomicFence, Opcode::AtomicFence}, +#line 22 "src/lexer-keywords.txt" + {"assert_invalid", TokenType::AssertInvalid}, + {""}, {""}, {""}, {""}, {""}, +#line 424 "src/lexer-keywords.txt" + {"i64.xor", TokenType::Binary, Opcode::I64Xor}, +#line 318 "src/lexer-keywords.txt" + {"i32.xor", TokenType::Binary, Opcode::I32Xor}, + {""}, {""}, +#line 403 "src/lexer-keywords.txt" {"i64.trunc_f32_u", TokenType::Convert, Opcode::I64TruncF32U}, -#line 269 "src/lexer-keywords.txt" +#line 273 "src/lexer-keywords.txt" {"i32.trunc_f32_u", TokenType::Convert, Opcode::I32TruncF32U}, -#line 330 "src/lexer-keywords.txt" +#line 334 "src/lexer-keywords.txt" {"i64.atomic.rmw32.cmpxchg_u", TokenType::AtomicRmwCmpxchg, Opcode::I64AtomicRmw32CmpxchgU}, -#line 106 "src/lexer-keywords.txt" - {"f64.convert_i32_u", TokenType::Convert, Opcode::F64ConvertI32U}, -#line 55 "src/lexer-keywords.txt" - {"f32.convert_i32_u", TokenType::Convert, Opcode::F32ConvertI32U}, -#line 478 "src/lexer-keywords.txt" - {"param", TokenType::Param}, {""}, {""}, {""}, -#line 30 "src/lexer-keywords.txt" - {"br_if", TokenType::BrIf, Opcode::BrIf}, -#line 393 "src/lexer-keywords.txt" +#line 491 "src/lexer-keywords.txt" + {"return_call", TokenType::ReturnCall, Opcode::ReturnCall}, + {""}, {""}, +#line 483 "src/lexer-keywords.txt" + {"ref.extern", TokenType::RefExtern}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 397 "src/lexer-keywords.txt" {"i64.store16", TokenType::Store, Opcode::I64Store16}, -#line 264 "src/lexer-keywords.txt" +#line 268 "src/lexer-keywords.txt" {"i32.store16", TokenType::Store, Opcode::I32Store16}, - {""}, -#line 464 "src/lexer-keywords.txt" - {"loop", TokenType::Loop, Opcode::Loop}, -#line 325 "src/lexer-keywords.txt" - {"i64.atomic.rmw16.sub_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16SubU}, -#line 209 "src/lexer-keywords.txt" - {"i32.atomic.rmw16.sub_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16SubU}, -#line 395 "src/lexer-keywords.txt" - {"i64.store8", TokenType::Store, Opcode::I64Store8}, -#line 265 "src/lexer-keywords.txt" - {"i32.store8", TokenType::Store, Opcode::I32Store8}, - {""}, -#line 553 "src/lexer-keywords.txt" + {""}, {""}, {""}, {""}, {""}, +#line 512 "src/lexer-keywords.txt" + {"v128.bitselect", TokenType::Ternary, Opcode::V128BitSelect}, +#line 350 "src/lexer-keywords.txt" + {"i64.atomic.rmw.sub", TokenType::AtomicRmw, Opcode::I64AtomicRmwSub}, +#line 227 "src/lexer-keywords.txt" + {"i32.atomic.rmw.sub", TokenType::AtomicRmw, Opcode::I32AtomicRmwSub}, +#line 380 "src/lexer-keywords.txt" + {"i64.load8_s", TokenType::Load, Opcode::I64Load8S}, +#line 251 "src/lexer-keywords.txt" + {"i32.load8_s", TokenType::Load, Opcode::I32Load8S}, + {""}, {""}, +#line 26 "src/lexer-keywords.txt" + {"assert_unlinkable", TokenType::AssertUnlinkable}, +#line 104 "src/lexer-keywords.txt" + {"f32x4", TokenType::F32X4}, +#line 556 "src/lexer-keywords.txt" {"i64.trunc_s/f64", TokenType::Convert, Opcode::I64TruncF64S}, -#line 541 "src/lexer-keywords.txt" +#line 544 "src/lexer-keywords.txt" {"i32.trunc_s/f64", TokenType::Convert, Opcode::I32TruncF64S}, -#line 557 "src/lexer-keywords.txt" +#line 311 "src/lexer-keywords.txt" + {"i32x4", TokenType::I32X4}, + {""}, +#line 109 "src/lexer-keywords.txt" + {"f64.convert_i32_s", TokenType::Convert, Opcode::F64ConvertI32S}, +#line 58 "src/lexer-keywords.txt" + {"f32.convert_i32_s", TokenType::Convert, Opcode::F32ConvertI32S}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 560 "src/lexer-keywords.txt" {"i64.trunc_u/f64", TokenType::Convert, Opcode::I64TruncF64U}, -#line 545 "src/lexer-keywords.txt" +#line 548 "src/lexer-keywords.txt" {"i32.trunc_u/f64", TokenType::Convert, Opcode::I32TruncF64U}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 552 "src/lexer-keywords.txt" - {"i64.trunc_s/f32", TokenType::Convert, Opcode::I64TruncF32S}, -#line 540 "src/lexer-keywords.txt" - {"i32.trunc_s/f32", TokenType::Convert, Opcode::I32TruncF32S}, -#line 556 "src/lexer-keywords.txt" - {"i64.trunc_u/f32", TokenType::Convert, Opcode::I64TruncF32U}, -#line 544 "src/lexer-keywords.txt" - {"i32.trunc_u/f32", TokenType::Convert, Opcode::I32TruncF32U}, - {""}, {""}, {""}, {""}, -#line 99 "src/lexer-keywords.txt" - {"f32x4.sub", TokenType::Binary, Opcode::F32X4Sub}, -#line 376 "src/lexer-keywords.txt" - {"i64.load8_s", TokenType::Load, Opcode::I64Load8S}, -#line 247 "src/lexer-keywords.txt" - {"i32.load8_s", TokenType::Load, Opcode::I32Load8S}, -#line 306 "src/lexer-keywords.txt" - {"i32x4.sub", TokenType::Binary, Opcode::I32X4Sub}, - {""}, -#line 377 "src/lexer-keywords.txt" +#line 508 "src/lexer-keywords.txt" + {"type", TokenType::Type}, + {""}, {""}, {""}, +#line 43 "src/lexer-keywords.txt" + {"drop", TokenType::Drop, Opcode::Drop}, +#line 381 "src/lexer-keywords.txt" {"i64.load8_u", TokenType::Load, Opcode::I64Load8U}, -#line 248 "src/lexer-keywords.txt" +#line 252 "src/lexer-keywords.txt" {"i32.load8_u", TokenType::Load, Opcode::I32Load8U}, - {""}, {""}, -#line 383 "src/lexer-keywords.txt" +#line 404 "src/lexer-keywords.txt" + {"i64.trunc_f64_s", TokenType::Convert, Opcode::I64TruncF64S}, +#line 274 "src/lexer-keywords.txt" + {"i32.trunc_f64_s", TokenType::Convert, Opcode::I32TruncF64S}, + {""}, +#line 328 "src/lexer-keywords.txt" + {"i64.atomic.rmw16.or_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16OrU}, +#line 212 "src/lexer-keywords.txt" + {"i32.atomic.rmw16.or_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16OrU}, + {""}, {""}, {""}, {""}, +#line 473 "src/lexer-keywords.txt" + {"memory.size", TokenType::MemorySize, Opcode::MemorySize}, + {""}, {""}, {""}, +#line 405 "src/lexer-keywords.txt" + {"i64.trunc_f64_u", TokenType::Convert, Opcode::I64TruncF64U}, +#line 275 "src/lexer-keywords.txt" + {"i32.trunc_f64_u", TokenType::Convert, Opcode::I32TruncF64U}, +#line 387 "src/lexer-keywords.txt" {"i64.or", TokenType::Binary, Opcode::I64Or}, -#line 254 "src/lexer-keywords.txt" +#line 258 "src/lexer-keywords.txt" {"i32.or", TokenType::Binary, Opcode::I32Or}, -#line 95 "src/lexer-keywords.txt" - {"f32x4.ne", TokenType::Compare, Opcode::F32X4Ne}, -#line 90 "src/lexer-keywords.txt" - {"f32x4.lt", TokenType::Compare, Opcode::F32X4Lt}, + {""}, {""}, +#line 53 "src/lexer-keywords.txt" + {"export", TokenType::Export}, +#line 329 "src/lexer-keywords.txt" + {"i64.atomic.rmw16.sub_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16SubU}, +#line 213 "src/lexer-keywords.txt" + {"i32.atomic.rmw16.sub_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16SubU}, +#line 461 "src/lexer-keywords.txt" + {"import", TokenType::Import}, +#line 472 "src/lexer-keywords.txt" + {"memory.init", TokenType::MemoryInit, Opcode::MemoryInit}, {""}, -#line 300 "src/lexer-keywords.txt" +#line 481 "src/lexer-keywords.txt" + {"param", TokenType::Param}, +#line 99 "src/lexer-keywords.txt" + {"f32x4.ne", TokenType::Compare, Opcode::F32X4Ne}, + {""}, {""}, +#line 304 "src/lexer-keywords.txt" {"i32x4.ne", TokenType::Compare, Opcode::I32X4Ne}, + {""}, {""}, {""}, +#line 478 "src/lexer-keywords.txt" + {"nan:canonical", TokenType::NanCanonical}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 534 "src/lexer-keywords.txt" + {"f64.convert_s/i32", TokenType::Convert, Opcode::F64ConvertI32S}, +#line 528 "src/lexer-keywords.txt" + {"f32.convert_s/i32", TokenType::Convert, Opcode::F32ConvertI32S}, +#line 468 "src/lexer-keywords.txt" + {"loop", TokenType::Loop, Opcode::Loop}, +#line 519 "src/lexer-keywords.txt" + {"v128.xor", TokenType::Binary, Opcode::V128Xor}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 111 "src/lexer-keywords.txt" + {"f64.convert_i64_s", TokenType::Convert, Opcode::F64ConvertI64S}, +#line 60 "src/lexer-keywords.txt" + {"f32.convert_i64_s", TokenType::Convert, Opcode::F32ConvertI64S}, +#line 20 "src/lexer-keywords.txt" + {"array", Type::Array, TokenType::Array}, +#line 536 "src/lexer-keywords.txt" + {"f64.convert_u/i32", TokenType::Convert, Opcode::F64ConvertI32U}, +#line 530 "src/lexer-keywords.txt" + {"f32.convert_u/i32", TokenType::Convert, Opcode::F32ConvertI32U}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 96 "src/lexer-keywords.txt" + {"f32x4.min", TokenType::Binary, Opcode::F32X4Min}, {""}, -#line 496 "src/lexer-keywords.txt" - {"table.get", TokenType::TableGet, Opcode::TableGet}, - {""}, -#line 31 "src/lexer-keywords.txt" - {"br_on_exn", TokenType::BrOnExn, Opcode::BrOnExn}, - {""}, {""}, {""}, {""}, {""}, -#line 89 "src/lexer-keywords.txt" +#line 93 "src/lexer-keywords.txt" {"f32x4.le", TokenType::Compare, Opcode::F32X4Le}, - {""}, -#line 292 "src/lexer-keywords.txt" - {"i32x4.lt_s", TokenType::Compare, Opcode::I32X4LtS}, -#line 296 "src/lexer-keywords.txt" + {""}, {""}, {""}, {""}, {""}, +#line 94 "src/lexer-keywords.txt" + {"f32x4.lt", TokenType::Compare, Opcode::F32X4Lt}, +#line 300 "src/lexer-keywords.txt" {"i32x4.min_s", TokenType::Binary, Opcode::I32X4MinS}, -#line 293 "src/lexer-keywords.txt" - {"i32x4.lt_u", TokenType::Compare, Opcode::I32X4LtU}, - {""}, -#line 92 "src/lexer-keywords.txt" - {"f32x4.min", TokenType::Binary, Opcode::F32X4Min}, -#line 297 "src/lexer-keywords.txt" - {"i32x4.min_u", TokenType::Binary, Opcode::I32X4MinU}, -#line 288 "src/lexer-keywords.txt" - {"i32x4.le_s", TokenType::Compare, Opcode::I32X4LeS}, - {""}, -#line 289 "src/lexer-keywords.txt" - {"i32x4.le_u", TokenType::Compare, Opcode::I32X4LeU}, - {""}, {""}, -#line 549 "src/lexer-keywords.txt" +#line 552 "src/lexer-keywords.txt" {"i64.extend_s/i32", TokenType::Convert, Opcode::I64ExtendI32S}, - {""}, -#line 550 "src/lexer-keywords.txt" - {"i64.extend_u/i32", TokenType::Convert, Opcode::I64ExtendI32U}, -#line 321 "src/lexer-keywords.txt" +#line 325 "src/lexer-keywords.txt" {"i64.atomic.rmw16.add_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16AddU}, -#line 205 "src/lexer-keywords.txt" +#line 209 "src/lexer-keywords.txt" {"i32.atomic.rmw16.add_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16AddU}, - {""}, {""}, -#line 322 "src/lexer-keywords.txt" + {""}, {""}, {""}, +#line 32 "src/lexer-keywords.txt" + {"br_on_exn", TokenType::BrOnExn, Opcode::BrOnExn}, +#line 326 "src/lexer-keywords.txt" {"i64.atomic.rmw16.and_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16AndU}, -#line 206 "src/lexer-keywords.txt" +#line 210 "src/lexer-keywords.txt" {"i32.atomic.rmw16.and_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16AndU}, -#line 349 "src/lexer-keywords.txt" - {"i64.atomic.store16", TokenType::AtomicStore, Opcode::I64AtomicStore16}, -#line 226 "src/lexer-keywords.txt" - {"i32.atomic.store16", TokenType::AtomicStore, Opcode::I32AtomicStore16}, - {""}, -#line 80 "src/lexer-keywords.txt" - {"f32x4.abs", TokenType::Unary, Opcode::F32X4Abs}, -#line 474 "src/lexer-keywords.txt" - {"nan:canonical", TokenType::NanCanonical}, -#line 26 "src/lexer-keywords.txt" - {"atomic.fence", TokenType::AtomicFence, Opcode::AtomicFence}, -#line 278 "src/lexer-keywords.txt" - {"i32x4.abs", TokenType::Unary, Opcode::I32X4Abs}, - {""}, {""}, -#line 93 "src/lexer-keywords.txt" - {"f32x4.mul", TokenType::Binary, Opcode::F32X4Mul}, {""}, {""}, -#line 298 "src/lexer-keywords.txt" - {"i32x4.mul", TokenType::Binary, Opcode::I32X4Mul}, - {""}, {""}, -#line 18 "src/lexer-keywords.txt" - {"anyref", Type::Anyref}, - {""}, {""}, {""}, -#line 469 "src/lexer-keywords.txt" - {"memory.size", TokenType::MemorySize, Opcode::MemorySize}, - {""}, {""}, {""}, {""}, -#line 468 "src/lexer-keywords.txt" - {"memory.init", TokenType::MemoryInit, Opcode::MemoryInit}, +#line 110 "src/lexer-keywords.txt" + {"f64.convert_i32_u", TokenType::Convert, Opcode::F64ConvertI32U}, +#line 59 "src/lexer-keywords.txt" + {"f32.convert_i32_u", TokenType::Convert, Opcode::F32ConvertI32U}, +#line 553 "src/lexer-keywords.txt" + {"i64.extend_u/i32", TokenType::Convert, Opcode::I64ExtendI32U}, +#line 157 "src/lexer-keywords.txt" + {"get", TokenType::Get}, {""}, -#line 84 "src/lexer-keywords.txt" - {"f32x4.div", TokenType::Binary, Opcode::F32X4Div}, +#line 353 "src/lexer-keywords.txt" + {"i64.atomic.store16", TokenType::AtomicStore, Opcode::I64AtomicStore16}, +#line 230 "src/lexer-keywords.txt" + {"i32.atomic.store16", TokenType::AtomicStore, Opcode::I32AtomicStore16}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 301 "src/lexer-keywords.txt" + {"i32x4.min_u", TokenType::Binary, Opcode::I32X4MinU}, {""}, -#line 324 "src/lexer-keywords.txt" - {"i64.atomic.rmw16.or_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16OrU}, -#line 208 "src/lexer-keywords.txt" - {"i32.atomic.rmw16.or_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16OrU}, - {""}, {""}, -#line 487 "src/lexer-keywords.txt" - {"return_call_indirect", TokenType::ReturnCallIndirect, Opcode::ReturnCallIndirect}, -#line 323 "src/lexer-keywords.txt" +#line 327 "src/lexer-keywords.txt" {"i64.atomic.rmw16.cmpxchg_u", TokenType::AtomicRmwCmpxchg, Opcode::I64AtomicRmw16CmpxchgU}, -#line 207 "src/lexer-keywords.txt" +#line 211 "src/lexer-keywords.txt" {"i32.atomic.rmw16.cmpxchg_u", TokenType::AtomicRmwCmpxchg, Opcode::I32AtomicRmw16CmpxchgU}, {""}, {""}, {""}, {""}, -#line 81 "src/lexer-keywords.txt" +#line 470 "src/lexer-keywords.txt" + {"memory.fill", TokenType::MemoryFill, Opcode::MemoryFill}, + {""}, +#line 85 "src/lexer-keywords.txt" {"f32x4.add", TokenType::Binary, Opcode::F32X4Add}, - {""}, {""}, -#line 279 "src/lexer-keywords.txt" +#line 117 "src/lexer-keywords.txt" + {"f64.ge", TokenType::Compare, Opcode::F64Ge}, +#line 67 "src/lexer-keywords.txt" + {"f32.ge", TokenType::Compare, Opcode::F32Ge}, +#line 283 "src/lexer-keywords.txt" {"i32x4.add", TokenType::Binary, Opcode::I32X4Add}, -#line 531 "src/lexer-keywords.txt" - {"f64.convert_s/i32", TokenType::Convert, Opcode::F64ConvertI32S}, -#line 525 "src/lexer-keywords.txt" - {"f32.convert_s/i32", TokenType::Convert, Opcode::F32ConvertI32S}, -#line 533 "src/lexer-keywords.txt" - {"f64.convert_u/i32", TokenType::Convert, Opcode::F64ConvertI32U}, -#line 527 "src/lexer-keywords.txt" - {"f32.convert_u/i32", TokenType::Convert, Opcode::F32ConvertI32U}, - {""}, -#line 156 "src/lexer-keywords.txt" - {"global", TokenType::Global}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 155 "src/lexer-keywords.txt" - {"global.set", TokenType::GlobalSet, Opcode::GlobalSet}, - {""}, {""}, {""}, -#line 479 "src/lexer-keywords.txt" - {"quote", TokenType::Quote}, {""}, {""}, {""}, -#line 146 "src/lexer-keywords.txt" - {"f64x2.splat", TokenType::Unary, Opcode::F64X2Splat}, - {""}, {""}, -#line 417 "src/lexer-keywords.txt" - {"i64x2.splat", TokenType::Unary, Opcode::I64X2Splat}, -#line 466 "src/lexer-keywords.txt" - {"memory.fill", TokenType::MemoryFill, Opcode::MemoryFill}, - {""}, {""}, {""}, -#line 362 "src/lexer-keywords.txt" - {"i64.extend32_s", TokenType::Unary, Opcode::I64Extend32S}, - {""}, {""}, {""}, -#line 497 "src/lexer-keywords.txt" - {"table.grow", TokenType::TableGrow, Opcode::TableGrow}, - {""}, -#line 126 "src/lexer-keywords.txt" - {"f64.sqrt", TokenType::Unary, Opcode::F64Sqrt}, -#line 75 "src/lexer-keywords.txt" - {"f32.sqrt", TokenType::Unary, Opcode::F32Sqrt}, -#line 137 "src/lexer-keywords.txt" - {"f64x2.gt", TokenType::Compare, Opcode::F64X2Gt}, - {""}, -#line 516 "src/lexer-keywords.txt" - {"v128.xor", TokenType::Binary, Opcode::V128Xor}, -#line 114 "src/lexer-keywords.txt" +#line 118 "src/lexer-keywords.txt" {"f64.gt", TokenType::Compare, Opcode::F64Gt}, -#line 64 "src/lexer-keywords.txt" +#line 68 "src/lexer-keywords.txt" {"f32.gt", TokenType::Compare, Opcode::F32Gt}, {""}, -#line 364 "src/lexer-keywords.txt" - {"i64.extend_i32_s", TokenType::Convert, Opcode::I64ExtendI32S}, +#line 103 "src/lexer-keywords.txt" + {"f32x4.sub", TokenType::Binary, Opcode::F32X4Sub}, +#line 490 "src/lexer-keywords.txt" + {"return_call_indirect", TokenType::ReturnCallIndirect, Opcode::ReturnCallIndirect}, + {""}, +#line 310 "src/lexer-keywords.txt" + {"i32x4.sub", TokenType::Binary, Opcode::I32X4Sub}, +#line 292 "src/lexer-keywords.txt" + {"i32x4.le_s", TokenType::Compare, Opcode::I32X4LeS}, + {""}, {""}, +#line 296 "src/lexer-keywords.txt" + {"i32x4.lt_s", TokenType::Compare, Opcode::I32X4LtS}, + {""}, {""}, +#line 366 "src/lexer-keywords.txt" + {"i64.extend32_s", TokenType::Unary, Opcode::I64Extend32S}, + {""}, {""}, +#line 487 "src/lexer-keywords.txt" + {"register", TokenType::Register}, {""}, {""}, {""}, -#line 365 "src/lexer-keywords.txt" - {"i64.extend_i32_u", TokenType::Convert, Opcode::I64ExtendI32U}, +#line 293 "src/lexer-keywords.txt" + {"i32x4.le_u", TokenType::Compare, Opcode::I32X4LeU}, +#line 84 "src/lexer-keywords.txt" + {"f32x4.abs", TokenType::Unary, Opcode::F32X4Abs}, {""}, -#line 136 "src/lexer-keywords.txt" - {"f64x2.ge", TokenType::Compare, Opcode::F64X2Ge}, +#line 297 "src/lexer-keywords.txt" + {"i32x4.lt_u", TokenType::Compare, Opcode::I32X4LtU}, +#line 282 "src/lexer-keywords.txt" + {"i32x4.abs", TokenType::Unary, Opcode::I32X4Abs}, {""}, {""}, -#line 113 "src/lexer-keywords.txt" - {"f64.ge", TokenType::Compare, Opcode::F64Ge}, -#line 63 "src/lexer-keywords.txt" - {"f32.ge", TokenType::Compare, Opcode::F32Ge}, +#line 368 "src/lexer-keywords.txt" + {"i64.extend_i32_s", TokenType::Convert, Opcode::I64ExtendI32S}, {""}, {""}, {""}, -#line 460 "src/lexer-keywords.txt" - {"local.get", TokenType::LocalGet, Opcode::LocalGet}, +#line 322 "src/lexer-keywords.txt" + {"i64.atomic.load32_u", TokenType::AtomicLoad, Opcode::I64AtomicLoad32U}, + {""}, {""}, {""}, {""}, {""}, +#line 112 "src/lexer-keywords.txt" + {"f64.convert_i64_u", TokenType::Convert, Opcode::F64ConvertI64U}, +#line 61 "src/lexer-keywords.txt" + {"f32.convert_i64_u", TokenType::Convert, Opcode::F32ConvertI64U}, +#line 97 "src/lexer-keywords.txt" + {"f32x4.mul", TokenType::Binary, Opcode::F32X4Mul}, {""}, -#line 484 "src/lexer-keywords.txt" - {"register", TokenType::Register}, +#line 338 "src/lexer-keywords.txt" + {"i64.atomic.rmw32.xor_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32XorU}, +#line 302 "src/lexer-keywords.txt" + {"i32x4.mul", TokenType::Binary, Opcode::I32X4Mul}, {""}, -#line 319 "src/lexer-keywords.txt" +#line 323 "src/lexer-keywords.txt" {"i64.atomic.load8_u", TokenType::AtomicLoad, Opcode::I64AtomicLoad8U}, -#line 203 "src/lexer-keywords.txt" +#line 207 "src/lexer-keywords.txt" {"i32.atomic.load8_u", TokenType::AtomicLoad, Opcode::I32AtomicLoad8U}, -#line 368 "src/lexer-keywords.txt" - {"i64.gt_s", TokenType::Compare, Opcode::I64GtS}, -#line 241 "src/lexer-keywords.txt" - {"i32.gt_s", TokenType::Compare, Opcode::I32GtS}, - {""}, {""}, + {""}, +#line 345 "src/lexer-keywords.txt" + {"i64.atomic.rmw8.xor_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8XorU}, +#line 222 "src/lexer-keywords.txt" + {"i32.atomic.rmw8.xor_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8XorU}, + {""}, {""}, {""}, {""}, #line 369 "src/lexer-keywords.txt" - {"i64.gt_u", TokenType::Compare, Opcode::I64GtU}, -#line 242 "src/lexer-keywords.txt" - {"i32.gt_u", TokenType::Compare, Opcode::I32GtU}, -#line 366 "src/lexer-keywords.txt" - {"i64.ge_s", TokenType::Compare, Opcode::I64GeS}, -#line 239 "src/lexer-keywords.txt" - {"i32.ge_s", TokenType::Compare, Opcode::I32GeS}, -#line 318 "src/lexer-keywords.txt" - {"i64.atomic.load32_u", TokenType::AtomicLoad, Opcode::I64AtomicLoad32U}, + {"i64.extend_i32_u", TokenType::Convert, Opcode::I64ExtendI32U}, +#line 31 "src/lexer-keywords.txt" + {"br_if", TokenType::BrIf, Opcode::BrIf}, {""}, -#line 367 "src/lexer-keywords.txt" - {"i64.ge_u", TokenType::Compare, Opcode::I64GeU}, -#line 240 "src/lexer-keywords.txt" - {"i32.ge_u", TokenType::Compare, Opcode::I32GeU}, +#line 482 "src/lexer-keywords.txt" + {"quote", TokenType::Quote}, {""}, {""}, -#line 337 "src/lexer-keywords.txt" - {"i64.atomic.rmw8.cmpxchg_u", TokenType::AtomicRmwCmpxchg, Opcode::I64AtomicRmw8CmpxchgU}, -#line 214 "src/lexer-keywords.txt" - {"i32.atomic.rmw8.cmpxchg_u", TokenType::AtomicRmwCmpxchg, Opcode::I32AtomicRmw8CmpxchgU}, - {""}, {""}, {""}, -#line 420 "src/lexer-keywords.txt" - {"i64.xor", TokenType::Binary, Opcode::I64Xor}, -#line 314 "src/lexer-keywords.txt" - {"i32.xor", TokenType::Binary, Opcode::I32Xor}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 402 "src/lexer-keywords.txt" +#line 406 "src/lexer-keywords.txt" {"i64.trunc_sat_f32_s", TokenType::Convert, Opcode::I64TruncSatF32S}, -#line 272 "src/lexer-keywords.txt" +#line 276 "src/lexer-keywords.txt" {"i32.trunc_sat_f32_s", TokenType::Convert, Opcode::I32TruncSatF32S}, -#line 19 "src/lexer-keywords.txt" - {"array", TokenType::Array}, + {""}, {""}, +#line 370 "src/lexer-keywords.txt" + {"i64.ge_s", TokenType::Compare, Opcode::I64GeS}, +#line 243 "src/lexer-keywords.txt" + {"i32.ge_s", TokenType::Compare, Opcode::I32GeS}, {""}, -#line 403 "src/lexer-keywords.txt" +#line 372 "src/lexer-keywords.txt" + {"i64.gt_s", TokenType::Compare, Opcode::I64GtS}, +#line 245 "src/lexer-keywords.txt" + {"i32.gt_s", TokenType::Compare, Opcode::I32GtS}, + {""}, {""}, {""}, +#line 499 "src/lexer-keywords.txt" + {"table.get", TokenType::TableGet, Opcode::TableGet}, +#line 37 "src/lexer-keywords.txt" + {"catch", TokenType::Catch, Opcode::Catch}, +#line 116 "src/lexer-keywords.txt" + {"f64.floor", TokenType::Unary, Opcode::F64Floor}, +#line 66 "src/lexer-keywords.txt" + {"f32.floor", TokenType::Unary, Opcode::F32Floor}, + {""}, {""}, +#line 395 "src/lexer-keywords.txt" + {"i64.shr_s", TokenType::Binary, Opcode::I64ShrS}, +#line 266 "src/lexer-keywords.txt" + {"i32.shr_s", TokenType::Binary, Opcode::I32ShrS}, + {""}, {""}, {""}, +#line 500 "src/lexer-keywords.txt" + {"table.grow", TokenType::TableGrow, Opcode::TableGrow}, + {""}, {""}, +#line 407 "src/lexer-keywords.txt" {"i64.trunc_sat_f32_u", TokenType::Convert, Opcode::I64TruncSatF32U}, -#line 273 "src/lexer-keywords.txt" +#line 277 "src/lexer-keywords.txt" {"i32.trunc_sat_f32_u", TokenType::Convert, Opcode::I32TruncSatF32U}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 338 "src/lexer-keywords.txt" - {"i64.atomic.rmw8.or_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8OrU}, -#line 215 "src/lexer-keywords.txt" - {"i32.atomic.rmw8.or_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8OrU}, - {""}, {""}, {""}, {""}, {""}, -#line 390 "src/lexer-keywords.txt" - {"i64.shl", TokenType::Binary, Opcode::I64Shl}, -#line 261 "src/lexer-keywords.txt" - {"i32.shl", TokenType::Binary, Opcode::I32Shl}, + {""}, +#line 150 "src/lexer-keywords.txt" + {"f64x2.splat", TokenType::Unary, Opcode::F64X2Splat}, +#line 371 "src/lexer-keywords.txt" + {"i64.ge_u", TokenType::Compare, Opcode::I64GeU}, +#line 244 "src/lexer-keywords.txt" + {"i32.ge_u", TokenType::Compare, Opcode::I32GeU}, +#line 421 "src/lexer-keywords.txt" + {"i64x2.splat", TokenType::Unary, Opcode::I64X2Splat}, +#line 373 "src/lexer-keywords.txt" + {"i64.gt_u", TokenType::Compare, Opcode::I64GtU}, +#line 246 "src/lexer-keywords.txt" + {"i32.gt_u", TokenType::Compare, Opcode::I32GtU}, +#line 130 "src/lexer-keywords.txt" + {"f64.sqrt", TokenType::Unary, Opcode::F64Sqrt}, +#line 79 "src/lexer-keywords.txt" + {"f32.sqrt", TokenType::Unary, Opcode::F32Sqrt}, {""}, {""}, {""}, {""}, -#line 361 "src/lexer-keywords.txt" - {"i64.extend16_s", TokenType::Unary, Opcode::I64Extend16S}, -#line 237 "src/lexer-keywords.txt" - {"i32.extend16_s", TokenType::Unary, Opcode::I32Extend16S}, -#line 391 "src/lexer-keywords.txt" - {"i64.shr_s", TokenType::Binary, Opcode::I64ShrS}, -#line 262 "src/lexer-keywords.txt" - {"i32.shr_s", TokenType::Binary, Opcode::I32ShrS}, +#line 140 "src/lexer-keywords.txt" + {"f64x2.ge", TokenType::Compare, Opcode::F64X2Ge}, {""}, -#line 280 "src/lexer-keywords.txt" - {"i32x4.all_true", TokenType::Unary, Opcode::I32X4AllTrue}, -#line 392 "src/lexer-keywords.txt" +#line 88 "src/lexer-keywords.txt" + {"f32x4.div", TokenType::Binary, Opcode::F32X4Div}, +#line 396 "src/lexer-keywords.txt" {"i64.shr_u", TokenType::Binary, Opcode::I64ShrU}, -#line 263 "src/lexer-keywords.txt" +#line 267 "src/lexer-keywords.txt" {"i32.shr_u", TokenType::Binary, Opcode::I32ShrU}, - {""}, {""}, -#line 334 "src/lexer-keywords.txt" - {"i64.atomic.rmw32.xor_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32XorU}, - {""}, {""}, {""}, {""}, -#line 36 "src/lexer-keywords.txt" - {"catch", TokenType::Catch, Opcode::Catch}, {""}, -#line 20 "src/lexer-keywords.txt" +#line 141 "src/lexer-keywords.txt" + {"f64x2.gt", TokenType::Compare, Opcode::F64X2Gt}, +#line 21 "src/lexer-keywords.txt" {"assert_exhaustion", TokenType::AssertExhaustion}, + {""}, {""}, +#line 394 "src/lexer-keywords.txt" + {"i64.shl", TokenType::Binary, Opcode::I64Shl}, +#line 265 "src/lexer-keywords.txt" + {"i32.shl", TokenType::Binary, Opcode::I32Shl}, + {""}, {""}, +#line 507 "src/lexer-keywords.txt" + {"try", TokenType::Try, Opcode::Try}, +#line 365 "src/lexer-keywords.txt" + {"i64.extend16_s", TokenType::Unary, Opcode::I64Extend16S}, +#line 241 "src/lexer-keywords.txt" + {"i32.extend16_s", TokenType::Unary, Opcode::I32Extend16S}, + {""}, {""}, {""}, {""}, +#line 159 "src/lexer-keywords.txt" + {"global.set", TokenType::GlobalSet, Opcode::GlobalSet}, +#line 337 "src/lexer-keywords.txt" + {"i64.atomic.rmw32.xchg_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32XchgU}, {""}, {""}, {""}, -#line 363 "src/lexer-keywords.txt" +#line 160 "src/lexer-keywords.txt" + {"global", TokenType::Global}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 450 "src/lexer-keywords.txt" + {"i8x16.ne", TokenType::Compare, Opcode::I8X16Ne}, + {""}, {""}, {""}, {""}, +#line 419 "src/lexer-keywords.txt" + {"i64x2.shr_s", TokenType::Binary, Opcode::I64X2ShrS}, +#line 284 "src/lexer-keywords.txt" + {"i32x4.all_true", TokenType::Unary, Opcode::I32X4AllTrue}, + {""}, {""}, {""}, {""}, {""}, +#line 367 "src/lexer-keywords.txt" {"i64.extend8_s", TokenType::Unary, Opcode::I64Extend8S}, -#line 238 "src/lexer-keywords.txt" +#line 242 "src/lexer-keywords.txt" {"i32.extend8_s", TokenType::Unary, Opcode::I32Extend8S}, {""}, -#line 475 "src/lexer-keywords.txt" - {"nop", TokenType::Nop, Opcode::Nop}, +#line 341 "src/lexer-keywords.txt" + {"i64.atomic.rmw8.cmpxchg_u", TokenType::AtomicRmwCmpxchg, Opcode::I64AtomicRmw8CmpxchgU}, +#line 218 "src/lexer-keywords.txt" + {"i32.atomic.rmw8.cmpxchg_u", TokenType::AtomicRmwCmpxchg, Opcode::I32AtomicRmw8CmpxchgU}, {""}, {""}, -#line 360 "src/lexer-keywords.txt" - {"i64.eqz", TokenType::Convert, Opcode::I64Eqz}, -#line 236 "src/lexer-keywords.txt" - {"i32.eqz", TokenType::Convert, Opcode::I32Eqz}, +#line 527 "src/lexer-keywords.txt" + {"anyfunc", Type::FuncRef}, {""}, {""}, {""}, {""}, {""}, -#line 112 "src/lexer-keywords.txt" - {"f64.floor", TokenType::Unary, Opcode::F64Floor}, -#line 62 "src/lexer-keywords.txt" - {"f32.floor", TokenType::Unary, Opcode::F32Floor}, +#line 474 "src/lexer-keywords.txt" + {"memory", TokenType::Memory}, + {""}, {""}, {""}, {""}, {""}, +#line 420 "src/lexer-keywords.txt" + {"i64x2.shr_u", TokenType::Binary, Opcode::I64X2ShrU}, {""}, -#line 454 "src/lexer-keywords.txt" - {"i8x16.sub", TokenType::Binary, Opcode::I8X16Sub}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 342 "src/lexer-keywords.txt" + {"i64.atomic.rmw8.or_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8OrU}, +#line 219 "src/lexer-keywords.txt" + {"i32.atomic.rmw8.or_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8OrU}, + {""}, {""}, {""}, +#line 533 "src/lexer-keywords.txt" + {"f32.reinterpret/i32", TokenType::Convert, Opcode::F32ReinterpretI32}, {""}, -#line 446 "src/lexer-keywords.txt" - {"i8x16.ne", TokenType::Compare, Opcode::I8X16Ne}, +#line 464 "src/lexer-keywords.txt" + {"local.get", TokenType::LocalGet, Opcode::LocalGet}, + {""}, {""}, +#line 445 "src/lexer-keywords.txt" + {"i8x16.min_s", TokenType::Binary, Opcode::I8X16MinS}, {""}, {""}, {""}, -#line 194 "src/lexer-keywords.txt" - {"i16x8.sub", TokenType::Binary, Opcode::I16X8Sub}, +#line 29 "src/lexer-keywords.txt" + {"binary", TokenType::Bin}, +#line 413 "src/lexer-keywords.txt" + {"i64x2.load32x2_s", TokenType::Load, Opcode::I64X2Load32X2S}, {""}, {""}, -#line 147 "src/lexer-keywords.txt" - {"f64x2.sqrt", TokenType::Unary, Opcode::F64X2Sqrt}, +#line 122 "src/lexer-keywords.txt" + {"f64.max", TokenType::Binary, Opcode::F64Max}, +#line 72 "src/lexer-keywords.txt" + {"f32.max", TokenType::Binary, Opcode::F32Max}, + {""}, +#line 190 "src/lexer-keywords.txt" + {"i16x8.ne", TokenType::Compare, Opcode::I16X8Ne}, {""}, {""}, -#line 333 "src/lexer-keywords.txt" - {"i64.atomic.rmw32.xchg_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw32XchgU}, -#line 480 "src/lexer-keywords.txt" +#line 331 "src/lexer-keywords.txt" + {"i64.atomic.rmw16.xor_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16XorU}, +#line 215 "src/lexer-keywords.txt" + {"i32.atomic.rmw16.xor_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16XorU}, +#line 151 "src/lexer-keywords.txt" + {"f64x2.sqrt", TokenType::Unary, Opcode::F64X2Sqrt}, +#line 78 "src/lexer-keywords.txt" + {"f32.reinterpret_i32", TokenType::Convert, Opcode::F32ReinterpretI32}, +#line 321 "src/lexer-keywords.txt" + {"i64.atomic.load16_u", TokenType::AtomicLoad, Opcode::I64AtomicLoad16U}, +#line 206 "src/lexer-keywords.txt" + {"i32.atomic.load16_u", TokenType::AtomicLoad, Opcode::I32AtomicLoad16U}, +#line 484 "src/lexer-keywords.txt" {"ref.func", TokenType::RefFunc, Opcode::RefFunc}, -#line 437 "src/lexer-keywords.txt" - {"i8x16.lt_s", TokenType::Compare, Opcode::I8X16LtS}, -#line 441 "src/lexer-keywords.txt" - {"i8x16.min_s", TokenType::Binary, Opcode::I8X16MinS}, -#line 438 "src/lexer-keywords.txt" - {"i8x16.lt_u", TokenType::Compare, Opcode::I8X16LtU}, -#line 186 "src/lexer-keywords.txt" - {"i16x8.ne", TokenType::Compare, Opcode::I16X8Ne}, - {""}, -#line 442 "src/lexer-keywords.txt" + {""}, {""}, {""}, {""}, {""}, +#line 446 "src/lexer-keywords.txt" {"i8x16.min_u", TokenType::Binary, Opcode::I8X16MinU}, -#line 435 "src/lexer-keywords.txt" + {""}, {""}, {""}, {""}, +#line 414 "src/lexer-keywords.txt" + {"i64x2.load32x2_u", TokenType::Load, Opcode::I64X2Load32X2U}, + {""}, {""}, +#line 364 "src/lexer-keywords.txt" + {"i64.eqz", TokenType::Convert, Opcode::I64Eqz}, +#line 240 "src/lexer-keywords.txt" + {"i32.eqz", TokenType::Convert, Opcode::I32Eqz}, + {""}, {""}, {""}, +#line 428 "src/lexer-keywords.txt" + {"i8x16.add", TokenType::Binary, Opcode::I8X16Add}, + {""}, {""}, {""}, {""}, +#line 418 "src/lexer-keywords.txt" + {"i64x2.shl", TokenType::Binary, Opcode::I64X2Shl}, + {""}, {""}, {""}, {""}, +#line 458 "src/lexer-keywords.txt" + {"i8x16.sub", TokenType::Binary, Opcode::I8X16Sub}, +#line 439 "src/lexer-keywords.txt" {"i8x16.le_s", TokenType::Compare, Opcode::I8X16LeS}, + {""}, {""}, +#line 441 "src/lexer-keywords.txt" + {"i8x16.lt_s", TokenType::Compare, Opcode::I8X16LtS}, +#line 184 "src/lexer-keywords.txt" + {"i16x8.min_s", TokenType::Binary, Opcode::I16X8MinS}, + {""}, {""}, {""}, {""}, +#line 563 "src/lexer-keywords.txt" + {"set_global", TokenType::GlobalSet, Opcode::GlobalSet}, +#line 539 "src/lexer-keywords.txt" + {"f64.reinterpret/i64", TokenType::Convert, Opcode::F64ReinterpretI64}, +#line 459 "src/lexer-keywords.txt" + {"i8x16", TokenType::I8X16}, {""}, -#line 436 "src/lexer-keywords.txt" +#line 440 "src/lexer-keywords.txt" {"i8x16.le_u", TokenType::Compare, Opcode::I8X16LeU}, - {""}, -#line 538 "src/lexer-keywords.txt" - {"get_local", TokenType::LocalGet, Opcode::LocalGet}, -#line 118 "src/lexer-keywords.txt" - {"f64.max", TokenType::Binary, Opcode::F64Max}, -#line 68 "src/lexer-keywords.txt" - {"f32.max", TokenType::Binary, Opcode::F32Max}, {""}, {""}, -#line 176 "src/lexer-keywords.txt" - {"i16x8.lt_s", TokenType::Compare, Opcode::I16X8LtS}, -#line 180 "src/lexer-keywords.txt" - {"i16x8.min_s", TokenType::Binary, Opcode::I16X8MinS}, -#line 177 "src/lexer-keywords.txt" - {"i16x8.lt_u", TokenType::Compare, Opcode::I16X8LtU}, +#line 442 "src/lexer-keywords.txt" + {"i8x16.lt_u", TokenType::Compare, Opcode::I8X16LtU}, +#line 425 "src/lexer-keywords.txt" + {"i8x16.abs", TokenType::Unary, Opcode::I8X16Abs}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 139 "src/lexer-keywords.txt" + {"f64x2.extract_lane", TokenType::SimdLaneOp, Opcode::F64X2ExtractLane}, {""}, {""}, -#line 181 "src/lexer-keywords.txt" +#line 412 "src/lexer-keywords.txt" + {"i64x2.extract_lane", TokenType::SimdLaneOp, Opcode::I64X2ExtractLane}, +#line 538 "src/lexer-keywords.txt" + {"f64.promote/f32", TokenType::Convert, Opcode::F64PromoteF32}, +#line 185 "src/lexer-keywords.txt" {"i16x8.min_u", TokenType::Binary, Opcode::I16X8MinU}, -#line 172 "src/lexer-keywords.txt" - {"i16x8.le_s", TokenType::Compare, Opcode::I16X8LeS}, {""}, -#line 173 "src/lexer-keywords.txt" - {"i16x8.le_u", TokenType::Compare, Opcode::I16X8LeU}, - {""}, {""}, -#line 421 "src/lexer-keywords.txt" - {"i8x16.abs", TokenType::Unary, Opcode::I8X16Abs}, +#line 129 "src/lexer-keywords.txt" + {"f64.reinterpret_i64", TokenType::Convert, Opcode::F64ReinterpretI64}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, -#line 158 "src/lexer-keywords.txt" - {"i16x8.abs", TokenType::Unary, Opcode::I16X8Abs}, - {""}, {""}, {""}, {""}, -#line 455 "src/lexer-keywords.txt" - {"i8x16", TokenType::I8X16}, -#line 182 "src/lexer-keywords.txt" - {"i16x8.mul", TokenType::Binary, Opcode::I16X8Mul}, - {""}, {""}, -#line 317 "src/lexer-keywords.txt" - {"i64.atomic.load16_u", TokenType::AtomicLoad, Opcode::I64AtomicLoad16U}, -#line 202 "src/lexer-keywords.txt" - {"i32.atomic.load16_u", TokenType::AtomicLoad, Opcode::I32AtomicLoad16U}, {""}, -#line 519 "src/lexer-keywords.txt" - {"v64x2.load_splat", TokenType::Load, Opcode::V64X2LoadSplat}, +#line 165 "src/lexer-keywords.txt" + {"i16x8.add", TokenType::Binary, Opcode::I16X8Add}, {""}, -#line 524 "src/lexer-keywords.txt" - {"anyfunc", Type::Funcref}, - {""}, {""}, -#line 532 "src/lexer-keywords.txt" +#line 330 "src/lexer-keywords.txt" + {"i64.atomic.rmw16.xchg_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16XchgU}, +#line 214 "src/lexer-keywords.txt" + {"i32.atomic.rmw16.xchg_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16XchgU}, +#line 509 "src/lexer-keywords.txt" + {"unreachable", TokenType::Unreachable, Opcode::Unreachable}, + {""}, {""}, {""}, +#line 128 "src/lexer-keywords.txt" + {"f64.promote_f32", TokenType::Convert, Opcode::F64PromoteF32}, + {""}, +#line 198 "src/lexer-keywords.txt" + {"i16x8.sub", TokenType::Binary, Opcode::I16X8Sub}, +#line 176 "src/lexer-keywords.txt" + {"i16x8.le_s", TokenType::Compare, Opcode::I16X8LeS}, + {""}, +#line 541 "src/lexer-keywords.txt" + {"get_local", TokenType::LocalGet, Opcode::LocalGet}, +#line 180 "src/lexer-keywords.txt" + {"i16x8.lt_s", TokenType::Compare, Opcode::I16X8LtS}, + {""}, {""}, {""}, +#line 535 "src/lexer-keywords.txt" {"f64.convert_s/i64", TokenType::Convert, Opcode::F64ConvertI64S}, -#line 526 "src/lexer-keywords.txt" +#line 529 "src/lexer-keywords.txt" {"f32.convert_s/i64", TokenType::Convert, Opcode::F32ConvertI64S}, -#line 534 "src/lexer-keywords.txt" +#line 479 "src/lexer-keywords.txt" + {"nop", TokenType::Nop, Opcode::Nop}, + {""}, {""}, {""}, +#line 177 "src/lexer-keywords.txt" + {"i16x8.le_u", TokenType::Compare, Opcode::I16X8LeU}, + {""}, {""}, +#line 181 "src/lexer-keywords.txt" + {"i16x8.lt_u", TokenType::Compare, Opcode::I16X8LtU}, +#line 162 "src/lexer-keywords.txt" + {"i16x8.abs", TokenType::Unary, Opcode::I16X8Abs}, +#line 477 "src/lexer-keywords.txt" + {"nan:arithmetic", TokenType::NanArithmetic}, +#line 144 "src/lexer-keywords.txt" + {"f64x2.max", TokenType::Binary, Opcode::F64X2Max}, +#line 537 "src/lexer-keywords.txt" {"f64.convert_u/i64", TokenType::Convert, Opcode::F64ConvertI64U}, -#line 528 "src/lexer-keywords.txt" +#line 531 "src/lexer-keywords.txt" {"f32.convert_u/i64", TokenType::Convert, Opcode::F32ConvertI64U}, -#line 424 "src/lexer-keywords.txt" - {"i8x16.add", TokenType::Binary, Opcode::I8X16Add}, -#line 560 "src/lexer-keywords.txt" - {"set_global", TokenType::GlobalSet, Opcode::GlobalSet}, - {""}, {""}, -#line 327 "src/lexer-keywords.txt" - {"i64.atomic.rmw16.xor_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16XorU}, -#line 211 "src/lexer-keywords.txt" - {"i32.atomic.rmw16.xor_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16XorU}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 161 "src/lexer-keywords.txt" - {"i16x8.add", TokenType::Binary, Opcode::I16X8Add}, - {""}, -#line 341 "src/lexer-keywords.txt" - {"i64.atomic.rmw8.xor_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8XorU}, -#line 218 "src/lexer-keywords.txt" - {"i32.atomic.rmw8.xor_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8XorU}, -#line 415 "src/lexer-keywords.txt" - {"i64x2.shr_s", TokenType::Binary, Opcode::I64X2ShrS}, -#line 414 "src/lexer-keywords.txt" - {"i64x2.shl", TokenType::Binary, Opcode::I64X2Shl}, {""}, {""}, -#line 416 "src/lexer-keywords.txt" - {"i64x2.shr_u", TokenType::Binary, Opcode::I64X2ShrU}, +#line 298 "src/lexer-keywords.txt" + {"i32x4.max_s", TokenType::Binary, Opcode::I32X4MaxS}, {""}, -#line 125 "src/lexer-keywords.txt" - {"f64.reinterpret_i64", TokenType::Convert, Opcode::F64ReinterpretI64}, +#line 186 "src/lexer-keywords.txt" + {"i16x8.mul", TokenType::Binary, Opcode::I16X8Mul}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, +#line 299 "src/lexer-keywords.txt" + {"i32x4.max_u", TokenType::Binary, Opcode::I32X4MaxU}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 149 "src/lexer-keywords.txt" + {"f64x2.replace_lane", TokenType::SimdLaneOp, Opcode::F64X2ReplaceLane}, + {""}, {""}, +#line 417 "src/lexer-keywords.txt" + {"i64x2.replace_lane", TokenType::SimdLaneOp, Opcode::I64X2ReplaceLane}, {""}, {""}, {""}, -#line 97 "src/lexer-keywords.txt" - {"f32x4.splat", TokenType::Unary, Opcode::F32X4Splat}, +#line 44 "src/lexer-keywords.txt" + {"elem.drop", TokenType::ElemDrop, Opcode::ElemDrop}, + {""}, {""}, {""}, {""}, {""}, +#line 429 "src/lexer-keywords.txt" + {"i8x16.all_true", TokenType::Unary, Opcode::I8X16AllTrue}, + {""}, +#line 39 "src/lexer-keywords.txt" + {"data.drop", TokenType::DataDrop, Opcode::DataDrop}, {""}, {""}, -#line 305 "src/lexer-keywords.txt" - {"i32x4.splat", TokenType::Unary, Opcode::I32X4Splat}, +#line 38 "src/lexer-keywords.txt" + {"current_memory", TokenType::MemorySize, Opcode::MemorySize}, + {""}, {""}, +#line 199 "src/lexer-keywords.txt" + {"i16x8", TokenType::I16X8}, + {""}, {""}, +#line 285 "src/lexer-keywords.txt" + {"i32x4.any_true", TokenType::Unary, Opcode::I32X4AnyTrue}, + {""}, {""}, {""}, {""}, +#line 497 "src/lexer-keywords.txt" + {"table.copy", TokenType::TableCopy, Opcode::TableCopy}, +#line 522 "src/lexer-keywords.txt" + {"v64x2.load_splat", TokenType::Load, Opcode::V64X2LoadSplat}, {""}, {""}, {""}, {""}, {""}, -#line 294 "src/lexer-keywords.txt" - {"i32x4.max_s", TokenType::Binary, Opcode::I32X4MaxS}, -#line 74 "src/lexer-keywords.txt" - {"f32.reinterpret_i32", TokenType::Convert, Opcode::F32ReinterpretI32}, +#line 101 "src/lexer-keywords.txt" + {"f32x4.splat", TokenType::Unary, Opcode::F32X4Splat}, {""}, {""}, -#line 295 "src/lexer-keywords.txt" - {"i32x4.max_u", TokenType::Binary, Opcode::I32X4MaxU}, -#line 409 "src/lexer-keywords.txt" - {"i64x2.load32x2_s", TokenType::Load, Opcode::I64X2Load32X2S}, - {""}, -#line 88 "src/lexer-keywords.txt" - {"f32x4.gt", TokenType::Compare, Opcode::F32X4Gt}, +#line 309 "src/lexer-keywords.txt" + {"i32x4.splat", TokenType::Unary, Opcode::I32X4Splat}, {""}, -#line 410 "src/lexer-keywords.txt" - {"i64x2.load32x2_u", TokenType::Load, Opcode::I64X2Load32X2U}, +#line 525 "src/lexer-keywords.txt" + {"v8x16.swizzle", TokenType::Binary, Opcode::V8X16Swizzle}, +#line 316 "src/lexer-keywords.txt" + {"i32x4.widen_low_i16x8_s", TokenType::Unary, Opcode::I32X4WidenLowI16X8S}, {""}, -#line 24 "src/lexer-keywords.txt" - {"assert_trap", TokenType::AssertTrap}, +#line 355 "src/lexer-keywords.txt" + {"i64.atomic.store8", TokenType::AtomicStore, Opcode::I64AtomicStore8}, +#line 231 "src/lexer-keywords.txt" + {"i32.atomic.store8", TokenType::AtomicStore, Opcode::I32AtomicStore8}, {""}, {""}, -#line 326 "src/lexer-keywords.txt" - {"i64.atomic.rmw16.xchg_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw16XchgU}, -#line 210 "src/lexer-keywords.txt" - {"i32.atomic.rmw16.xchg_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw16XchgU}, - {""}, {""}, {""}, -#line 87 "src/lexer-keywords.txt" +#line 91 "src/lexer-keywords.txt" {"f32x4.ge", TokenType::Compare, Opcode::F32X4Ge}, -#line 536 "src/lexer-keywords.txt" - {"f64.reinterpret/i64", TokenType::Convert, Opcode::F64ReinterpretI64}, -#line 286 "src/lexer-keywords.txt" - {"i32x4.gt_s", TokenType::Compare, Opcode::I32X4GtS}, - {""}, -#line 287 "src/lexer-keywords.txt" - {"i32x4.gt_u", TokenType::Compare, Opcode::I32X4GtU}, - {""}, -#line 506 "src/lexer-keywords.txt" - {"unreachable", TokenType::Unreachable, Opcode::Unreachable}, +#line 352 "src/lexer-keywords.txt" + {"i64.atomic.rmw.xor", TokenType::AtomicRmw, Opcode::I64AtomicRmwXor}, +#line 229 "src/lexer-keywords.txt" + {"i32.atomic.rmw.xor", TokenType::AtomicRmw, Opcode::I32AtomicRmwXor}, + {""}, {""}, {""}, +#line 92 "src/lexer-keywords.txt" + {"f32x4.gt", TokenType::Compare, Opcode::F32X4Gt}, +#line 317 "src/lexer-keywords.txt" + {"i32x4.widen_low_i16x8_u", TokenType::Unary, Opcode::I32X4WidenLowI16X8U}, {""}, -#line 284 "src/lexer-keywords.txt" - {"i32x4.ge_s", TokenType::Compare, Opcode::I32X4GeS}, +#line 28 "src/lexer-keywords.txt" + {"atomic.notify", TokenType::AtomicNotify, Opcode::AtomicNotify}, +#line 557 "src/lexer-keywords.txt" + {"i64.trunc_s:sat/f32", TokenType::Convert, Opcode::I64TruncSatF32S}, +#line 545 "src/lexer-keywords.txt" + {"i32.trunc_s:sat/f32", TokenType::Convert, Opcode::I32TruncSatF32S}, + {""}, {""}, {""}, +#line 471 "src/lexer-keywords.txt" + {"memory.grow", TokenType::MemoryGrow, Opcode::MemoryGrow}, + {""}, {""}, {""}, +#line 166 "src/lexer-keywords.txt" + {"i16x8.all_true", TokenType::Unary, Opcode::I16X8AllTrue}, + {""}, {""}, {""}, +#line 561 "src/lexer-keywords.txt" + {"i64.trunc_u:sat/f32", TokenType::Convert, Opcode::I64TruncSatF32U}, +#line 549 "src/lexer-keywords.txt" + {"i32.trunc_u:sat/f32", TokenType::Convert, Opcode::I32TruncSatF32U}, {""}, -#line 285 "src/lexer-keywords.txt" - {"i32x4.ge_u", TokenType::Compare, Opcode::I32X4GeU}, - {""}, {""}, {""}, {""}, -#line 530 "src/lexer-keywords.txt" - {"f32.reinterpret/i32", TokenType::Convert, Opcode::F32ReinterpretI32}, -#line 135 "src/lexer-keywords.txt" - {"f64x2.extract_lane", TokenType::SimdLaneOp, Opcode::F64X2ExtractLane}, - {""}, {""}, #line 408 "src/lexer-keywords.txt" - {"i64x2.extract_lane", TokenType::SimdLaneOp, Opcode::I64X2ExtractLane}, - {""}, {""}, -#line 504 "src/lexer-keywords.txt" - {"try", TokenType::Try, Opcode::Try}, - {""}, -#line 140 "src/lexer-keywords.txt" - {"f64x2.max", TokenType::Binary, Opcode::F64X2Max}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 404 "src/lexer-keywords.txt" {"i64.trunc_sat_f64_s", TokenType::Convert, Opcode::I64TruncSatF64S}, -#line 274 "src/lexer-keywords.txt" +#line 278 "src/lexer-keywords.txt" {"i32.trunc_sat_f64_s", TokenType::Convert, Opcode::I32TruncSatF64S}, -#line 124 "src/lexer-keywords.txt" - {"f64.promote_f32", TokenType::Convert, Opcode::F64PromoteF32}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, +#line 307 "src/lexer-keywords.txt" + {"i32x4.shr_s", TokenType::Binary, Opcode::I32X4ShrS}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 405 "src/lexer-keywords.txt" +#line 409 "src/lexer-keywords.txt" {"i64.trunc_sat_f64_u", TokenType::Convert, Opcode::I64TruncSatF64U}, -#line 275 "src/lexer-keywords.txt" +#line 279 "src/lexer-keywords.txt" {"i32.trunc_sat_f64_u", TokenType::Convert, Opcode::I32TruncSatF64U}, + {""}, {""}, {""}, +#line 288 "src/lexer-keywords.txt" + {"i32x4.ge_s", TokenType::Compare, Opcode::I32X4GeS}, {""}, {""}, -#line 43 "src/lexer-keywords.txt" - {"elem.drop", TokenType::ElemDrop, Opcode::ElemDrop}, -#line 38 "src/lexer-keywords.txt" - {"data.drop", TokenType::DataDrop, Opcode::DataDrop}, +#line 290 "src/lexer-keywords.txt" + {"i32x4.gt_s", TokenType::Compare, Opcode::I32X4GtS}, {""}, {""}, {""}, {""}, -#line 470 "src/lexer-keywords.txt" - {"memory", TokenType::Memory}, -#line 522 "src/lexer-keywords.txt" - {"v8x16.swizzle", TokenType::Binary, Opcode::V8X16Swizzle}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 122 "src/lexer-keywords.txt" - {"f64.neg", TokenType::Unary, Opcode::F64Neg}, -#line 72 "src/lexer-keywords.txt" - {"f32.neg", TokenType::Unary, Opcode::F32Neg}, - {""}, -#line 452 "src/lexer-keywords.txt" - {"i8x16.sub_saturate_s", TokenType::Binary, Opcode::I8X16SubSaturateS}, +#line 25 "src/lexer-keywords.txt" + {"assert_trap", TokenType::AssertTrap}, {""}, -#line 453 "src/lexer-keywords.txt" - {"i8x16.sub_saturate_u", TokenType::Binary, Opcode::I8X16SubSaturateU}, - {""}, {""}, {""}, {""}, -#line 28 "src/lexer-keywords.txt" - {"binary", TokenType::Bin}, +#line 308 "src/lexer-keywords.txt" + {"i32x4.shr_u", TokenType::Binary, Opcode::I32X4ShrU}, {""}, {""}, -#line 535 "src/lexer-keywords.txt" - {"f64.promote/f32", TokenType::Convert, Opcode::F64PromoteF32}, -#line 425 "src/lexer-keywords.txt" - {"i8x16.all_true", TokenType::Unary, Opcode::I8X16AllTrue}, - {""}, {""}, {""}, -#line 192 "src/lexer-keywords.txt" - {"i16x8.sub_saturate_s", TokenType::Binary, Opcode::I16X8SubSaturateS}, - {""}, -#line 193 "src/lexer-keywords.txt" - {"i16x8.sub_saturate_u", TokenType::Binary, Opcode::I16X8SubSaturateU}, - {""}, -#line 195 "src/lexer-keywords.txt" - {"i16x8", TokenType::I16X8}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 162 "src/lexer-keywords.txt" - {"i16x8.all_true", TokenType::Unary, Opcode::I16X8AllTrue}, -#line 555 "src/lexer-keywords.txt" +#line 289 "src/lexer-keywords.txt" + {"i32x4.ge_u", TokenType::Compare, Opcode::I32X4GeU}, + {""}, {""}, +#line 291 "src/lexer-keywords.txt" + {"i32x4.gt_u", TokenType::Compare, Opcode::I32X4GtU}, + {""}, {""}, +#line 558 "src/lexer-keywords.txt" {"i64.trunc_s:sat/f64", TokenType::Convert, Opcode::I64TruncSatF64S}, -#line 543 "src/lexer-keywords.txt" +#line 546 "src/lexer-keywords.txt" {"i32.trunc_s:sat/f64", TokenType::Convert, Opcode::I32TruncSatF64S}, -#line 559 "src/lexer-keywords.txt" + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, +#line 562 "src/lexer-keywords.txt" {"i64.trunc_u:sat/f64", TokenType::Convert, Opcode::I64TruncSatF64U}, -#line 547 "src/lexer-keywords.txt" +#line 550 "src/lexer-keywords.txt" {"i32.trunc_u:sat/f64", TokenType::Convert, Opcode::I32TruncSatF64U}, + {""}, +#line 456 "src/lexer-keywords.txt" + {"i8x16.sub_saturate_s", TokenType::Binary, Opcode::I8X16SubSaturateS}, {""}, {""}, -#line 145 "src/lexer-keywords.txt" - {"f64x2.replace_lane", TokenType::SimdLaneOp, Opcode::F64X2ReplaceLane}, +#line 102 "src/lexer-keywords.txt" + {"f32x4.sqrt", TokenType::Unary, Opcode::F32X4Sqrt}, +#line 551 "src/lexer-keywords.txt" + {"i32.wrap/i64", TokenType::Convert, Opcode::I32WrapI64}, {""}, {""}, -#line 413 "src/lexer-keywords.txt" - {"i64x2.replace_lane", TokenType::SimdLaneOp, Opcode::I64X2ReplaceLane}, - {""}, {""}, {""}, -#line 554 "src/lexer-keywords.txt" - {"i64.trunc_s:sat/f32", TokenType::Convert, Opcode::I64TruncSatF32S}, -#line 542 "src/lexer-keywords.txt" - {"i32.trunc_s:sat/f32", TokenType::Convert, Opcode::I32TruncSatF32S}, -#line 558 "src/lexer-keywords.txt" - {"i64.trunc_u:sat/f32", TokenType::Convert, Opcode::I64TruncSatF32U}, -#line 546 "src/lexer-keywords.txt" - {"i32.trunc_u:sat/f32", TokenType::Convert, Opcode::I32TruncSatF32U}, +#line 126 "src/lexer-keywords.txt" + {"f64.neg", TokenType::Unary, Opcode::F64Neg}, +#line 76 "src/lexer-keywords.txt" + {"f32.neg", TokenType::Unary, Opcode::F32Neg}, {""}, {""}, {""}, {""}, -#line 277 "src/lexer-keywords.txt" +#line 457 "src/lexer-keywords.txt" + {"i8x16.sub_saturate_u", TokenType::Binary, Opcode::I8X16SubSaturateU}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 426 "src/lexer-keywords.txt" + {"i8x16.add_saturate_s", TokenType::Binary, Opcode::I8X16AddSaturateS}, + {""}, {""}, {""}, +#line 281 "src/lexer-keywords.txt" {"i32.wrap_i64", TokenType::Convert, Opcode::I32WrapI64}, - {""}, {""}, -#line 154 "src/lexer-keywords.txt" - {"global.get", TokenType::GlobalGet, Opcode::GlobalGet}, {""}, {""}, {""}, {""}, -#line 473 "src/lexer-keywords.txt" - {"nan:arithmetic", TokenType::NanArithmetic}, +#line 306 "src/lexer-keywords.txt" + {"i32x4.shl", TokenType::Binary, Opcode::I32X4Shl}, + {""}, {""}, {""}, +#line 427 "src/lexer-keywords.txt" + {"i8x16.add_saturate_u", TokenType::Binary, Opcode::I8X16AddSaturateU}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, +#line 443 "src/lexer-keywords.txt" + {"i8x16.max_s", TokenType::Binary, Opcode::I8X16MaxS}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 196 "src/lexer-keywords.txt" + {"i16x8.sub_saturate_s", TokenType::Binary, Opcode::I16X8SubSaturateS}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 467 "src/lexer-keywords.txt" - {"memory.grow", TokenType::MemoryGrow, Opcode::MemoryGrow}, - {""}, {""}, {""}, {""}, -#line 98 "src/lexer-keywords.txt" - {"f32x4.sqrt", TokenType::Unary, Opcode::F32X4Sqrt}, -#line 312 "src/lexer-keywords.txt" - {"i32x4.widen_low_i16x8_s", TokenType::Unary, Opcode::I32X4WidenLowI16X8S}, - {""}, -#line 313 "src/lexer-keywords.txt" - {"i32x4.widen_low_i16x8_u", TokenType::Unary, Opcode::I32X4WidenLowI16X8U}, +#line 90 "src/lexer-keywords.txt" + {"f32x4.extract_lane", TokenType::SimdLaneOp, Opcode::F32X4ExtractLane}, {""}, {""}, -#line 422 "src/lexer-keywords.txt" - {"i8x16.add_saturate_s", TokenType::Binary, Opcode::I8X16AddSaturateS}, - {""}, -#line 423 "src/lexer-keywords.txt" - {"i8x16.add_saturate_u", TokenType::Binary, Opcode::I8X16AddSaturateU}, - {""}, -#line 494 "src/lexer-keywords.txt" - {"table.copy", TokenType::TableCopy, Opcode::TableCopy}, - {""}, -#line 548 "src/lexer-keywords.txt" - {"i32.wrap/i64", TokenType::Convert, Opcode::I32WrapI64}, - {""}, -#line 111 "src/lexer-keywords.txt" - {"f64.eq", TokenType::Compare, Opcode::F64Eq}, -#line 61 "src/lexer-keywords.txt" - {"f32.eq", TokenType::Compare, Opcode::F32Eq}, +#line 287 "src/lexer-keywords.txt" + {"i32x4.extract_lane", TokenType::SimdLaneOp, Opcode::I32X4ExtractLane}, {""}, -#line 359 "src/lexer-keywords.txt" - {"i64.eq", TokenType::Compare, Opcode::I64Eq}, -#line 235 "src/lexer-keywords.txt" - {"i32.eq", TokenType::Compare, Opcode::I32Eq}, +#line 197 "src/lexer-keywords.txt" + {"i16x8.sub_saturate_u", TokenType::Binary, Opcode::I16X8SubSaturateU}, + {""}, {""}, {""}, {""}, {""}, +#line 444 "src/lexer-keywords.txt" + {"i8x16.max_u", TokenType::Binary, Opcode::I8X16MaxU}, {""}, {""}, -#line 159 "src/lexer-keywords.txt" +#line 163 "src/lexer-keywords.txt" {"i16x8.add_saturate_s", TokenType::Binary, Opcode::I16X8AddSaturateS}, - {""}, -#line 160 "src/lexer-keywords.txt" - {"i16x8.add_saturate_u", TokenType::Binary, Opcode::I16X8AddSaturateU}, -#line 348 "src/lexer-keywords.txt" - {"i64.atomic.rmw.xor", TokenType::AtomicRmw, Opcode::I64AtomicRmwXor}, -#line 225 "src/lexer-keywords.txt" - {"i32.atomic.rmw.xor", TokenType::AtomicRmw, Opcode::I32AtomicRmwXor}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, -#line 143 "src/lexer-keywords.txt" - {"f64x2.neg", TokenType::Unary, Opcode::F64X2Neg}, - {""}, {""}, -#line 412 "src/lexer-keywords.txt" - {"i64x2.neg", TokenType::Unary, Opcode::I64X2Neg}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, -#line 351 "src/lexer-keywords.txt" - {"i64.atomic.store8", TokenType::AtomicStore, Opcode::I64AtomicStore8}, -#line 227 "src/lexer-keywords.txt" - {"i32.atomic.store8", TokenType::AtomicStore, Opcode::I32AtomicStore8}, -#line 518 "src/lexer-keywords.txt" - {"v32x4.load_splat", TokenType::Load, Opcode::V32X4LoadSplat}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, +#line 164 "src/lexer-keywords.txt" + {"i16x8.add_saturate_u", TokenType::Binary, Opcode::I16X8AddSaturateU}, + {""}, {""}, {""}, +#line 294 "src/lexer-keywords.txt" + {"i32x4.load16x4_s", TokenType::Load, Opcode::I32X4Load16X4S}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 384 "src/lexer-keywords.txt" +#line 182 "src/lexer-keywords.txt" + {"i16x8.max_s", TokenType::Binary, Opcode::I16X8MaxS}, + {""}, {""}, {""}, {""}, +#line 430 "src/lexer-keywords.txt" + {"i8x16.any_true", TokenType::Unary, Opcode::I8X16AnyTrue}, + {""}, {""}, {""}, +#line 95 "src/lexer-keywords.txt" + {"f32x4.max", TokenType::Binary, Opcode::F32X4Max}, + {""}, +#line 388 "src/lexer-keywords.txt" {"i64.popcnt", TokenType::Unary, Opcode::I64Popcnt}, -#line 255 "src/lexer-keywords.txt" +#line 259 "src/lexer-keywords.txt" {"i32.popcnt", TokenType::Unary, Opcode::I32Popcnt}, - {""}, {""}, {""}, -#line 281 "src/lexer-keywords.txt" - {"i32x4.any_true", TokenType::Unary, Opcode::I32X4AnyTrue}, {""}, {""}, {""}, {""}, {""}, -#line 303 "src/lexer-keywords.txt" - {"i32x4.shr_s", TokenType::Binary, Opcode::I32X4ShrS}, -#line 302 "src/lexer-keywords.txt" - {"i32x4.shl", TokenType::Binary, Opcode::I32X4Shl}, - {""}, {""}, -#line 304 "src/lexer-keywords.txt" - {"i32x4.shr_u", TokenType::Binary, Opcode::I32X4ShrU}, -#line 451 "src/lexer-keywords.txt" +#line 295 "src/lexer-keywords.txt" + {"i32x4.load16x4_u", TokenType::Load, Opcode::I32X4Load16X4U}, +#line 86 "src/lexer-keywords.txt" + {"f32x4.convert_i32x4_s", TokenType::Unary, Opcode::F32X4ConvertI32X4S}, +#line 455 "src/lexer-keywords.txt" {"i8x16.splat", TokenType::Unary, Opcode::I8X16Splat}, - {""}, {""}, {""}, {""}, {""}, -#line 439 "src/lexer-keywords.txt" - {"i8x16.max_s", TokenType::Binary, Opcode::I8X16MaxS}, - {""}, {""}, {""}, -#line 440 "src/lexer-keywords.txt" - {"i8x16.max_u", TokenType::Binary, Opcode::I8X16MaxU}, - {""}, {""}, {""}, {""}, -#line 191 "src/lexer-keywords.txt" - {"i16x8.splat", TokenType::Unary, Opcode::I16X8Splat}, - {""}, {""}, {""}, {""}, {""}, -#line 178 "src/lexer-keywords.txt" - {"i16x8.max_s", TokenType::Binary, Opcode::I16X8MaxS}, {""}, {""}, {""}, -#line 179 "src/lexer-keywords.txt" +#line 469 "src/lexer-keywords.txt" + {"memory.copy", TokenType::MemoryCopy, Opcode::MemoryCopy}, +#line 158 "src/lexer-keywords.txt" + {"global.get", TokenType::GlobalGet, Opcode::GlobalGet}, +#line 183 "src/lexer-keywords.txt" {"i16x8.max_u", TokenType::Binary, Opcode::I16X8MaxU}, {""}, -#line 433 "src/lexer-keywords.txt" - {"i8x16.gt_s", TokenType::Compare, Opcode::I8X16GtS}, +#line 147 "src/lexer-keywords.txt" + {"f64x2.neg", TokenType::Unary, Opcode::F64X2Neg}, + {""}, {""}, +#line 416 "src/lexer-keywords.txt" + {"i64x2.neg", TokenType::Unary, Opcode::I64X2Neg}, +#line 87 "src/lexer-keywords.txt" + {"f32x4.convert_i32x4_u", TokenType::Unary, Opcode::F32X4ConvertI32X4U}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 344 "src/lexer-keywords.txt" + {"i64.atomic.rmw8.xchg_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8XchgU}, +#line 221 "src/lexer-keywords.txt" + {"i32.atomic.rmw8.xchg_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8XchgU}, + {""}, {""}, +#line 542 "src/lexer-keywords.txt" + {"i32.reinterpret/f32", TokenType::Convert, Opcode::I32ReinterpretF32}, + {""}, {""}, +#line 115 "src/lexer-keywords.txt" + {"f64.eq", TokenType::Compare, Opcode::F64Eq}, +#line 65 "src/lexer-keywords.txt" + {"f32.eq", TokenType::Compare, Opcode::F32Eq}, {""}, -#line 434 "src/lexer-keywords.txt" - {"i8x16.gt_u", TokenType::Compare, Opcode::I8X16GtU}, +#line 363 "src/lexer-keywords.txt" + {"i64.eq", TokenType::Compare, Opcode::I64Eq}, +#line 239 "src/lexer-keywords.txt" + {"i32.eq", TokenType::Compare, Opcode::I32Eq}, + {""}, {""}, {""}, {""}, {""}, +#line 100 "src/lexer-keywords.txt" + {"f32x4.replace_lane", TokenType::SimdLaneOp, Opcode::F32X4ReplaceLane}, +#line 167 "src/lexer-keywords.txt" + {"i16x8.any_true", TokenType::Unary, Opcode::I16X8AnyTrue}, + {""}, +#line 305 "src/lexer-keywords.txt" + {"i32x4.replace_lane", TokenType::SimdLaneOp, Opcode::I32X4ReplaceLane}, + {""}, {""}, {""}, {""}, {""}, +#line 260 "src/lexer-keywords.txt" + {"i32.reinterpret_f32", TokenType::Convert, Opcode::I32ReinterpretF32}, + {""}, {""}, +#line 453 "src/lexer-keywords.txt" + {"i8x16.shr_s", TokenType::Binary, Opcode::I8X16ShrS}, {""}, {""}, {""}, -#line 431 "src/lexer-keywords.txt" +#line 195 "src/lexer-keywords.txt" + {"i16x8.splat", TokenType::Unary, Opcode::I16X8Splat}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, +#line 435 "src/lexer-keywords.txt" {"i8x16.ge_s", TokenType::Compare, Opcode::I8X16GeS}, {""}, -#line 432 "src/lexer-keywords.txt" - {"i8x16.ge_u", TokenType::Compare, Opcode::I8X16GeU}, +#line 521 "src/lexer-keywords.txt" + {"v32x4.load_splat", TokenType::Load, Opcode::V32X4LoadSplat}, +#line 437 "src/lexer-keywords.txt" + {"i8x16.gt_s", TokenType::Compare, Opcode::I8X16GtS}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 170 "src/lexer-keywords.txt" - {"i16x8.gt_s", TokenType::Compare, Opcode::I16X8GtS}, - {""}, -#line 171 "src/lexer-keywords.txt" - {"i16x8.gt_u", TokenType::Compare, Opcode::I16X8GtU}, - {""}, {""}, {""}, -#line 168 "src/lexer-keywords.txt" - {"i16x8.ge_s", TokenType::Compare, Opcode::I16X8GeS}, -#line 86 "src/lexer-keywords.txt" - {"f32x4.extract_lane", TokenType::SimdLaneOp, Opcode::F32X4ExtractLane}, -#line 169 "src/lexer-keywords.txt" - {"i16x8.ge_u", TokenType::Compare, Opcode::I16X8GeU}, - {""}, -#line 283 "src/lexer-keywords.txt" - {"i32x4.extract_lane", TokenType::SimdLaneOp, Opcode::I32X4ExtractLane}, - {""}, {""}, {""}, {""}, -#line 91 "src/lexer-keywords.txt" - {"f32x4.max", TokenType::Binary, Opcode::F32X4Max}, +#line 454 "src/lexer-keywords.txt" + {"i8x16.shr_u", TokenType::Binary, Opcode::I8X16ShrU}, {""}, {""}, -#line 385 "src/lexer-keywords.txt" - {"i64.reinterpret_f64", TokenType::Convert, Opcode::I64ReinterpretF64}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, -#line 256 "src/lexer-keywords.txt" - {"i32.reinterpret_f32", TokenType::Convert, Opcode::I32ReinterpretF32}, +#line 436 "src/lexer-keywords.txt" + {"i8x16.ge_u", TokenType::Compare, Opcode::I8X16GeU}, {""}, {""}, -#line 134 "src/lexer-keywords.txt" - {"f64x2.eq", TokenType::Compare, Opcode::F64X2Eq}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 551 "src/lexer-keywords.txt" - {"i64.reinterpret/f64", TokenType::Convert, Opcode::I64ReinterpretF64}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, -#line 539 "src/lexer-keywords.txt" - {"i32.reinterpret/f32", TokenType::Convert, Opcode::I32ReinterpretF32}, -#line 290 "src/lexer-keywords.txt" - {"i32x4.load16x4_s", TokenType::Load, Opcode::I32X4Load16X4S}, - {""}, {""}, {""}, -#line 291 "src/lexer-keywords.txt" - {"i32x4.load16x4_u", TokenType::Load, Opcode::I32X4Load16X4U}, +#line 438 "src/lexer-keywords.txt" + {"i8x16.gt_u", TokenType::Compare, Opcode::I8X16GtU}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 537 "src/lexer-keywords.txt" - {"get_global", TokenType::GlobalGet, Opcode::GlobalGet}, +#line 554 "src/lexer-keywords.txt" + {"i64.reinterpret/f64", TokenType::Convert, Opcode::I64ReinterpretF64}, {""}, -#line 96 "src/lexer-keywords.txt" - {"f32x4.replace_lane", TokenType::SimdLaneOp, Opcode::F32X4ReplaceLane}, - {""}, {""}, -#line 301 "src/lexer-keywords.txt" - {"i32x4.replace_lane", TokenType::SimdLaneOp, Opcode::I32X4ReplaceLane}, +#line 161 "src/lexer-keywords.txt" + {"grow_memory", TokenType::MemoryGrow, Opcode::MemoryGrow}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 427 "src/lexer-keywords.txt" - {"i8x16.avgr_u", TokenType::Binary, Opcode::I8X16AvgrU}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, -#line 164 "src/lexer-keywords.txt" - {"i16x8.avgr_u", TokenType::Binary, Opcode::I16X8AvgrU}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 193 "src/lexer-keywords.txt" + {"i16x8.shr_s", TokenType::Binary, Opcode::I16X8ShrS}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 389 "src/lexer-keywords.txt" + {"i64.reinterpret_f64", TokenType::Convert, Opcode::I64ReinterpretF64}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 172 "src/lexer-keywords.txt" + {"i16x8.ge_s", TokenType::Compare, Opcode::I16X8GeS}, + {""}, +#line 540 "src/lexer-keywords.txt" + {"get_global", TokenType::GlobalGet, Opcode::GlobalGet}, +#line 174 "src/lexer-keywords.txt" + {"i16x8.gt_s", TokenType::Compare, Opcode::I16X8GtS}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 37 "src/lexer-keywords.txt" - {"current_memory", TokenType::MemorySize, Opcode::MemorySize}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 194 "src/lexer-keywords.txt" + {"i16x8.shr_u", TokenType::Binary, Opcode::I16X8ShrU}, {""}, -#line 94 "src/lexer-keywords.txt" - {"f32x4.neg", TokenType::Unary, Opcode::F32X4Neg}, +#line 452 "src/lexer-keywords.txt" + {"i8x16.shl", TokenType::Binary, Opcode::I8X16Shl}, +#line 173 "src/lexer-keywords.txt" + {"i16x8.ge_u", TokenType::Compare, Opcode::I16X8GeU}, {""}, {""}, -#line 299 "src/lexer-keywords.txt" - {"i32x4.neg", TokenType::Unary, Opcode::I32X4Neg}, +#line 175 "src/lexer-keywords.txt" + {"i16x8.gt_u", TokenType::Compare, Opcode::I16X8GtU}, {""}, {""}, {""}, {""}, -#line 308 "src/lexer-keywords.txt" - {"i32x4.trunc_sat_f32x4_s", TokenType::Unary, Opcode::I32X4TruncSatF32X4S}, - {""}, -#line 309 "src/lexer-keywords.txt" - {"i32x4.trunc_sat_f32x4_u", TokenType::Unary, Opcode::I32X4TruncSatF32X4U}, -#line 520 "src/lexer-keywords.txt" - {"v8x16.load_splat", TokenType::Load, Opcode::V8X16LoadSplat}, +#line 138 "src/lexer-keywords.txt" + {"f64x2.eq", TokenType::Compare, Opcode::F64X2Eq}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, -#line 517 "src/lexer-keywords.txt" - {"v16x8.load_splat", TokenType::Load, Opcode::V16X8LoadSplat}, - {""}, {""}, {""}, {""}, {""}, {""}, -#line 426 "src/lexer-keywords.txt" - {"i8x16.any_true", TokenType::Unary, Opcode::I8X16AnyTrue}, - {""}, {""}, {""}, {""}, {""}, -#line 449 "src/lexer-keywords.txt" - {"i8x16.shr_s", TokenType::Binary, Opcode::I8X16ShrS}, -#line 448 "src/lexer-keywords.txt" - {"i8x16.shl", TokenType::Binary, Opcode::I8X16Shl}, - {""}, {""}, -#line 450 "src/lexer-keywords.txt" - {"i8x16.shr_u", TokenType::Binary, Opcode::I8X16ShrU}, {""}, {""}, {""}, {""}, -#line 163 "src/lexer-keywords.txt" - {"i16x8.any_true", TokenType::Unary, Opcode::I16X8AnyTrue}, - {""}, {""}, {""}, {""}, {""}, -#line 189 "src/lexer-keywords.txt" - {"i16x8.shr_s", TokenType::Binary, Opcode::I16X8ShrS}, +#line 187 "src/lexer-keywords.txt" + {"i16x8.narrow_i32x4_s", TokenType::Binary, Opcode::I16X8NarrowI32X4S}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, #line 188 "src/lexer-keywords.txt" + {"i16x8.narrow_i32x4_u", TokenType::Binary, Opcode::I16X8NarrowI32X4U}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 192 "src/lexer-keywords.txt" {"i16x8.shl", TokenType::Binary, Opcode::I16X8Shl}, - {""}, {""}, -#line 190 "src/lexer-keywords.txt" - {"i16x8.shr_u", TokenType::Binary, Opcode::I16X8ShrU}, - {""}, {""}, -#line 27 "src/lexer-keywords.txt" - {"atomic.notify", TokenType::AtomicNotify, Opcode::AtomicNotify}, - {""}, {""}, {""}, -#line 82 "src/lexer-keywords.txt" - {"f32x4.convert_i32x4_s", TokenType::Unary, Opcode::F32X4ConvertI32X4S}, - {""}, -#line 83 "src/lexer-keywords.txt" - {"f32x4.convert_i32x4_u", TokenType::Unary, Opcode::F32X4ConvertI32X4U}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 109 "src/lexer-keywords.txt" +#line 113 "src/lexer-keywords.txt" {"f64.copysign", TokenType::Binary, Opcode::F64Copysign}, -#line 58 "src/lexer-keywords.txt" +#line 62 "src/lexer-keywords.txt" {"f32.copysign", TokenType::Binary, Opcode::F32Copysign}, - {""}, {""}, {""}, {""}, {""}, -#line 521 "src/lexer-keywords.txt" - {"v8x16.shuffle", TokenType::SimdShuffleOp, Opcode::V8X16Shuffle}, - {""}, {""}, {""}, {""}, {""}, -#line 340 "src/lexer-keywords.txt" - {"i64.atomic.rmw8.xchg_u", TokenType::AtomicRmw, Opcode::I64AtomicRmw8XchgU}, -#line 217 "src/lexer-keywords.txt" - {"i32.atomic.rmw8.xchg_u", TokenType::AtomicRmw, Opcode::I32AtomicRmw8XchgU}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 429 "src/lexer-keywords.txt" - {"i8x16.extract_lane_s", TokenType::SimdLaneOp, Opcode::I8X16ExtractLaneS}, - {""}, -#line 430 "src/lexer-keywords.txt" - {"i8x16.extract_lane_u", TokenType::SimdLaneOp, Opcode::I8X16ExtractLaneU}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, -#line 166 "src/lexer-keywords.txt" - {"i16x8.extract_lane_s", TokenType::SimdLaneOp, Opcode::I16X8ExtractLaneS}, - {""}, -#line 167 "src/lexer-keywords.txt" - {"i16x8.extract_lane_u", TokenType::SimdLaneOp, Opcode::I16X8ExtractLaneU}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, -#line 85 "src/lexer-keywords.txt" - {"f32x4.eq", TokenType::Compare, Opcode::F32X4Eq}, {""}, {""}, -#line 282 "src/lexer-keywords.txt" - {"i32x4.eq", TokenType::Compare, Opcode::I32X4Eq}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 183 "src/lexer-keywords.txt" - {"i16x8.narrow_i32x4_s", TokenType::Binary, Opcode::I16X8NarrowI32X4S}, +#line 524 "src/lexer-keywords.txt" + {"v8x16.shuffle", TokenType::SimdShuffleOp, Opcode::V8X16Shuffle}, {""}, -#line 184 "src/lexer-keywords.txt" - {"i16x8.narrow_i32x4_u", TokenType::Binary, Opcode::I16X8NarrowI32X4U}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 344 "src/lexer-keywords.txt" - {"i64.atomic.rmw.cmpxchg", TokenType::AtomicRmwCmpxchg, Opcode::I64AtomicRmwCmpxchg}, -#line 221 "src/lexer-keywords.txt" - {"i32.atomic.rmw.cmpxchg", TokenType::AtomicRmwCmpxchg, Opcode::I32AtomicRmwCmpxchg}, +#line 433 "src/lexer-keywords.txt" + {"i8x16.extract_lane_s", TokenType::SimdLaneOp, Opcode::I8X16ExtractLaneS}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 312 "src/lexer-keywords.txt" + {"i32x4.trunc_sat_f32x4_s", TokenType::Unary, Opcode::I32X4TruncSatF32X4S}, {""}, {""}, {""}, {""}, -#line 447 "src/lexer-keywords.txt" - {"i8x16.replace_lane", TokenType::SimdLaneOp, Opcode::I8X16ReplaceLane}, +#line 434 "src/lexer-keywords.txt" + {"i8x16.extract_lane_u", TokenType::SimdLaneOp, Opcode::I8X16ExtractLaneU}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 313 "src/lexer-keywords.txt" + {"i32x4.trunc_sat_f32x4_u", TokenType::Unary, Opcode::I32X4TruncSatF32X4U}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, -#line 187 "src/lexer-keywords.txt" - {"i16x8.replace_lane", TokenType::SimdLaneOp, Opcode::I16X8ReplaceLane}, -#line 157 "src/lexer-keywords.txt" - {"grow_memory", TokenType::MemoryGrow, Opcode::MemoryGrow}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, +#line 451 "src/lexer-keywords.txt" + {"i8x16.replace_lane", TokenType::SimdLaneOp, Opcode::I8X16ReplaceLane}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, +#line 170 "src/lexer-keywords.txt" + {"i16x8.extract_lane_s", TokenType::SimdLaneOp, Opcode::I16X8ExtractLaneS}, +#line 431 "src/lexer-keywords.txt" + {"i8x16.avgr_u", TokenType::Binary, Opcode::I8X16AvgrU}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, +#line 171 "src/lexer-keywords.txt" + {"i16x8.extract_lane_u", TokenType::SimdLaneOp, Opcode::I16X8ExtractLaneU}, + {""}, {""}, +#line 523 "src/lexer-keywords.txt" + {"v8x16.load_splat", TokenType::Load, Opcode::V8X16LoadSplat}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 98 "src/lexer-keywords.txt" + {"f32x4.neg", TokenType::Unary, Opcode::F32X4Neg}, + {""}, {""}, +#line 303 "src/lexer-keywords.txt" + {"i32x4.neg", TokenType::Unary, Opcode::I32X4Neg}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 191 "src/lexer-keywords.txt" + {"i16x8.replace_lane", TokenType::SimdLaneOp, Opcode::I16X8ReplaceLane}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, +#line 168 "src/lexer-keywords.txt" + {"i16x8.avgr_u", TokenType::Binary, Opcode::I16X8AvgrU}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, -#line 445 "src/lexer-keywords.txt" - {"i8x16.neg", TokenType::Unary, Opcode::I8X16Neg}, {""}, {""}, {""}, {""}, {""}, -#line 465 "src/lexer-keywords.txt" - {"memory.copy", TokenType::MemoryCopy, Opcode::MemoryCopy}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 185 "src/lexer-keywords.txt" - {"i16x8.neg", TokenType::Unary, Opcode::I16X8Neg}, +#line 520 "src/lexer-keywords.txt" + {"v16x8.load_splat", TokenType::Load, Opcode::V16X8LoadSplat}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 198 "src/lexer-keywords.txt" - {"i16x8.widen_low_i8x16_s", TokenType::Unary, Opcode::I16X8WidenLowI8X16S}, - {""}, -#line 199 "src/lexer-keywords.txt" - {"i16x8.widen_low_i8x16_u", TokenType::Unary, Opcode::I16X8WidenLowI8X16U}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 348 "src/lexer-keywords.txt" + {"i64.atomic.rmw.cmpxchg", TokenType::AtomicRmwCmpxchg, Opcode::I64AtomicRmwCmpxchg}, +#line 225 "src/lexer-keywords.txt" + {"i32.atomic.rmw.cmpxchg", TokenType::AtomicRmwCmpxchg, Opcode::I32AtomicRmwCmpxchg}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, +#line 202 "src/lexer-keywords.txt" + {"i16x8.widen_low_i8x16_s", TokenType::Unary, Opcode::I16X8WidenLowI8X16S}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, +#line 203 "src/lexer-keywords.txt" + {"i16x8.widen_low_i8x16_u", TokenType::Unary, Opcode::I16X8WidenLowI8X16U}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, -#line 428 "src/lexer-keywords.txt" - {"i8x16.eq", TokenType::Compare, Opcode::I8X16Eq}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, -#line 165 "src/lexer-keywords.txt" - {"i16x8.eq", TokenType::Compare, Opcode::I16X8Eq}, + {""}, {""}, {""}, +#line 89 "src/lexer-keywords.txt" + {"f32x4.eq", TokenType::Compare, Opcode::F32X4Eq}, + {""}, {""}, +#line 286 "src/lexer-keywords.txt" + {"i32x4.eq", TokenType::Compare, Opcode::I32X4Eq}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 174 "src/lexer-keywords.txt" - {"i16x8.load8x8_s", TokenType::Load, Opcode::I16X8Load8X8S}, - {""}, -#line 175 "src/lexer-keywords.txt" - {"i16x8.load8x8_u", TokenType::Load, Opcode::I16X8Load8X8U}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 447 "src/lexer-keywords.txt" + {"i8x16.narrow_i16x8_s", TokenType::Binary, Opcode::I8X16NarrowI16X8S}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, +#line 448 "src/lexer-keywords.txt" + {"i8x16.narrow_i16x8_u", TokenType::Binary, Opcode::I8X16NarrowI16X8U}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, +#line 314 "src/lexer-keywords.txt" + {"i32x4.widen_high_i16x8_s", TokenType::Unary, Opcode::I32X4WidenHighI16X8S}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, +#line 315 "src/lexer-keywords.txt" + {"i32x4.widen_high_i16x8_u", TokenType::Unary, Opcode::I32X4WidenHighI16X8U}, +#line 449 "src/lexer-keywords.txt" + {"i8x16.neg", TokenType::Unary, Opcode::I8X16Neg}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 443 "src/lexer-keywords.txt" - {"i8x16.narrow_i16x8_s", TokenType::Binary, Opcode::I8X16NarrowI16X8S}, - {""}, -#line 444 "src/lexer-keywords.txt" - {"i8x16.narrow_i16x8_u", TokenType::Binary, Opcode::I8X16NarrowI16X8U}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 178 "src/lexer-keywords.txt" + {"i16x8.load8x8_s", TokenType::Load, Opcode::I16X8Load8X8S}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, -#line 310 "src/lexer-keywords.txt" - {"i32x4.widen_high_i16x8_s", TokenType::Unary, Opcode::I32X4WidenHighI16X8S}, - {""}, -#line 311 "src/lexer-keywords.txt" - {"i32x4.widen_high_i16x8_u", TokenType::Unary, Opcode::I32X4WidenHighI16X8U}, + {""}, {""}, {""}, +#line 179 "src/lexer-keywords.txt" + {"i16x8.load8x8_u", TokenType::Load, Opcode::I16X8Load8X8U}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, +#line 189 "src/lexer-keywords.txt" + {"i16x8.neg", TokenType::Unary, Opcode::I16X8Neg}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -1592,16 +1579,17 @@ Perfect_Hash::InWordSet (const char *str, size_t len) {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, +#line 432 "src/lexer-keywords.txt" + {"i8x16.eq", TokenType::Compare, Opcode::I8X16Eq}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, - {""}, {""}, {""}, -#line 347 "src/lexer-keywords.txt" - {"i64.atomic.rmw.xchg", TokenType::AtomicRmw, Opcode::I64AtomicRmwXchg}, -#line 224 "src/lexer-keywords.txt" - {"i32.atomic.rmw.xchg", TokenType::AtomicRmw, Opcode::I32AtomicRmwXchg}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 169 "src/lexer-keywords.txt" + {"i16x8.eq", TokenType::Compare, Opcode::I16X8Eq}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -1621,6 +1609,11 @@ Perfect_Hash::InWordSet (const char *str, size_t len) {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, {""}, {""}, {""}, {""}, +#line 351 "src/lexer-keywords.txt" + {"i64.atomic.rmw.xchg", TokenType::AtomicRmw, Opcode::I64AtomicRmwXchg}, +#line 228 "src/lexer-keywords.txt" + {"i32.atomic.rmw.xchg", TokenType::AtomicRmw, Opcode::I32AtomicRmwXchg}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, @@ -1631,10 +1624,11 @@ Perfect_Hash::InWordSet (const char *str, size_t len) {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, -#line 196 "src/lexer-keywords.txt" +#line 200 "src/lexer-keywords.txt" {"i16x8.widen_high_i8x16_s", TokenType::Unary, Opcode::I16X8WidenHighI8X16S}, - {""}, -#line 197 "src/lexer-keywords.txt" + {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, + {""}, {""}, {""}, +#line 201 "src/lexer-keywords.txt" {"i16x8.widen_high_i8x16_u", TokenType::Unary, Opcode::I16X8WidenHighI8X16U} }; diff --git a/src/shared-validator.cc b/src/shared-validator.cc index e84ccf12..f4a7303e 100644 --- a/src/shared-validator.cc +++ b/src/shared-validator.cc @@ -119,7 +119,7 @@ Result SharedValidator::OnTable(const Location& loc, if (limits.is_shared) { result |= PrintError(loc, "tables may not be shared"); } - if (elem_type != Type::Funcref && + if (elem_type != Type::FuncRef && !options_.features.reference_types_enabled()) { result |= PrintError(loc, "tables must have funcref type"); } @@ -209,8 +209,9 @@ Result SharedValidator::OnGlobalInitExpr_GlobalGet(const Location& loc, return result; } -Result SharedValidator::OnGlobalInitExpr_RefNull(const Location& loc) { - return CheckType(loc, Type::Nullref, globals_.back().type, +Result SharedValidator::OnGlobalInitExpr_RefNull(const Location& loc, + Type type) { + return CheckType(loc, type, globals_.back().type, "global initializer expression"); } @@ -219,7 +220,7 @@ Result SharedValidator::OnGlobalInitExpr_RefFunc(const Location& loc, Result result = Result::Ok; result |= CheckFuncIndex(func_var); init_expr_funcs_.push_back(func_var); - result |= CheckType(loc, Type::Funcref, globals_.back().type, + result |= CheckType(loc, Type::FuncRef, globals_.back().type, "global initializer expression"); return result; } @@ -335,8 +336,9 @@ Result SharedValidator::OnElemSegmentInitExpr_Other(const Location& loc) { "global.get."); } -Result SharedValidator::OnElemSegmentElemExpr_RefNull(const Location& loc) { - return Result::Ok; +Result SharedValidator::OnElemSegmentElemExpr_RefNull(const Location& loc, + Type type) { + return CheckType(loc, type, elems_.back().element, "elem expression"); } Result SharedValidator::OnElemSegmentElemExpr_RefFunc(const Location& loc, @@ -966,17 +968,17 @@ Result SharedValidator::OnRefFunc(const Location& loc, Var func_var) { return result; } -Result SharedValidator::OnRefIsNull(const Location& loc) { +Result SharedValidator::OnRefIsNull(const Location& loc, Type type) { Result result = Result::Ok; expr_loc_ = &loc; - result |= typechecker_.OnRefIsNullExpr(); + result |= typechecker_.OnRefIsNullExpr(type); return result; } -Result SharedValidator::OnRefNull(const Location& loc) { +Result SharedValidator::OnRefNull(const Location& loc, Type type) { Result result = Result::Ok; expr_loc_ = &loc; - result |= typechecker_.OnRefNullExpr(); + result |= typechecker_.OnRefNullExpr(type); return result; } diff --git a/src/shared-validator.h b/src/shared-validator.h index 71032e16..dadb0930 100644 --- a/src/shared-validator.h +++ b/src/shared-validator.h @@ -76,7 +76,7 @@ class SharedValidator { Result OnGlobal(const Location&, Type type, bool mutable_); Result OnGlobalInitExpr_Const(const Location&, Type); Result OnGlobalInitExpr_GlobalGet(const Location&, Var global_var); - Result OnGlobalInitExpr_RefNull(const Location&); + Result OnGlobalInitExpr_RefNull(const Location&, Type type); Result OnGlobalInitExpr_RefFunc(const Location&, Var func_var); Result OnGlobalInitExpr_Other(const Location&); Result OnEvent(const Location&, Var sig_var); @@ -93,7 +93,7 @@ class SharedValidator { Result OnElemSegmentInitExpr_Const(const Location&, Type); Result OnElemSegmentInitExpr_GlobalGet(const Location&, Var global_var); Result OnElemSegmentInitExpr_Other(const Location&); - Result OnElemSegmentElemExpr_RefNull(const Location&); + Result OnElemSegmentElemExpr_RefNull(const Location&, Type type); Result OnElemSegmentElemExpr_RefFunc(const Location&, Var func_var); Result OnElemSegmentElemExpr_Other(const Location&); @@ -150,8 +150,8 @@ class SharedValidator { Result OnMemorySize(const Location&); Result OnNop(const Location&); Result OnRefFunc(const Location&, Var func_var); - Result OnRefIsNull(const Location&); - Result OnRefNull(const Location&); + Result OnRefIsNull(const Location&, Type type); + Result OnRefNull(const Location&, Type type); Result OnRethrow(const Location&); Result OnReturnCall(const Location&, Var func_var); Result OnReturnCallIndirect(const Location&, Var sig_var, Var table_var); diff --git a/src/test-interp.cc b/src/test-interp.cc index 983aae5f..737f440c 100644 --- a/src/test-interp.cc +++ b/src/test-interp.cc @@ -575,7 +575,7 @@ TEST_F(InterpGCTest, Collect_Basic) { } TEST_F(InterpGCTest, Collect_GlobalCycle) { - auto gt = GlobalType{ValueType::Anyref, Mutability::Var}; + auto gt = GlobalType{ValueType::ExternRef, Mutability::Var}; auto g1 = Global::New(store_, gt, Value::Make(Ref::Null)); auto g2 = Global::New(store_, gt, Value::Make(g1->self())); g1->Set(store_, g2->self()); @@ -593,7 +593,7 @@ TEST_F(InterpGCTest, Collect_GlobalCycle) { } TEST_F(InterpGCTest, Collect_TableCycle) { - auto tt = TableType{ValueType::Anyref, Limits{2}}; + auto tt = TableType{ValueType::ExternRef, Limits{2}}; auto t1 = Table::New(store_, tt); auto t2 = Table::New(store_, tt); auto t3 = Table::New(store_, tt); @@ -645,7 +645,7 @@ TEST_F(InterpGCTest, Collect_InstanceImport) { auto f = HostFunc::New(store_, FuncType{{}, {}}, [](Thread& thread, const Values&, Values&, Trap::Ptr*) -> Result { return Result::Ok; }); - auto t = Table::New(store_, TableType{ValueType::Funcref, Limits{0}}); + auto t = Table::New(store_, TableType{ValueType::FuncRef, Limits{0}}); auto m = Memory::New(store_, MemoryType{Limits{0}}); auto g = Global::New(store_, GlobalType{ValueType::I32, Mutability::Const}, Value::Make(5)); diff --git a/src/token.cc b/src/token.cc index f5aef786..657d37be 100644 --- a/src/token.cc +++ b/src/token.cc @@ -79,6 +79,8 @@ std::string Token::to_string() const { return opcode_.GetName(); } else if (HasText()) { return text_.to_string(); + } else if (IsTokenTypeRefKind(token_type_)) { + return type_.GetRefKindName(); } else { assert(HasType()); return type_.GetName(); diff --git a/src/token.def b/src/token.def index 26177787..23d5d796 100644 --- a/src/token.def +++ b/src/token.def @@ -37,7 +37,6 @@ WABT_TOKEN(Eof, "EOF") WABT_TOKEN(Event, "event") WABT_TOKEN(Export, "export") WABT_TOKEN(Field, "field") -WABT_TOKEN(Func, "func") WABT_TOKEN(Get, "get") WABT_TOKEN(Global, "global") WABT_TOKEN(Import, "import") @@ -116,10 +115,10 @@ WABT_TOKEN(MemoryGrow, "memory.grow") WABT_TOKEN(MemoryInit, "memory.init") WABT_TOKEN(MemorySize, "memory.size") WABT_TOKEN(Nop, "nop") +WABT_TOKEN(RefExtern, "ref.extern") WABT_TOKEN(RefFunc, "ref.func") WABT_TOKEN(RefIsNull, "ref.is_null") WABT_TOKEN(RefNull, "ref.null") -WABT_TOKEN(RefHost, "ref.host") WABT_TOKEN(Rethrow, "rethrow") WABT_TOKEN(ReturnCallIndirect, "return_call_indirect") WABT_TOKEN(ReturnCall, "return_call") @@ -158,3 +157,10 @@ WABT_TOKEN_LAST(String, Var) WABT_TOKEN(ValueType, "VALUETYPE") WABT_TOKEN_FIRST(Type, ValueType) WABT_TOKEN_LAST(Type, ValueType) + +/* Tokens with Type data, but are reference kinds. */ +WABT_TOKEN(Func, "func") +WABT_TOKEN(Extern, "extern") +WABT_TOKEN(Exn, "exn") +WABT_TOKEN_FIRST(RefKind, Func) +WABT_TOKEN_LAST(RefKind, Exn) diff --git a/src/token.h b/src/token.h index 8a3b1f00..719e1aee 100644 --- a/src/token.h +++ b/src/token.h @@ -41,7 +41,7 @@ enum class TokenType { #undef WABT_TOKEN_LAST First = First_Bare, - Last = Last_Type, + Last = Last_RefKind, }; const char* GetTokenTypeName(TokenType); @@ -70,6 +70,11 @@ inline bool IsTokenTypeLiteral(TokenType token_type) { token_type <= TokenType::Last_Literal; } +inline bool IsTokenTypeRefKind(TokenType token_type) { + return token_type >= TokenType::First_RefKind && + token_type <= TokenType::Last_RefKind; +} + struct Token { Token() : token_type_(TokenType::Invalid) {} Token(Location, TokenType); @@ -83,7 +88,9 @@ struct Token { TokenType token_type() const { return token_type_; } bool HasText() const { return IsTokenTypeString(token_type_); } - bool HasType() const { return IsTokenTypeType(token_type_); } + bool HasType() const { + return IsTokenTypeType(token_type_) || IsTokenTypeRefKind(token_type_); + } bool HasOpcode() const { return IsTokenTypeOpcode(token_type_); } bool HasLiteral() const { return IsTokenTypeLiteral(token_type_); } diff --git a/src/tools/spectest-interp.cc b/src/tools/spectest-interp.cc index dc278954..693f2eaa 100644 --- a/src/tools/spectest-interp.cc +++ b/src/tools/spectest-interp.cc @@ -587,15 +587,11 @@ wabt::Result JSONParser::ParseType(Type* out_type) { } else if (type_str == "i16") { *out_type = Type::I16; } else if (type_str == "funcref") { - *out_type = Type::Funcref; - } else if (type_str == "anyref") { - *out_type = Type::Anyref; - } else if (type_str == "nullref") { - *out_type = Type::Nullref; + *out_type = Type::FuncRef; + } else if (type_str == "externref") { + *out_type = Type::ExternRef; } else if (type_str == "exnref") { - *out_type = Type::Exnref; - } else if (type_str == "hostref") { - *out_type = Type::Hostref; + *out_type = Type::ExnRef; } else { PrintError("unknown type: \"%s\"", type_str.c_str()); return wabt::Result::Error; @@ -807,26 +803,26 @@ wabt::Result JSONParser::ParseConstValue(Type type, assert(false); // Should use ParseLaneConstValue instead. break; - case Type::Nullref: { - out_value->Set(Ref::Null); - break; - } - - case Type::Hostref: { - uint32_t value; - CHECK_RESULT(ParseI32Value(&value, value_str)); - // TODO: hack, just whatever ref is at this index; but skip null (which is - // always 0). - out_value->Set(Ref{value + 1}); + case Type::FuncRef: + if (value_str == "null") { + out_value->Set(Ref::Null); + } else { + assert(allow_expected == AllowExpected::Yes); + out_value->Set(Ref{1}); + } break; - } - case Type::Funcref: { - uint32_t value; - CHECK_RESULT(ParseI32Value(&value, value_str)); - out_value->Set(Ref{value}); + case Type::ExternRef: + if (value_str == "null") { + out_value->Set(Ref::Null); + } else { + uint32_t value; + CHECK_RESULT(ParseI32Value(&value, value_str)); + // TODO: hack, just whatever ref is at this index; but skip null (which + // is always 0). + out_value->Set(Ref{value + 1}); + } break; - } default: PrintError("unknown concrete type: \"%s\"", type.GetName()); @@ -1234,7 +1230,7 @@ CommandRunner::CommandRunner() : store_(s_features) { } spectest["table"] = - interp::Table::New(store_, TableType{ValueType::Funcref, Limits{10, 20}}); + interp::Table::New(store_, TableType{ValueType::FuncRef, Limits{10, 20}}); spectest["memory"] = interp::Memory::New(store_, MemoryType{Limits{1, 2}}); @@ -1727,17 +1723,13 @@ wabt::Result CommandRunner::CheckAssertReturnResult( break; } - case Type::Nullref: - ok = actual.value.Get<Ref>() == Ref::Null; - break; - - case Type::Funcref: + case Type::FuncRef: // A funcref expectation only requires that the reference be a function, // but it doesn't check the actual index. - ok = store_.HasValueType(actual.value.Get<Ref>(), Type::Funcref); + ok = (actual.type == Type::FuncRef); break; - case Type::Hostref: + case Type::ExternRef: ok = expected.value.value.Get<Ref>() == actual.value.Get<Ref>(); break; diff --git a/src/type-checker.cc b/src/type-checker.cc index 4ffdee8c..a025a4a8 100644 --- a/src/type-checker.cc +++ b/src/type-checker.cc @@ -165,31 +165,13 @@ Result TypeChecker::CheckTypeStackEnd(const char* desc) { return result; } -static bool IsSubtype(Type sub, Type super) { - if (super == sub) { - return true; - } - if (super.IsRef() != sub.IsRef()) { - return false; - } - if (super == Type::Anyref) { - return sub.IsRef(); - } - if (super.IsNullableRef()) { - return sub == Type::Nullref; - } - return false; -} - Result TypeChecker::CheckType(Type actual, Type expected) { if (expected == Type::Any || actual == Type::Any) { return Result::Ok; } - - if (!IsSubtype(actual, expected)) { + if (actual != expected) { return Result::Error; } - return Result::Ok; } @@ -408,7 +390,7 @@ Result TypeChecker::OnBrIf(Index depth) { } Result TypeChecker::OnBrOnExn(Index depth, const TypeVector& types) { - Result result = PopAndCheck1Type(Type::Exnref, "br_on_exn"); + Result result = PopAndCheck1Type(Type::ExnRef, "br_on_exn"); Label* label; CHECK_RESULT(GetLabel(depth, &label)); if (Failed(CheckTypes(types, label->br_types()))) { @@ -417,7 +399,7 @@ Result TypeChecker::OnBrOnExn(Index depth, const TypeVector& types) { TypesToString(types).c_str()); result = Result::Error; } - PushType(Type::Exnref); + PushType(Type::ExnRef); return result; } @@ -515,7 +497,7 @@ Result TypeChecker::OnCatch() { ResetTypeStackToLabel(label); label->label_type = LabelType::Catch; label->unreachable = false; - PushType(Type::Exnref); + PushType(Type::ExnRef); return result; } @@ -689,23 +671,23 @@ Result TypeChecker::OnTableFill(Type elem_type) { } Result TypeChecker::OnRefFuncExpr(Index) { - PushType(Type::Funcref); + PushType(Type::FuncRef); return Result::Ok; } -Result TypeChecker::OnRefNullExpr() { - PushType(Type::Nullref); +Result TypeChecker::OnRefNullExpr(Type type) { + PushType(type); return Result::Ok; } -Result TypeChecker::OnRefIsNullExpr() { - Result result = PopAndCheck1Type(Type::Anyref, "ref.is_null"); +Result TypeChecker::OnRefIsNullExpr(Type type) { + Result result = PopAndCheck1Type(type, "ref.is_null"); PushType(Type::I32); return result; } Result TypeChecker::OnRethrow() { - Result result = PopAndCheck1Type(Type::Exnref, "rethrow"); + Result result = PopAndCheck1Type(Type::ExnRef, "rethrow"); CHECK_RESULT(SetUnreachable()); return result; } diff --git a/src/type-checker.h b/src/type-checker.h index b59e5588..0b3560a9 100644 --- a/src/type-checker.h +++ b/src/type-checker.h @@ -109,8 +109,8 @@ class TypeChecker { Result OnTableSize(); Result OnTableFill(Type elem_type); Result OnRefFuncExpr(Index func_index); - Result OnRefNullExpr(); - Result OnRefIsNullExpr(); + Result OnRefNullExpr(Type type); + Result OnRefIsNullExpr(Type type); Result OnRethrow(); Result OnReturn(); Result OnSelect(Type expected); @@ -31,25 +31,23 @@ class Type { public: // Matches binary format, do not change. enum Enum { - I32 = -0x01, // 0x7f - I64 = -0x02, // 0x7e - F32 = -0x03, // 0x7d - F64 = -0x04, // 0x7c - V128 = -0x05, // 0x7b - I8 = -0x06, // 0x7a : packed-type only, used in gc and as v128 lane - I16 = -0x07, // 0x79 : packed-type only, used in gc and as v128 lane - Funcref = -0x10, // 0x70 - Anyref = -0x11, // 0x6f - Nullref = -0x12, // 0x6e - Exnref = -0x18, // 0x68 - Func = -0x20, // 0x60 - Struct = -0x21, // 0x5f - Array = -0x22, // 0x5e - Void = -0x40, // 0x40 - ___ = Void, // Convenient for the opcode table in opcode.h + I32 = -0x01, // 0x7f + I64 = -0x02, // 0x7e + F32 = -0x03, // 0x7d + F64 = -0x04, // 0x7c + V128 = -0x05, // 0x7b + I8 = -0x06, // 0x7a : packed-type only, used in gc and as v128 lane + I16 = -0x07, // 0x79 : packed-type only, used in gc and as v128 lane + FuncRef = -0x10, // 0x70 + ExternRef = -0x11, // 0x6f + ExnRef = -0x18, // 0x68 + Func = -0x20, // 0x60 + Struct = -0x21, // 0x5f + Array = -0x22, // 0x5e + Void = -0x40, // 0x40 + ___ = Void, // Convenient for the opcode table in opcode.h Any = 0, // Not actually specified, but useful for type-checking - Hostref = 2, // Not actually specified, but used in testing and type-checking I8U = 4, // Not actually specified, but used internally with load/store I16U = 6, // Not actually specified, but used internally with load/store I32U = 7, // Not actually specified, but used internally with load/store @@ -61,9 +59,8 @@ class Type { operator Enum() const { return enum_; } bool IsRef() const { - return enum_ == Type::Anyref || enum_ == Type::Funcref || - enum_ == Type::Nullref || enum_ == Type::Exnref || - enum_ == Type::Hostref; + return enum_ == Type::ExternRef || enum_ == Type::FuncRef || + enum_ == Type::ExnRef; } bool IsNullableRef() const { @@ -73,21 +70,31 @@ class Type { const char* GetName() const { switch (enum_) { - case Type::I32: return "i32"; - case Type::I64: return "i64"; - case Type::F32: return "f32"; - case Type::F64: return "f64"; - case Type::V128: return "v128"; - case Type::I8: return "i8"; - case Type::I16: return "i16"; - case Type::Funcref: return "funcref"; - case Type::Func: return "func"; - case Type::Exnref: return "exnref"; - case Type::Void: return "void"; - case Type::Any: return "any"; - case Type::Anyref: return "anyref"; - case Type::Nullref: return "nullref"; - default: return "<type_index>"; + case Type::I32: return "i32"; + case Type::I64: return "i64"; + case Type::F32: return "f32"; + case Type::F64: return "f64"; + case Type::V128: return "v128"; + case Type::I8: return "i8"; + case Type::I16: return "i16"; + case Type::FuncRef: return "funcref"; + case Type::Func: return "func"; + case Type::ExnRef: return "exnref"; + case Type::Void: return "void"; + case Type::Any: return "any"; + case Type::ExternRef: return "externref"; + default: return "<type_index>"; + } + } + + const char* GetRefKindName() const { + switch (enum_) { + case Type::FuncRef: return "func"; + case Type::ExternRef: return "extern"; + case Type::ExnRef: return "exn"; + case Type::Struct: return "struct"; + case Type::Array: return "array"; + default: return "<invalid>"; } } @@ -121,10 +128,9 @@ class Type { case Type::F32: case Type::F64: case Type::V128: - case Type::Funcref: - case Type::Anyref: - case Type::Nullref: - case Type::Exnref: + case Type::FuncRef: + case Type::ExternRef: + case Type::ExnRef: return TypeVector(this, this + 1); default: diff --git a/src/validator.cc b/src/validator.cc index b879d2ea..8884059e 100644 --- a/src/validator.cc +++ b/src/validator.cc @@ -433,12 +433,12 @@ Result Validator::OnRefFuncExpr(RefFuncExpr* expr) { } Result Validator::OnRefNullExpr(RefNullExpr* expr) { - result_ |= validator_.OnRefNull(expr->loc); + result_ |= validator_.OnRefNull(expr->loc, expr->type); return Result::Ok; } Result Validator::OnRefIsNullExpr(RefIsNullExpr* expr) { - result_ |= validator_.OnRefIsNull(expr->loc); + result_ |= validator_.OnRefIsNull(expr->loc, expr->type); return Result::Ok; } @@ -715,7 +715,8 @@ Result Validator::CheckModule() { break; case ExprType::RefNull: - result_ |= validator_.OnGlobalInitExpr_RefNull(expr->loc); + result_ |= validator_.OnGlobalInitExpr_RefNull( + expr->loc, cast<RefNullExpr>(expr)->type); break; default: @@ -789,7 +790,8 @@ Result Validator::CheckModule() { switch (elem_expr.kind) { case ElemExprKind::RefNull: // TODO: better location? - result_ |= validator_.OnElemSegmentElemExpr_RefNull(field.loc); + result_ |= validator_.OnElemSegmentElemExpr_RefNull(field.loc, + elem_expr.type); break; case ElemExprKind::RefFunc: diff --git a/src/wast-lexer.cc b/src/wast-lexer.cc index 59bc0d71..05ac736a 100644 --- a/src/wast-lexer.cc +++ b/src/wast-lexer.cc @@ -540,7 +540,8 @@ Token WastLexer::GetKeywordToken() { } if (IsTokenTypeBare(info->token_type)) { return BareToken(info->token_type); - } else if (IsTokenTypeType(info->token_type)) { + } else if (IsTokenTypeType(info->token_type) || + IsTokenTypeRefKind(info->token_type)) { return Token(GetLocation(), info->token_type, info->value_type); } else { assert(IsTokenTypeOpcode(info->token_type)); diff --git a/src/wast-parser.cc b/src/wast-parser.cc index 2824a382..88189f0a 100644 --- a/src/wast-parser.cc +++ b/src/wast-parser.cc @@ -731,7 +731,9 @@ bool WastParser::ParseElemExprOpt(ElemExpr* out_elem_expr) { options_->features.reference_types_enabled())) { Error(loc, "ref.null not allowed"); } - *out_elem_expr = ElemExpr(); + Type type; + CHECK_RESULT(ParseRefKind(&type)); + *out_elem_expr = ElemExpr(type); } else if (Match(TokenType::RefFunc)) { Var var; CHECK_RESULT(ParseVar(&var)); @@ -768,7 +770,7 @@ bool WastParser::ParseElemExprVarListOpt(ElemExprVector* out_list) { Result WastParser::ParseValueType(Type* out_type) { WABT_TRACE(ParseValueType); if (!PeekMatch(TokenType::ValueType)) { - return ErrorExpected({"i32", "i64", "f32", "f64", "v128", "anyref"}); + return ErrorExpected({"i32", "i64", "f32", "f64", "v128", "externref"}); } Token token = Consume(); @@ -778,12 +780,11 @@ Result WastParser::ParseValueType(Type* out_type) { case Type::V128: is_enabled = options_->features.simd_enabled(); break; - case Type::Anyref: - case Type::Funcref: - case Type::Hostref: + case Type::FuncRef: + case Type::ExternRef: is_enabled = options_->features.reference_types_enabled(); break; - case Type::Exnref: + case Type::ExnRef: is_enabled = options_->features.exceptions_enabled(); break; default: @@ -808,15 +809,37 @@ Result WastParser::ParseValueTypeList(TypeVector* out_type_list) { return Result::Ok; } +Result WastParser::ParseRefKind(Type* out_type) { + WABT_TRACE(ParseRefKind); + if (!IsTokenTypeRefKind(Peek())) { + return ErrorExpected({"func", "extern", "exn"}); + } + + Token token = Consume(); + Type type = token.type(); + + if ((type == Type::ExternRef && + !options_->features.reference_types_enabled()) || + ((type == Type::Struct || type == Type::Array) && + !options_->features.gc_enabled())) { + Error(token.loc, "value type not allowed: %s", type.GetName()); + return Result::Error; + } + + *out_type = type; + return Result::Ok; +} + Result WastParser::ParseRefType(Type* out_type) { WABT_TRACE(ParseRefType); if (!PeekMatch(TokenType::ValueType)) { - return ErrorExpected({"funcref", "anyref", "nullref", "exnref"}); + return ErrorExpected({"funcref", "externref", "exnref"}); } Token token = Consume(); Type type = token.type(); - if (type == Type::Anyref && !options_->features.reference_types_enabled()) { + if (type == Type::ExternRef && + !options_->features.reference_types_enabled()) { Error(token.loc, "value type not allowed: %s", type.GetName()); return Result::Error; } @@ -833,7 +856,8 @@ bool WastParser::ParseRefTypeOpt(Type* out_type) { Token token = Consume(); Type type = token.type(); - if (type == Type::Anyref && !options_->features.reference_types_enabled()) { + if (type == Type::ExternRef && + !options_->features.reference_types_enabled()) { return false; } @@ -1107,7 +1131,7 @@ Result WastParser::ParseElemModuleField(Module* module) { if (ParseRefTypeOpt(&field->elem_segment.elem_type)) { ParseElemExprListOpt(&field->elem_segment.elem_exprs); } else { - field->elem_segment.elem_type = Type::Funcref; + field->elem_segment.elem_type = Type::FuncRef; if (PeekMatch(TokenType::Func)) { EXPECT(Func); } @@ -1949,15 +1973,21 @@ Result WastParser::ParsePlainInstr(std::unique_ptr<Expr>* out_expr) { CHECK_RESULT(ParsePlainInstrVar<RefFuncExpr>(loc, out_expr)); break; - case TokenType::RefNull: + case TokenType::RefNull: { ErrorUnlessOpcodeEnabled(Consume()); - out_expr->reset(new RefNullExpr(loc)); + Type type; + CHECK_RESULT(ParseRefKind(&type)); + out_expr->reset(new RefNullExpr(type, loc)); break; + } - case TokenType::RefIsNull: + case TokenType::RefIsNull: { ErrorUnlessOpcodeEnabled(Consume()); - out_expr->reset(new RefIsNullExpr(loc)); + Type type; + CHECK_RESULT(ParseRefKind(&type)); + out_expr->reset(new RefIsNullExpr(type, loc)); break; + } case TokenType::Throw: ErrorUnlessOpcodeEnabled(Consume()); @@ -2360,11 +2390,11 @@ Result WastParser::ParseConst(Const* const_, ConstType const_type) { return Result::Ok; } -Result WastParser::ParseHostRef(Const* const_) { - WABT_TRACE(ParseHostRef); +Result WastParser::ParseExternref(Const* const_) { + WABT_TRACE(ParseExternref); Token token = Consume(); if (!options_->features.reference_types_enabled()) { - Error(token.loc, "hostref not allowed"); + Error(token.loc, "externref not allowed"); return Result::Error; } @@ -2391,7 +2421,7 @@ Result WastParser::ParseHostRef(Const* const_) { uint64_t ref_bits; Result result = ParseInt64(s, end, &ref_bits, ParseIntType::UnsignedOnly); - const_->set_hostref(static_cast<uintptr_t>(ref_bits)); + const_->set_externref(static_cast<uintptr_t>(ref_bits)); if (Failed(result)) { Error(const_->loc, "invalid literal \"" PRIstringview "\"", @@ -2406,7 +2436,7 @@ Result WastParser::ParseHostRef(Const* const_) { Result WastParser::ParseConstList(ConstVector* consts, ConstType type) { WABT_TRACE(ParseConstList); while (PeekMatchLpar(TokenType::Const) || PeekMatchLpar(TokenType::RefNull) || - PeekMatchLpar(TokenType::RefHost) || + PeekMatchLpar(TokenType::RefExtern) || PeekMatchLpar(TokenType::RefFunc)) { Consume(); Const const_; @@ -2416,9 +2446,11 @@ Result WastParser::ParseConstList(ConstVector* consts, ConstType type) { break; case TokenType::RefNull: { auto token = Consume(); + Type type; + CHECK_RESULT(ParseRefKind(&type)); ErrorUnlessOpcodeEnabled(token); const_.loc = GetLocation(); - const_.set_nullref(); + const_.set_null(type); break; } case TokenType::RefFunc: { @@ -2428,8 +2460,8 @@ Result WastParser::ParseConstList(ConstVector* consts, ConstType type) { const_.set_funcref(); break; } - case TokenType::RefHost: - CHECK_RESULT(ParseHostRef(&const_)); + case TokenType::RefExtern: + CHECK_RESULT(ParseExternref(&const_)); break; default: assert(!"unreachable"); diff --git a/src/wast-parser.h b/src/wast-parser.h index 7dd4d038..adac244d 100644 --- a/src/wast-parser.h +++ b/src/wast-parser.h @@ -131,6 +131,7 @@ class WastParser { bool ParseElemExprVarListOpt(ElemExprVector* out_list); Result ParseValueType(Type* out_type); Result ParseValueTypeList(TypeVector* out_type_list); + Result ParseRefKind(Type* out_type); Result ParseRefType(Type* out_type); bool ParseRefTypeOpt(Type* out_type); Result ParseQuotedText(std::string* text); @@ -172,7 +173,7 @@ class WastParser { Result ParseF32(Const*, ConstType type); Result ParseF64(Const*, ConstType type); Result ParseConst(Const*, ConstType type); - Result ParseHostRef(Const*); + Result ParseExternref(Const*); Result ParseExpectedNan(ExpectedNan* expected); Result ParseConstList(ConstVector*, ConstType type); Result ParseBlockInstr(std::unique_ptr<Expr>*); diff --git a/src/wat-writer.cc b/src/wat-writer.cc index 53c14216..573cb6f4 100644 --- a/src/wat-writer.cc +++ b/src/wat-writer.cc @@ -122,6 +122,7 @@ class WatWriter : ModuleContext { void WriteQuotedString(string_view str, NextChar next_char); void WriteVar(const Var& var, NextChar next_char); void WriteBrVar(const Var& var, NextChar next_char); + void WriteRefKind(Type type, NextChar next_char); void WriteType(Type type, NextChar next_char); void WriteTypes(const TypeVector& types, const char* name); void WriteFuncSigSpace(const FuncSignature& func_sig); @@ -377,6 +378,10 @@ void WatWriter::WriteBrVar(const Var& var, NextChar next_char) { } } +void WatWriter::WriteRefKind(Type type, NextChar next_char) { + WritePuts(type.GetRefKindName(), next_char); +} + void WatWriter::WriteType(Type type, NextChar next_char) { const char* type_name = type.GetName(); assert(type_name); @@ -797,12 +802,14 @@ Result WatWriter::ExprVisitorDelegate::OnRefFuncExpr(RefFuncExpr* expr) { } Result WatWriter::ExprVisitorDelegate::OnRefNullExpr(RefNullExpr* expr) { - writer_->WritePutsNewline(Opcode::RefNull_Opcode.GetName()); + writer_->WritePutsSpace(Opcode::RefNull_Opcode.GetName()); + writer_->WriteRefKind(expr->type, NextChar::Newline); return Result::Ok; } Result WatWriter::ExprVisitorDelegate::OnRefIsNullExpr(RefIsNullExpr* expr) { - writer_->WritePutsNewline(Opcode::RefIsNull_Opcode.GetName()); + writer_->WritePutsSpace(Opcode::RefIsNull_Opcode.GetName()); + writer_->WriteRefKind(expr->type, NextChar::Newline); return Result::Ok; } @@ -1279,7 +1286,7 @@ void WatWriter::WriteElemSegment(const ElemSegment& segment) { if (flags & SegUseElemExprs) { WriteType(segment.elem_type, NextChar::Space); } else { - assert(segment.elem_type == Type::Funcref); + assert(segment.elem_type == Type::FuncRef); WritePuts("func", NextChar::Space); } @@ -1287,6 +1294,7 @@ void WatWriter::WriteElemSegment(const ElemSegment& segment) { if (flags & SegUseElemExprs) { if (expr.kind == ElemExprKind::RefNull) { WriteOpenSpace("ref.null"); + WriteRefKind(expr.type, NextChar::Space); WriteCloseSpace(); } else { WriteOpenSpace("ref.func"); diff --git a/test/decompile/basic.txt b/test/decompile/basic.txt index 31be88b9..ae69af25 100644 --- a/test/decompile/basic.txt +++ b/test/decompile/basic.txt @@ -95,8 +95,8 @@ end set_local 0 nop - ref.null - ref.is_null + ref.null func + ref.is_null func drop i32.const 0 ;; fi call_indirect diff --git a/test/dump/reference-types.txt b/test/dump/reference-types.txt index a1279635..9650b0d9 100644 --- a/test/dump/reference-types.txt +++ b/test/dump/reference-types.txt @@ -3,46 +3,46 @@ ;;; ARGS1: -x (module - (table $foo 1 anyref) - (table $bar 1 anyref) - (table $baz 1 anyfunc) + (table $foo 1 externref) + (table $bar 1 externref) + (table $baz 1 funcref) (elem (table $baz) (i32.const 0) $f1) - (elem funcref (ref.null)) + (elem funcref (ref.null func)) - (func $f1 (result anyref) + (func $f1 (result externref) i32.const 0 table.get $foo ) - (func (result anyref) + (func (result externref) i32.const 0 table.get $bar ) - (func (param anyref) + (func (param externref) i32.const 0 get_local 0 table.set $foo ) - (func (param anyref) + (func (param externref) i32.const 0 get_local 0 table.set $bar ) (func (result i32) - ref.null + ref.null extern i32.const 0 table.grow $foo ) (func (result i32) - ref.null + ref.null extern i32.const 0 table.grow $bar ) - (func (param anyref) (result i32) + (func (param externref) (result i32) local.get 0 - ref.is_null + ref.is_null extern ) @@ -56,7 +56,6 @@ table.size $baz ) ) - (;; STDOUT ;;; reference-types.wasm: file format wasm 0x1 @@ -64,10 +63,10 @@ reference-types.wasm: file format wasm 0x1 Section Details: Type[4]: - - type[0] () -> anyref - - type[1] (anyref) -> nil + - type[0] () -> externref + - type[1] (externref) -> nil - type[2] () -> i32 - - type[3] (anyref) -> i32 + - type[3] (externref) -> i32 Function[10]: - func[0] sig=0 - func[1] sig=0 @@ -80,67 +79,67 @@ Function[10]: - func[8] sig=2 - func[9] sig=2 Table[3]: - - table[0] type=anyref initial=1 - - table[1] type=anyref initial=1 + - table[0] type=externref initial=1 + - table[1] type=externref initial=1 - table[2] type=funcref initial=1 Elem[2]: - segment[0] flags=2 table=2 count=1 - init i32=0 - elem[0] = func[0] - segment[1] flags=5 table=0 count=1 - - elem[0] = nullref + - elem[0] = ref.null funcref Code[10]: - func[0] size=6 - func[1] size=6 - func[2] size=8 - func[3] size=8 - - func[4] size=8 - - func[5] size=8 - - func[6] size=5 + - func[4] size=9 + - func[5] size=9 + - func[6] size=6 - func[7] size=5 - func[8] size=5 - func[9] size=5 Code Disassembly: -000049 func[0]: - 00004a: 41 00 | i32.const 0 - 00004c: 25 00 | table.get 0 - 00004e: 0b | end -000050 func[1]: - 000051: 41 00 | i32.const 0 - 000053: 25 01 | table.get 1 - 000055: 0b | end -000057 func[2]: - 000058: 41 00 | i32.const 0 - 00005a: 20 00 | local.get 0 - 00005c: 26 00 | table.set 0 - 00005e: 0b | end -000060 func[3]: - 000061: 41 00 | i32.const 0 - 000063: 20 00 | local.get 0 - 000065: 26 01 | table.set 1 - 000067: 0b | end -000069 func[4]: - 00006a: d0 | ref.null - 00006b: 41 00 | i32.const 0 - 00006d: fc 0f 00 | table.grow 0 - 000070: 0b | end -000072 func[5]: - 000073: d0 | ref.null - 000074: 41 00 | i32.const 0 - 000076: fc 0f 01 | table.grow 1 - 000079: 0b | end -00007b func[6]: - 00007c: 20 00 | local.get 0 - 00007e: d1 | ref.is_null - 00007f: 0b | end -000081 func[7]: - 000082: fc 10 00 | table.size 0 - 000085: 0b | end -000087 func[8]: - 000088: fc 10 01 | table.size 1 - 00008b: 0b | end -00008d func[9]: - 00008e: fc 10 02 | table.size 2 - 000091: 0b | end +00004a func[0]: + 00004b: 41 00 | i32.const 0 + 00004d: 25 00 | table.get 0 + 00004f: 0b | end +000051 func[1]: + 000052: 41 00 | i32.const 0 + 000054: 25 01 | table.get 1 + 000056: 0b | end +000058 func[2]: + 000059: 41 00 | i32.const 0 + 00005b: 20 00 | local.get 0 + 00005d: 26 00 | table.set 0 + 00005f: 0b | end +000061 func[3]: + 000062: 41 00 | i32.const 0 + 000064: 20 00 | local.get 0 + 000066: 26 01 | table.set 1 + 000068: 0b | end +00006a func[4]: + 00006b: d0 6f | ref.null extern + 00006d: 41 00 | i32.const 0 + 00006f: fc 0f 00 | table.grow 0 + 000072: 0b | end +000074 func[5]: + 000075: d0 6f | ref.null extern + 000077: 41 00 | i32.const 0 + 000079: fc 0f 01 | table.grow 1 + 00007c: 0b | end +00007e func[6]: + 00007f: 20 00 | local.get 0 + 000081: d1 6f | ref.is_null extern + 000083: 0b | end +000085 func[7]: + 000086: fc 10 00 | table.size 0 + 000089: 0b | end +00008b func[8]: + 00008c: fc 10 01 | table.size 1 + 00008f: 0b | end +000091 func[9]: + 000092: fc 10 02 | table.size 2 + 000095: 0b | end ;;; STDOUT ;;) diff --git a/test/gen-spec-wast.py b/test/gen-spec-wast.py index 648870b5..728d2214 100755 --- a/test/gen-spec-wast.py +++ b/test/gen-spec-wast.py @@ -198,10 +198,8 @@ class WastWriter(object): return F32ToWasm(int(value)) elif type_ == 'f64': return F64ToWasm(int(value)) - elif type_ == 'nullref': - return type_ - elif type_ == 'hostref': - return 'ref.host %s' % value + elif type_ == 'externref': + return 'ref.extern %s' % value elif type_ == 'funcref': return 'ref.func %s' % value else: diff --git a/test/help/spectest-interp.txt b/test/help/spectest-interp.txt index 3372ae1f..46f25687 100644 --- a/test/help/spectest-interp.txt +++ b/test/help/spectest-interp.txt @@ -22,7 +22,7 @@ options: --disable-multi-value Disable Multi-value --enable-tail-call Enable Tail-call support --enable-bulk-memory Enable Bulk-memory operations - --enable-reference-types Enable Reference types (anyref) + --enable-reference-types Enable Reference types (externref) --enable-annotations Enable Custom annotation syntax --enable-gc Enable Garbage collection --enable-all Enable all features diff --git a/test/help/wasm-interp.txt b/test/help/wasm-interp.txt index 91c91eda..e3c18ac1 100644 --- a/test/help/wasm-interp.txt +++ b/test/help/wasm-interp.txt @@ -33,7 +33,7 @@ options: --disable-multi-value Disable Multi-value --enable-tail-call Enable Tail-call support --enable-bulk-memory Enable Bulk-memory operations - --enable-reference-types Enable Reference types (anyref) + --enable-reference-types Enable Reference types (externref) --enable-annotations Enable Custom annotation syntax --enable-gc Enable Garbage collection --enable-all Enable all features diff --git a/test/help/wasm-opcodecnt.txt b/test/help/wasm-opcodecnt.txt index b527aa2a..28eddf1f 100644 --- a/test/help/wasm-opcodecnt.txt +++ b/test/help/wasm-opcodecnt.txt @@ -23,7 +23,7 @@ options: --disable-multi-value Disable Multi-value --enable-tail-call Enable Tail-call support --enable-bulk-memory Enable Bulk-memory operations - --enable-reference-types Enable Reference types (anyref) + --enable-reference-types Enable Reference types (externref) --enable-annotations Enable Custom annotation syntax --enable-gc Enable Garbage collection --enable-all Enable all features diff --git a/test/help/wasm-validate.txt b/test/help/wasm-validate.txt index 7cec73cb..57584aa1 100644 --- a/test/help/wasm-validate.txt +++ b/test/help/wasm-validate.txt @@ -22,7 +22,7 @@ options: --disable-multi-value Disable Multi-value --enable-tail-call Enable Tail-call support --enable-bulk-memory Enable Bulk-memory operations - --enable-reference-types Enable Reference types (anyref) + --enable-reference-types Enable Reference types (externref) --enable-annotations Enable Custom annotation syntax --enable-gc Enable Garbage collection --enable-all Enable all features diff --git a/test/help/wasm2wat.txt b/test/help/wasm2wat.txt index 3ef08560..5f20154f 100644 --- a/test/help/wasm2wat.txt +++ b/test/help/wasm2wat.txt @@ -28,7 +28,7 @@ options: --disable-multi-value Disable Multi-value --enable-tail-call Enable Tail-call support --enable-bulk-memory Enable Bulk-memory operations - --enable-reference-types Enable Reference types (anyref) + --enable-reference-types Enable Reference types (externref) --enable-annotations Enable Custom annotation syntax --enable-gc Enable Garbage collection --enable-all Enable all features diff --git a/test/help/wast2json.txt b/test/help/wast2json.txt index 05a20278..24f456be 100644 --- a/test/help/wast2json.txt +++ b/test/help/wast2json.txt @@ -25,7 +25,7 @@ options: --disable-multi-value Disable Multi-value --enable-tail-call Enable Tail-call support --enable-bulk-memory Enable Bulk-memory operations - --enable-reference-types Enable Reference types (anyref) + --enable-reference-types Enable Reference types (externref) --enable-annotations Enable Custom annotation syntax --enable-gc Enable Garbage collection --enable-all Enable all features diff --git a/test/help/wat-desugar.txt b/test/help/wat-desugar.txt index 69072c72..65abc0d9 100644 --- a/test/help/wat-desugar.txt +++ b/test/help/wat-desugar.txt @@ -32,7 +32,7 @@ options: --disable-multi-value Disable Multi-value --enable-tail-call Enable Tail-call support --enable-bulk-memory Enable Bulk-memory operations - --enable-reference-types Enable Reference types (anyref) + --enable-reference-types Enable Reference types (externref) --enable-annotations Enable Custom annotation syntax --enable-gc Enable Garbage collection --enable-all Enable all features diff --git a/test/help/wat2wasm.txt b/test/help/wat2wasm.txt index db11d9ec..69114e6c 100644 --- a/test/help/wat2wasm.txt +++ b/test/help/wat2wasm.txt @@ -32,7 +32,7 @@ options: --disable-multi-value Disable Multi-value --enable-tail-call Enable Tail-call support --enable-bulk-memory Enable Bulk-memory operations - --enable-reference-types Enable Reference types (anyref) + --enable-reference-types Enable Reference types (externref) --enable-annotations Enable Custom annotation syntax --enable-gc Enable Garbage collection --enable-all Enable all features diff --git a/test/interp/reference-types.txt b/test/interp/reference-types.txt index 77e3d691..9b9c45de 100644 --- a/test/interp/reference-types.txt +++ b/test/interp/reference-types.txt @@ -2,23 +2,27 @@ ;;; ARGS*: --enable-reference-types (module - (table $t_func 1 anyfunc) - (table $t_any 1 anyref) - (elem $t_func funcref (ref.func 1) (ref.null)) - (elem $t_any anyref (ref.func 1) (ref.null)) - (global $g (mut anyref) (ref.null)) - - (func $ref_null (export "ref_null") (result nullref) - ref.null + (table $t_func 1 funcref) + (table $t_extern 1 externref) + (elem funcref (ref.func 2) (ref.null func)) + (elem externref (ref.null extern)) + (global $g (mut funcref) (ref.null func)) + + (func (export "ref_null_func") (result funcref) + ref.null func + ) + + (func (export "ref_null_extern") (result externref) + ref.null extern ) - (func $ref_is_null (export "ref_is_null") (result i32) + (func $ref_is_null_func (export "ref_is_null_func") (result i32) global.get $g - ref.is_null + ref.is_null func ) - (func $ref_func (export "ref_func") (result anyfunc) - ref.func $ref_is_null + (func $ref_func (export "ref_func") (result funcref) + ref.func $ref_is_null_func ) (func $table_set (export "table_set") @@ -31,20 +35,21 @@ call $table_set i32.const 0 table.get $t_func - ref.is_null + ref.is_null func ) - (func $global_set (export "global_set") (result anyref) - ref.func $ref_is_null + (func $global_set (export "global_set") (result funcref) + ref.func $ref_is_null_func global.set $g global.get $g ) ) (;; STDOUT ;;; -ref_null() => nullref -ref_is_null() => i32:1 -ref_func() => funcref:4 +ref_null_func() => funcref:0 +ref_null_extern() => externref:0 +ref_is_null_func() => i32:1 +ref_func() => funcref:5 table_set() => table_get() => i32:0 -global_set() => anyref:4 +global_set() => funcref:5 ;;; STDOUT ;;) diff --git a/test/parse/all-features.txt b/test/parse/all-features.txt index 8806d191..f434a9ac 100644 --- a/test/parse/all-features.txt +++ b/test/parse/all-features.txt @@ -56,7 +56,7 @@ memory.copy ;; reference types - ref.null + ref.null func drop ;; exceptions diff --git a/test/parse/expr/bulk-memory-disabled.txt b/test/parse/expr/bulk-memory-disabled.txt index c46f021a..def935d6 100644 --- a/test/parse/expr/bulk-memory-disabled.txt +++ b/test/parse/expr/bulk-memory-disabled.txt @@ -13,7 +13,7 @@ (table 1 anyfunc) (elem $elem funcref 0) - (elem funcref (ref.null)) + (elem funcref (ref.null func)) (func i32.const 0 i32.const 0 i32.const 0 table.init 0 elem.drop 0 @@ -40,7 +40,7 @@ out/test/parse/expr/bulk-memory-disabled.txt:15:23: error: unexpected token 0, e (elem $elem funcref 0) ^ out/test/parse/expr/bulk-memory-disabled.txt:16:17: error: ref.null not allowed - (elem funcref (ref.null)) + (elem funcref (ref.null func)) ^ out/test/parse/expr/bulk-memory-disabled.txt:18:41: error: opcode not allowed: table.init i32.const 0 i32.const 0 i32.const 0 table.init 0 diff --git a/test/parse/expr/bulk-memory-named.txt b/test/parse/expr/bulk-memory-named.txt index a4418baf..b63b5b0c 100644 --- a/test/parse/expr/bulk-memory-named.txt +++ b/test/parse/expr/bulk-memory-named.txt @@ -10,7 +10,7 @@ ) (table 1 anyfunc) - (elem $elem funcref (ref.func 0) (ref.null)) + (elem $elem funcref (ref.func 0) (ref.null func)) (elem $elem2 func 0) (func i32.const 0 i32.const 0 i32.const 0 table.init $elem diff --git a/test/parse/expr/reference-types-named.txt b/test/parse/expr/reference-types-named.txt index 065b870d..5a2d5d1b 100644 --- a/test/parse/expr/reference-types-named.txt +++ b/test/parse/expr/reference-types-named.txt @@ -2,18 +2,18 @@ ;;; ARGS: --enable-reference-types (module - (table $foo 1 anyref) - (func (result anyref) + (table $foo 1 externref) + (func (result externref) i32.const 0 table.get $foo ) - (func (param anyref) + (func (param externref) i32.const 0 get_local 0 table.set $foo ) (func (result i32) - ref.null + ref.null extern i32.const 0 table.grow $foo ) diff --git a/test/parse/expr/reference-types.txt b/test/parse/expr/reference-types.txt index e5e87ecd..2cb156f5 100644 --- a/test/parse/expr/reference-types.txt +++ b/test/parse/expr/reference-types.txt @@ -2,63 +2,50 @@ ;;; ARGS: --enable-reference-types (module - (table $foo 1 anyref) - (table $bar 1 anyref) - (table $baz 1 anyfunc) - (table $qux 1 nullref) + (table $foo 1 externref) + (table $bar 1 externref) + (table $baz 1 funcref) (elem declare func 0) - (func (result anyref) + (func (result externref) i32.const 0 table.get $foo ) - (func (result anyref) + (func (result externref) i32.const 0 table.get $bar ) - (func (result nullref) - i32.const 0 - table.get $qux - ) - (func (param anyref) + (func (param externref) i32.const 0 get_local 0 table.set $foo ) - (func (param anyref) + (func (param externref) i32.const 0 get_local 0 table.set $bar ) - (func (param nullref) - i32.const 0 - get_local 0 - table.set $qux - ) (func (result i32) - ref.null + ref.null extern i32.const 0 table.grow $foo ) (func (result i32) - ref.null + ref.null extern i32.const 0 table.grow $bar ) - (func (param anyref) (result i32) + (func (param externref) (result i32) local.get 0 - ref.is_null + ref.is_null extern ) - (func (result anyref) + (func (result funcref) ref.func 0 ) - (func (result nullref) - ref.null - ) (func (result i32) table.size $foo diff --git a/test/parse/expr/table-get.txt b/test/parse/expr/table-get.txt index ed2e7155..a1d3074a 100644 --- a/test/parse/expr/table-get.txt +++ b/test/parse/expr/table-get.txt @@ -1,8 +1,8 @@ ;;; TOOL: wat2wasm ;;; ARGS: --enable-reference-types (module - (func (result anyref) + (func (result externref) i32.const 0 table.get 0) - (table 1 anyref)) + (table 1 externref)) diff --git a/test/parse/expr/table-grow.txt b/test/parse/expr/table-grow.txt index 1f3d5b36..f40e9092 100644 --- a/test/parse/expr/table-grow.txt +++ b/test/parse/expr/table-grow.txt @@ -2,8 +2,8 @@ ;;; ARGS: --enable-reference-types (module (func (result i32) - ref.null + ref.null extern i32.const 0 table.grow 0) - (table 1 anyref)) + (table 1 externref)) diff --git a/test/parse/expr/table-set.txt b/test/parse/expr/table-set.txt index d441437e..16f8b917 100644 --- a/test/parse/expr/table-set.txt +++ b/test/parse/expr/table-set.txt @@ -1,9 +1,9 @@ ;;; TOOL: wat2wasm ;;; ARGS: --enable-reference-types (module - (func (param anyref) + (func (param externref) i32.const 0 get_local 0 table.set 0) - (table 1 anyref)) + (table 1 externref)) diff --git a/test/parse/func/bad-local-binding-no-type.txt b/test/parse/func/bad-local-binding-no-type.txt index 029218e9..371205f3 100644 --- a/test/parse/func/bad-local-binding-no-type.txt +++ b/test/parse/func/bad-local-binding-no-type.txt @@ -2,7 +2,7 @@ ;;; ERROR: 1 (module (func (local $n))) (;; STDERR ;;; -out/test/parse/func/bad-local-binding-no-type.txt:3:24: error: unexpected token ")", expected i32, i64, f32, f64, v128 or anyref. +out/test/parse/func/bad-local-binding-no-type.txt:3:24: error: unexpected token ")", expected i32, i64, f32, f64, v128 or externref. (module (func (local $n))) ^ ;;; STDERR ;;) diff --git a/test/parse/func/bad-local-binding.txt b/test/parse/func/bad-local-binding.txt index 51110dfe..2a70cd84 100644 --- a/test/parse/func/bad-local-binding.txt +++ b/test/parse/func/bad-local-binding.txt @@ -2,7 +2,7 @@ ;;; ERROR: 1 (module (func (local $foo $bar))) (;; STDERR ;;; -out/test/parse/func/bad-local-binding.txt:3:27: error: unexpected token "$bar", expected i32, i64, f32, f64, v128 or anyref. +out/test/parse/func/bad-local-binding.txt:3:27: error: unexpected token "$bar", expected i32, i64, f32, f64, v128 or externref. (module (func (local $foo $bar))) ^^^^ ;;; STDERR ;;) diff --git a/test/parse/func/bad-param-binding.txt b/test/parse/func/bad-param-binding.txt index f813b23c..9f91b1bb 100644 --- a/test/parse/func/bad-param-binding.txt +++ b/test/parse/func/bad-param-binding.txt @@ -2,7 +2,7 @@ ;;; ERROR: 1 (module (func (param $bar $baz))) (;; STDERR ;;; -out/test/parse/func/bad-param-binding.txt:3:27: error: unexpected token "$baz", expected i32, i64, f32, f64, v128 or anyref. +out/test/parse/func/bad-param-binding.txt:3:27: error: unexpected token "$baz", expected i32, i64, f32, f64, v128 or externref. (module (func (param $bar $baz))) ^^^^ ;;; STDERR ;;) diff --git a/test/parse/func/result-exnref.txt b/test/parse/func/result-exnref.txt index c104ee0b..92435f80 100644 --- a/test/parse/func/result-exnref.txt +++ b/test/parse/func/result-exnref.txt @@ -1,3 +1,3 @@ ;;; TOOL: wat2wasm ;;; ARGS: --enable-exceptions -(module (func (result exnref) ref.null)) +(module (func (result exnref) ref.null exn)) diff --git a/test/parse/module/bad-array-no-fields.txt b/test/parse/module/bad-array-no-fields.txt index d01e4d31..c1bbe268 100644 --- a/test/parse/module/bad-array-no-fields.txt +++ b/test/parse/module/bad-array-no-fields.txt @@ -3,7 +3,7 @@ ;;; ERROR: 1 (type (array)) (;; STDERR ;;; -out/test/parse/module/bad-array-no-fields.txt:4:13: error: unexpected token ")", expected i32, i64, f32, f64, v128 or anyref. +out/test/parse/module/bad-array-no-fields.txt:4:13: error: unexpected token ")", expected i32, i64, f32, f64, v128 or externref. (type (array)) ^ ;;; STDERR ;;) diff --git a/test/parse/module/global-exnref.txt b/test/parse/module/global-exnref.txt index 4e5d3931..56f5e57b 100644 --- a/test/parse/module/global-exnref.txt +++ b/test/parse/module/global-exnref.txt @@ -1,3 +1,3 @@ ;;; TOOL: wat2wasm ;;; ARGS: --enable-exceptions -(module (global exnref (ref.null))) +(module (global exnref (ref.null exn))) diff --git a/test/parse/module/global.txt b/test/parse/module/global.txt index 0763ee47..2578131c 100644 --- a/test/parse/module/global.txt +++ b/test/parse/module/global.txt @@ -19,6 +19,5 @@ (global f64 (get_global 3)) (func $foo) - (global anyref (ref.null)) - (global funcref (ref.func $foo)) - (global nullref (ref.null))) + (global externref (ref.null extern)) + (global funcref (ref.func $foo))) diff --git a/test/parse/module/reference-types-disabled.txt b/test/parse/module/reference-types-disabled.txt index 8d241c8b..e4ba2736 100644 --- a/test/parse/module/reference-types-disabled.txt +++ b/test/parse/module/reference-types-disabled.txt @@ -2,7 +2,7 @@ ;;; ERROR: 1 (module - (table $t 1 anyref) + (table $t 1 externref) (func i32.const 0 i32.const 0 @@ -11,9 +11,9 @@ ) ) (;; STDERR ;;; -out/test/parse/module/reference-types-disabled.txt:5:15: error: value type not allowed: anyref - (table $t 1 anyref) - ^^^^^^ +out/test/parse/module/reference-types-disabled.txt:5:15: error: value type not allowed: externref + (table $t 1 externref) + ^^^^^^^^^ out/test/parse/module/reference-types-disabled.txt:9:5: error: opcode not allowed: table.get table.get $t ^^^^^^^^^ diff --git a/test/roundtrip/bulk-memory.txt b/test/roundtrip/bulk-memory.txt index 3c932961..a84135ea 100644 --- a/test/roundtrip/bulk-memory.txt +++ b/test/roundtrip/bulk-memory.txt @@ -39,7 +39,7 @@ (func) (data "hi") - (elem funcref (ref.func 0) (ref.null)) + (elem funcref (ref.func 0) (ref.null func)) (elem func 1) ) @@ -72,7 +72,7 @@ (func (;1;) (type 0)) (table (;0;) 0 funcref) (memory (;0;) 0) - (elem (;0;) funcref (ref.func 0) (ref.null)) + (elem (;0;) funcref (ref.func 0) (ref.null func)) (elem (;1;) func 1) (data (;0;) "hi")) ;;; STDOUT ;;) diff --git a/test/roundtrip/fold-reference-types.txt b/test/roundtrip/fold-reference-types.txt index 23412a5f..54a6c150 100644 --- a/test/roundtrip/fold-reference-types.txt +++ b/test/roundtrip/fold-reference-types.txt @@ -2,7 +2,7 @@ ;;; ARGS: --stdout --fold-exprs --enable-reference-types (module - (table $t 1 anyref) + (table $t 1 externref) (func i32.const 0 i32.const 0 @@ -18,5 +18,5 @@ (i32.const 0) (table.get 0 (i32.const 0)))) - (table (;0;) 1 anyref)) + (table (;0;) 1 externref)) ;;; STDOUT ;;) diff --git a/test/run-c-api-examples.py b/test/run-c-api-examples.py index 40a43c87..01b728b0 100755 --- a/test/run-c-api-examples.py +++ b/test/run-c-api-examples.py @@ -42,6 +42,7 @@ ALL_EXAMPLES = [ SKIP_EXAMPLES = [ 'threads', # We don't yet support threads 'finalize', # This test is really slow + 'hostref', # The wasm module is currently invalid (needs subtyping changes) ] IS_WINDOWS = sys.platform == 'win32' diff --git a/test/spec/address.txt b/test/spec/address.txt index d63bf244..d641fca3 100644 --- a/test/spec/address.txt +++ b/test/spec/address.txt @@ -2,40 +2,57 @@ ;;; STDIN_FILE: third_party/testsuite/address.wast (;; STDOUT ;;; out/test/spec/address.wast:192: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536 -out/test/spec/address.wast:194: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536 -out/test/spec/address.wast:195: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536 -out/test/spec/address.wast:196: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536 -out/test/spec/address.wast:197: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536 -out/test/spec/address.wast:198: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 -out/test/spec/address.wast:200: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 -out/test/spec/address.wast:201: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 -out/test/spec/address.wast:202: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 -out/test/spec/address.wast:203: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 -out/test/spec/address.wast:204: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 -out/test/spec/address.wast:207: assert_malformed passed: +out/test/spec/address.wast:194: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 +out/test/spec/address.wast:195: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 +out/test/spec/address.wast:196: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 +out/test/spec/address.wast:197: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 +out/test/spec/address.wast:198: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 +out/test/spec/address.wast:199: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 +out/test/spec/address.wast:201: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536 +out/test/spec/address.wast:202: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536 +out/test/spec/address.wast:203: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536 +out/test/spec/address.wast:204: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536 +out/test/spec/address.wast:205: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 +out/test/spec/address.wast:207: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 +out/test/spec/address.wast:208: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 +out/test/spec/address.wast:209: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 +out/test/spec/address.wast:210: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 +out/test/spec/address.wast:211: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 +out/test/spec/address.wast:214: assert_malformed passed: out/test/spec/address/address.1.wat:1:33: error: offset must be less than or equal to 0xffffffff (memory 1)(func (drop (i32.load offset=4294967296 (i32.const 0)))) ^^^^^^^^^^^^^^^^^ -out/test/spec/address.wast:479: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 -out/test/spec/address.wast:481: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536 -out/test/spec/address.wast:482: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536 -out/test/spec/address.wast:483: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536 -out/test/spec/address.wast:484: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536 -out/test/spec/address.wast:485: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 -out/test/spec/address.wast:486: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 -out/test/spec/address.wast:487: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536 +out/test/spec/address.wast:486: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 +out/test/spec/address.wast:488: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 out/test/spec/address.wast:489: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 -out/test/spec/address.wast:490: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 +out/test/spec/address.wast:490: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 out/test/spec/address.wast:491: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 -out/test/spec/address.wast:492: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 -out/test/spec/address.wast:493: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 -out/test/spec/address.wast:494: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 -out/test/spec/address.wast:495: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 -out/test/spec/address.wast:539: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536 -out/test/spec/address.wast:541: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 -out/test/spec/address.wast:542: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 -out/test/spec/address.wast:586: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 -out/test/spec/address.wast:588: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536 -out/test/spec/address.wast:589: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 -239/239 tests passed. +out/test/spec/address.wast:492: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 +out/test/spec/address.wast:493: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 +out/test/spec/address.wast:494: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/address.wast:496: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536 +out/test/spec/address.wast:497: assert_trap passed: out of bounds memory access: access at 4294967295+1 >= max value 65536 +out/test/spec/address.wast:498: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536 +out/test/spec/address.wast:499: assert_trap passed: out of bounds memory access: access at 4294967295+2 >= max value 65536 +out/test/spec/address.wast:500: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 +out/test/spec/address.wast:501: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 +out/test/spec/address.wast:502: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536 +out/test/spec/address.wast:504: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 +out/test/spec/address.wast:505: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 +out/test/spec/address.wast:506: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 +out/test/spec/address.wast:507: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 +out/test/spec/address.wast:508: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 +out/test/spec/address.wast:509: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 +out/test/spec/address.wast:510: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/address.wast:554: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536 +out/test/spec/address.wast:556: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 +out/test/spec/address.wast:557: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 +out/test/spec/address.wast:559: assert_trap passed: out of bounds memory access: access at 4294967295+4 >= max value 65536 +out/test/spec/address.wast:560: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 +out/test/spec/address.wast:604: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 +out/test/spec/address.wast:606: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/address.wast:607: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/address.wast:609: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536 +out/test/spec/address.wast:610: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +256/256 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/break-drop.txt b/test/spec/break-drop.txt deleted file mode 100644 index f3d49454..00000000 --- a/test/spec/break-drop.txt +++ /dev/null @@ -1,5 +0,0 @@ -;;; TOOL: run-interp-spec -;;; STDIN_FILE: third_party/testsuite/break-drop.wast -(;; STDOUT ;;; -3/3 tests passed. -;;; STDOUT ;;) diff --git a/test/spec/bulk-memory-operations/binary.txt b/test/spec/bulk-memory-operations/binary.txt index 69430f69..a072beba 100644 --- a/test/spec/bulk-memory-operations/binary.txt +++ b/test/spec/bulk-memory-operations/binary.txt @@ -140,7 +140,7 @@ out/test/spec/bulk-memory-operations/binary.wast:725: assert_malformed passed: 0000024: error: expected ref.null or ref.func in passive element segment 0000025: error: expected END opcode after element expression out/test/spec/bulk-memory-operations/binary.wast:751: assert_malformed passed: - 0000022: error: segment elem expr type must be a reference type (got i32) + 0000022: error: table elem type must be a reference type out/test/spec/bulk-memory-operations/binary.wast:832: assert_malformed passed: 000000a: error: invalid section size: extends past end out/test/spec/bulk-memory-operations/binary.wast:843: assert_malformed passed: diff --git a/test/spec/bulk-memory-operations/linking.txt b/test/spec/bulk-memory-operations/linking.txt index d9a5b0ac..b1f24953 100644 --- a/test/spec/bulk-memory-operations/linking.txt +++ b/test/spec/bulk-memory-operations/linking.txt @@ -29,7 +29,8 @@ out/test/spec/bulk-memory-operations/linking.wast:190: assert_trap passed: undef out/test/spec/bulk-memory-operations/linking.wast:216: assert_unlinkable passed: error: invalid import "Mt.mem" out/test/spec/bulk-memory-operations/linking.wast:225: assert_trap passed: uninitialized table element -out/test/spec/bulk-memory-operations/linking.wast:326: assert_unlinkable passed: +out/test/spec/bulk-memory-operations/linking.wast:239: assert_trap passed: uninitialized table element +out/test/spec/bulk-memory-operations/linking.wast:327: assert_unlinkable passed: error: invalid import "Mm.tab" -94/94 tests passed. +96/96 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/const.txt b/test/spec/const.txt index abba0401..21bf11aa 100644 --- a/test/spec/const.txt +++ b/test/spec/const.txt @@ -109,200 +109,200 @@ out/test/spec/const.wast:140: assert_malformed passed: out/test/spec/const/const.54.wat:1:18: error: unexpected token "0x0pA", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f32.const 0x0pA) drop) ^^^^^ -out/test/spec/const.wast:170: assert_malformed passed: - out/test/spec/const/const.79.wat:1:17: error: unexpected token ")", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:185: assert_malformed passed: + out/test/spec/const/const.91.wat:1:17: error: unexpected token ")", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const) drop) ^ -out/test/spec/const.wast:174: assert_malformed passed: - out/test/spec/const/const.80.wat:1:18: error: unexpected token ".0", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:189: assert_malformed passed: + out/test/spec/const/const.92.wat:1:18: error: unexpected token ".0", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const .0) drop) ^^ -out/test/spec/const.wast:178: assert_malformed passed: - out/test/spec/const/const.81.wat:1:18: error: unexpected token ".0e0", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:193: assert_malformed passed: + out/test/spec/const/const.93.wat:1:18: error: unexpected token ".0e0", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const .0e0) drop) ^^^^ -out/test/spec/const.wast:182: assert_malformed passed: - out/test/spec/const/const.82.wat:1:18: error: unexpected token "0e", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:197: assert_malformed passed: + out/test/spec/const/const.94.wat:1:18: error: unexpected token "0e", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0e) drop) ^^ -out/test/spec/const.wast:186: assert_malformed passed: - out/test/spec/const/const.83.wat:1:18: error: unexpected token "0e+", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:201: assert_malformed passed: + out/test/spec/const/const.95.wat:1:18: error: unexpected token "0e+", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0e+) drop) ^^^ -out/test/spec/const.wast:190: assert_malformed passed: - out/test/spec/const/const.84.wat:1:18: error: unexpected token "0.0e", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:205: assert_malformed passed: + out/test/spec/const/const.96.wat:1:18: error: unexpected token "0.0e", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0.0e) drop) ^^^^ -out/test/spec/const.wast:194: assert_malformed passed: - out/test/spec/const/const.85.wat:1:18: error: unexpected token "0.0e-", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:209: assert_malformed passed: + out/test/spec/const/const.97.wat:1:18: error: unexpected token "0.0e-", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0.0e-) drop) ^^^^^ -out/test/spec/const.wast:198: assert_malformed passed: - out/test/spec/const/const.86.wat:1:18: error: unexpected token "0x", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:213: assert_malformed passed: + out/test/spec/const/const.98.wat:1:18: error: unexpected token "0x", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x) drop) ^^ -out/test/spec/const.wast:202: assert_malformed passed: - out/test/spec/const/const.87.wat:1:18: error: unexpected token "1x", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:217: assert_malformed passed: + out/test/spec/const/const.99.wat:1:18: error: unexpected token "1x", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 1x) drop) ^^ -out/test/spec/const.wast:206: assert_malformed passed: - out/test/spec/const/const.88.wat:1:18: error: unexpected token "0xg", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:221: assert_malformed passed: + out/test/spec/const/const.100.wat:1:18: error: unexpected token "0xg", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0xg) drop) ^^^ -out/test/spec/const.wast:210: assert_malformed passed: - out/test/spec/const/const.89.wat:1:18: error: unexpected token "0x.", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:225: assert_malformed passed: + out/test/spec/const/const.101.wat:1:18: error: unexpected token "0x.", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x.) drop) ^^^ -out/test/spec/const.wast:214: assert_malformed passed: - out/test/spec/const/const.90.wat:1:18: error: unexpected token "0x0.g", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:229: assert_malformed passed: + out/test/spec/const/const.102.wat:1:18: error: unexpected token "0x0.g", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x0.g) drop) ^^^^^ -out/test/spec/const.wast:218: assert_malformed passed: - out/test/spec/const/const.91.wat:1:18: error: unexpected token "0x0p", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:233: assert_malformed passed: + out/test/spec/const/const.103.wat:1:18: error: unexpected token "0x0p", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x0p) drop) ^^^^ -out/test/spec/const.wast:222: assert_malformed passed: - out/test/spec/const/const.92.wat:1:18: error: unexpected token "0x0p+", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:237: assert_malformed passed: + out/test/spec/const/const.104.wat:1:18: error: unexpected token "0x0p+", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x0p+) drop) ^^^^^ -out/test/spec/const.wast:226: assert_malformed passed: - out/test/spec/const/const.93.wat:1:18: error: unexpected token "0x0p-", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:241: assert_malformed passed: + out/test/spec/const/const.105.wat:1:18: error: unexpected token "0x0p-", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x0p-) drop) ^^^^^ -out/test/spec/const.wast:230: assert_malformed passed: - out/test/spec/const/const.94.wat:1:18: error: unexpected token "0x0.0p", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:245: assert_malformed passed: + out/test/spec/const/const.106.wat:1:18: error: unexpected token "0x0.0p", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x0.0p) drop) ^^^^^^ -out/test/spec/const.wast:234: assert_malformed passed: - out/test/spec/const/const.95.wat:1:18: error: unexpected token "0x0.0p+", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:249: assert_malformed passed: + out/test/spec/const/const.107.wat:1:18: error: unexpected token "0x0.0p+", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x0.0p+) drop) ^^^^^^^ -out/test/spec/const.wast:238: assert_malformed passed: - out/test/spec/const/const.96.wat:1:18: error: unexpected token "0x0.0p-", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:253: assert_malformed passed: + out/test/spec/const/const.108.wat:1:18: error: unexpected token "0x0.0p-", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x0.0p-) drop) ^^^^^^^ -out/test/spec/const.wast:242: assert_malformed passed: - out/test/spec/const/const.97.wat:1:18: error: unexpected token "0x0pA", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:257: assert_malformed passed: + out/test/spec/const/const.109.wat:1:18: error: unexpected token "0x0pA", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const 0x0pA) drop) ^^^^^ -out/test/spec/const.wast:252: assert_malformed passed: - out/test/spec/const/const.100.wat:1:18: error: invalid literal "0x100000000" +out/test/spec/const.wast:267: assert_malformed passed: + out/test/spec/const/const.112.wat:1:18: error: invalid literal "0x100000000" (func (i32.const 0x100000000) drop) ^^^^^^^^^^^ -out/test/spec/const.wast:256: assert_malformed passed: - out/test/spec/const/const.101.wat:1:18: error: invalid literal "-0x80000001" +out/test/spec/const.wast:271: assert_malformed passed: + out/test/spec/const/const.113.wat:1:18: error: invalid literal "-0x80000001" (func (i32.const -0x80000001) drop) ^^^^^^^^^^^ -out/test/spec/const.wast:263: assert_malformed passed: - out/test/spec/const/const.104.wat:1:18: error: invalid literal "4294967296" +out/test/spec/const.wast:278: assert_malformed passed: + out/test/spec/const/const.116.wat:1:18: error: invalid literal "4294967296" (func (i32.const 4294967296) drop) ^^^^^^^^^^ -out/test/spec/const.wast:267: assert_malformed passed: - out/test/spec/const/const.105.wat:1:18: error: invalid literal "-2147483649" +out/test/spec/const.wast:282: assert_malformed passed: + out/test/spec/const/const.117.wat:1:18: error: invalid literal "-2147483649" (func (i32.const -2147483649) drop) ^^^^^^^^^^^ -out/test/spec/const.wast:274: assert_malformed passed: - out/test/spec/const/const.108.wat:1:18: error: invalid literal "0x10000000000000000" +out/test/spec/const.wast:289: assert_malformed passed: + out/test/spec/const/const.120.wat:1:18: error: invalid literal "0x10000000000000000" (func (i64.const 0x10000000000000000) drop) ^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:278: assert_malformed passed: - out/test/spec/const/const.109.wat:1:18: error: invalid literal "-0x8000000000000001" +out/test/spec/const.wast:293: assert_malformed passed: + out/test/spec/const/const.121.wat:1:18: error: invalid literal "-0x8000000000000001" (func (i64.const -0x8000000000000001) drop) ^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:285: assert_malformed passed: - out/test/spec/const/const.112.wat:1:18: error: invalid literal "18446744073709551616" +out/test/spec/const.wast:300: assert_malformed passed: + out/test/spec/const/const.124.wat:1:18: error: invalid literal "18446744073709551616" (func (i64.const 18446744073709551616) drop) ^^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:289: assert_malformed passed: - out/test/spec/const/const.113.wat:1:18: error: invalid literal "-9223372036854775809" +out/test/spec/const.wast:304: assert_malformed passed: + out/test/spec/const/const.125.wat:1:18: error: invalid literal "-9223372036854775809" (func (i64.const -9223372036854775809) drop) ^^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:304: assert_malformed passed: - out/test/spec/const/const.124.wat:1:18: error: invalid literal "0x1p128" +out/test/spec/const.wast:319: assert_malformed passed: + out/test/spec/const/const.136.wat:1:18: error: invalid literal "0x1p128" (func (f32.const 0x1p128) drop) ^^^^^^^ -out/test/spec/const.wast:308: assert_malformed passed: - out/test/spec/const/const.125.wat:1:18: error: invalid literal "-0x1p128" +out/test/spec/const.wast:323: assert_malformed passed: + out/test/spec/const/const.137.wat:1:18: error: invalid literal "-0x1p128" (func (f32.const -0x1p128) drop) ^^^^^^^^ -out/test/spec/const.wast:312: assert_malformed passed: - out/test/spec/const/const.126.wat:1:18: error: invalid literal "0x1.ffffffp127" +out/test/spec/const.wast:327: assert_malformed passed: + out/test/spec/const/const.138.wat:1:18: error: invalid literal "0x1.ffffffp127" (func (f32.const 0x1.ffffffp127) drop) ^^^^^^^^^^^^^^ -out/test/spec/const.wast:316: assert_malformed passed: - out/test/spec/const/const.127.wat:1:18: error: invalid literal "-0x1.ffffffp127" +out/test/spec/const.wast:331: assert_malformed passed: + out/test/spec/const/const.139.wat:1:18: error: invalid literal "-0x1.ffffffp127" (func (f32.const -0x1.ffffffp127) drop) ^^^^^^^^^^^^^^^ -out/test/spec/const.wast:323: assert_malformed passed: - out/test/spec/const/const.130.wat:1:18: error: invalid literal "1e39" +out/test/spec/const.wast:338: assert_malformed passed: + out/test/spec/const/const.142.wat:1:18: error: invalid literal "1e39" (func (f32.const 1e39) drop) ^^^^ -out/test/spec/const.wast:327: assert_malformed passed: - out/test/spec/const/const.131.wat:1:18: error: invalid literal "-1e39" +out/test/spec/const.wast:342: assert_malformed passed: + out/test/spec/const/const.143.wat:1:18: error: invalid literal "-1e39" (func (f32.const -1e39) drop) ^^^^^ -out/test/spec/const.wast:334: assert_malformed passed: - out/test/spec/const/const.134.wat:1:18: error: invalid literal "340282356779733661637539395458142568448" +out/test/spec/const.wast:349: assert_malformed passed: + out/test/spec/const/const.146.wat:1:18: error: invalid literal "340282356779733661637539395458142568448" (func (f32.const 340282356779733661637539395458142568448) drop) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:338: assert_malformed passed: - out/test/spec/const/const.135.wat:1:18: error: invalid literal "-340282356779733661637539395458142568448" +out/test/spec/const.wast:353: assert_malformed passed: + out/test/spec/const/const.147.wat:1:18: error: invalid literal "-340282356779733661637539395458142568448" (func (f32.const -340282356779733661637539395458142568448) drop) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:351: assert_malformed passed: - out/test/spec/const/const.144.wat:1:18: error: invalid literal "0x1p1024" +out/test/spec/const.wast:366: assert_malformed passed: + out/test/spec/const/const.156.wat:1:18: error: invalid literal "0x1p1024" (func (f64.const 0x1p1024) drop) ^^^^^^^^ -out/test/spec/const.wast:355: assert_malformed passed: - out/test/spec/const/const.145.wat:1:18: error: invalid literal "-0x1p1024" +out/test/spec/const.wast:370: assert_malformed passed: + out/test/spec/const/const.157.wat:1:18: error: invalid literal "-0x1p1024" (func (f64.const -0x1p1024) drop) ^^^^^^^^^ -out/test/spec/const.wast:359: assert_malformed passed: - out/test/spec/const/const.146.wat:1:18: error: invalid literal "0x1.fffffffffffff8p1023" +out/test/spec/const.wast:374: assert_malformed passed: + out/test/spec/const/const.158.wat:1:18: error: invalid literal "0x1.fffffffffffff8p1023" (func (f64.const 0x1.fffffffffffff8p1023) drop) ^^^^^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:363: assert_malformed passed: - out/test/spec/const/const.147.wat:1:18: error: invalid literal "-0x1.fffffffffffff8p1023" +out/test/spec/const.wast:378: assert_malformed passed: + out/test/spec/const/const.159.wat:1:18: error: invalid literal "-0x1.fffffffffffff8p1023" (func (f64.const -0x1.fffffffffffff8p1023) drop) ^^^^^^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:370: assert_malformed passed: - out/test/spec/const/const.150.wat:1:18: error: invalid literal "1e309" +out/test/spec/const.wast:385: assert_malformed passed: + out/test/spec/const/const.162.wat:1:18: error: invalid literal "1e309" (func (f64.const 1e309) drop) ^^^^^ -out/test/spec/const.wast:374: assert_malformed passed: - out/test/spec/const/const.151.wat:1:18: error: invalid literal "-1e309" +out/test/spec/const.wast:389: assert_malformed passed: + out/test/spec/const/const.163.wat:1:18: error: invalid literal "-1e309" (func (f64.const -1e309) drop) ^^^^^^ -out/test/spec/const.wast:381: assert_malformed passed: - out/test/spec/const/const.154.wat:1:18: error: invalid literal "269653970229347356221791135597556535197105851288767494898376215204735891170042808140884337949150317257310688430271573696351481990334196274152701320055306275479074865864826923114368235135583993416113802762682700913456874855354834422248712838998185022412196739306217084753107265771378949821875606039276187287552" +out/test/spec/const.wast:396: assert_malformed passed: + out/test/spec/const/const.166.wat:1:18: error: invalid literal "269653970229347356221791135597556535197105851288767494898376215204735891170042808140884337949150317257310688430271573696351481990334196274152701320055306275479074865864826923114368235135583993416113802762682700913456874855354834422248712838998185022412196739306217084753107265771378949821875606039276187287552" (func (f64.const 269653970229347356221791135597556535197105851288767494898376... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:385: assert_malformed passed: - out/test/spec/const/const.155.wat:1:18: error: invalid literal "-269653970229347356221791135597556535197105851288767494898376215204735891170042808140884337949150317257310688430271573696351481990334196274152701320055306275479074865864826923114368235135583993416113802762682700913456874855354834422248712838998185022412196739306217084753107265771378949821875606039276187287552" +out/test/spec/const.wast:400: assert_malformed passed: + out/test/spec/const/const.167.wat:1:18: error: invalid literal "-269653970229347356221791135597556535197105851288767494898376215204735891170042808140884337949150317257310688430271573696351481990334196274152701320055306275479074865864826923114368235135583993416113802762682700913456874855354834422248712838998185022412196739306217084753107265771378949821875606039276187287552" (func (f64.const -26965397022934735622179113559755653519710585128876749489837... ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -out/test/spec/const.wast:395: assert_malformed passed: - out/test/spec/const/const.160.wat:1:18: error: unexpected token "nan:1", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:410: assert_malformed passed: + out/test/spec/const/const.172.wat:1:18: error: unexpected token "nan:1", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f32.const nan:1) drop) ^^^^^ -out/test/spec/const.wast:399: assert_malformed passed: - out/test/spec/const/const.161.wat:1:18: error: unexpected token "nan:1", expected a numeric literal (e.g. 123, -45, 6.7e8). +out/test/spec/const.wast:414: assert_malformed passed: + out/test/spec/const/const.173.wat:1:18: error: unexpected token "nan:1", expected a numeric literal (e.g. 123, -45, 6.7e8). (func (f64.const nan:1) drop) ^^^^^ -out/test/spec/const.wast:404: assert_malformed passed: - out/test/spec/const/const.162.wat:1:18: error: invalid literal "nan:0x0" +out/test/spec/const.wast:419: assert_malformed passed: + out/test/spec/const/const.174.wat:1:18: error: invalid literal "nan:0x0" (func (f32.const nan:0x0) drop) ^^^^^^^ -out/test/spec/const.wast:408: assert_malformed passed: - out/test/spec/const/const.163.wat:1:18: error: invalid literal "nan:0x0" +out/test/spec/const.wast:423: assert_malformed passed: + out/test/spec/const/const.175.wat:1:18: error: invalid literal "nan:0x0" (func (f64.const nan:0x0) drop) ^^^^^^^ -out/test/spec/const.wast:413: assert_malformed passed: - out/test/spec/const/const.164.wat:1:18: error: invalid literal "nan:0x80_0000" +out/test/spec/const.wast:428: assert_malformed passed: + out/test/spec/const/const.176.wat:1:18: error: invalid literal "nan:0x80_0000" (func (f32.const nan:0x80_0000) drop) ^^^^^^^^^^^^^ -out/test/spec/const.wast:417: assert_malformed passed: - out/test/spec/const/const.165.wat:1:18: error: invalid literal "nan:0x10_0000_0000_0000" +out/test/spec/const.wast:432: assert_malformed passed: + out/test/spec/const/const.177.wat:1:18: error: invalid literal "nan:0x10_0000_0000_0000" (func (f64.const nan:0x10_0000_0000_0000) drop) ^^^^^^^^^^^^^^^^^^^^^^^ 376/376 tests passed. diff --git a/test/spec/globals.txt b/test/spec/globals.txt deleted file mode 100644 index 47c42bc4..00000000 --- a/test/spec/globals.txt +++ /dev/null @@ -1,77 +0,0 @@ -;;; TOOL: run-interp-spec -;;; STDIN_FILE: third_party/testsuite/globals.wast -(;; STDOUT ;;; -out/test/spec/globals.wast:221: assert_trap passed: undefined table index -out/test/spec/globals.wast:243: assert_invalid passed: - error: can't global.set on immutable global at index 0. - 0000029: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:252: assert_invalid passed: - 0000013: error: expected END opcode after initializer expression -out/test/spec/globals.wast:257: assert_invalid passed: - 000000e: error: unexpected opcode in initializer expression: 0x20 -out/test/spec/globals.wast:262: assert_invalid passed: - 0000013: error: expected END opcode after initializer expression -out/test/spec/globals.wast:267: assert_invalid passed: - 0000010: error: expected END opcode after initializer expression -out/test/spec/globals.wast:272: assert_invalid passed: - 000000e: error: unexpected opcode in initializer expression: 0x1 -out/test/spec/globals.wast:277: assert_invalid passed: - error: type mismatch at global initializer expression. got f32, expected i32 - 0000013: error: EndGlobalInitExpr callback failed -out/test/spec/globals.wast:282: assert_invalid passed: - 0000010: error: expected END opcode after initializer expression -out/test/spec/globals.wast:287: assert_invalid passed: - error: invalid global initializer expression, must be a constant expression - 000000e: error: EndGlobalInitExpr callback failed -out/test/spec/globals.wast:292: assert_invalid passed: - 0000000: error: initializer expression can only reference an imported global - 0000010: error: EndGlobalInitExpr callback failed -out/test/spec/globals.wast:297: assert_invalid passed: - 0000000: error: global variable out of range: 1 (max 1) - 0000010: error: EndGlobalInitExpr callback failed -out/test/spec/globals.wast:305: assert_malformed passed: - 0000026: error: global mutability must be 0 or 1 -out/test/spec/globals.wast:318: assert_malformed passed: - 0000026: error: global mutability must be 0 or 1 -out/test/spec/globals.wast:335: assert_malformed passed: - 0000011: error: global mutability must be 0 or 1 -out/test/spec/globals.wast:347: assert_malformed passed: - 0000011: error: global mutability must be 0 or 1 -out/test/spec/globals.wast:361: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000021: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:370: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:380: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:390: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000027: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:400: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 000002a: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:410: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:420: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:430: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:440: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000021: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:449: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000021: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:458: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000027: error: OnGlobalSetExpr callback failed -out/test/spec/globals.wast:468: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 000003e: error: OnGlobalSetExpr callback failed -73/73 tests passed. -;;; STDOUT ;;) diff --git a/test/spec/reference-types/binary.txt b/test/spec/reference-types/binary.txt index abbf2ba5..be67a936 100644 --- a/test/spec/reference-types/binary.txt +++ b/test/spec/reference-types/binary.txt @@ -88,142 +88,150 @@ out/test/spec/reference-types/binary.wast:290: assert_malformed passed: 000000e: error: unable to read i64 leb128: init_expr i64.const value out/test/spec/reference-types/binary.wast:300: assert_malformed passed: 000000e: error: unable to read i64 leb128: init_expr i64.const value -out/test/spec/reference-types/binary.wast:313: assert_malformed passed: +out/test/spec/reference-types/binary.wast:312: assert_malformed passed: + 000000e: error: unable to read i64 leb128: init_expr i64.const value +out/test/spec/reference-types/binary.wast:322: assert_malformed passed: + 000000e: error: unable to read i64 leb128: init_expr i64.const value +out/test/spec/reference-types/binary.wast:332: assert_malformed passed: + 000000e: error: unable to read i64 leb128: init_expr i64.const value +out/test/spec/reference-types/binary.wast:342: assert_malformed passed: + 000000e: error: unable to read i64 leb128: init_expr i64.const value +out/test/spec/reference-types/binary.wast:355: assert_malformed passed: 000000c: error: unable to read u32 leb128: memory initial page count -out/test/spec/reference-types/binary.wast:321: assert_malformed passed: +out/test/spec/reference-types/binary.wast:363: assert_malformed passed: 0000022: error: unable to read u32 leb128: load offset -out/test/spec/reference-types/binary.wast:340: assert_malformed passed: +out/test/spec/reference-types/binary.wast:382: assert_malformed passed: 0000021: error: unable to read u32 leb128: load alignment -out/test/spec/reference-types/binary.wast:359: assert_malformed passed: +out/test/spec/reference-types/binary.wast:401: assert_malformed passed: 0000023: error: unable to read u32 leb128: store alignment -out/test/spec/reference-types/binary.wast:378: assert_malformed passed: +out/test/spec/reference-types/binary.wast:420: assert_malformed passed: 0000024: error: unable to read u32 leb128: store offset -out/test/spec/reference-types/binary.wast:399: assert_malformed passed: +out/test/spec/reference-types/binary.wast:441: assert_malformed passed: 000000e: error: unable to read i32 leb128: init_expr i32.const value -out/test/spec/reference-types/binary.wast:409: assert_malformed passed: +out/test/spec/reference-types/binary.wast:451: assert_malformed passed: 000000e: error: unable to read i32 leb128: init_expr i32.const value -out/test/spec/reference-types/binary.wast:420: assert_malformed passed: +out/test/spec/reference-types/binary.wast:462: assert_malformed passed: 000000e: error: unable to read i64 leb128: init_expr i64.const value -out/test/spec/reference-types/binary.wast:430: assert_malformed passed: +out/test/spec/reference-types/binary.wast:472: assert_malformed passed: 000000e: error: unable to read i64 leb128: init_expr i64.const value -out/test/spec/reference-types/binary.wast:442: assert_malformed passed: +out/test/spec/reference-types/binary.wast:484: assert_malformed passed: 000000c: error: unable to read u32 leb128: memory initial page count -out/test/spec/reference-types/binary.wast:450: assert_malformed passed: +out/test/spec/reference-types/binary.wast:492: assert_malformed passed: 000000c: error: unable to read u32 leb128: memory initial page count -out/test/spec/reference-types/binary.wast:458: assert_malformed passed: +out/test/spec/reference-types/binary.wast:500: assert_malformed passed: 0000022: error: unable to read u32 leb128: load offset -out/test/spec/reference-types/binary.wast:477: assert_malformed passed: +out/test/spec/reference-types/binary.wast:519: assert_malformed passed: 0000022: error: unable to read u32 leb128: load offset -out/test/spec/reference-types/binary.wast:496: assert_malformed passed: +out/test/spec/reference-types/binary.wast:538: assert_malformed passed: 0000021: error: unable to read u32 leb128: load alignment -out/test/spec/reference-types/binary.wast:514: assert_malformed passed: +out/test/spec/reference-types/binary.wast:556: assert_malformed passed: 0000021: error: unable to read u32 leb128: load alignment -out/test/spec/reference-types/binary.wast:533: assert_malformed passed: +out/test/spec/reference-types/binary.wast:575: assert_malformed passed: 0000023: error: unable to read u32 leb128: store alignment -out/test/spec/reference-types/binary.wast:552: assert_malformed passed: +out/test/spec/reference-types/binary.wast:594: assert_malformed passed: 0000023: error: unable to read u32 leb128: store alignment -out/test/spec/reference-types/binary.wast:571: assert_malformed passed: +out/test/spec/reference-types/binary.wast:613: assert_malformed passed: 0000024: error: unable to read u32 leb128: store offset -out/test/spec/reference-types/binary.wast:590: assert_malformed passed: +out/test/spec/reference-types/binary.wast:632: assert_malformed passed: 0000024: error: unable to read u32 leb128: store offset -out/test/spec/reference-types/binary.wast:612: assert_malformed passed: +out/test/spec/reference-types/binary.wast:654: assert_malformed passed: 000000e: error: unable to read i32 leb128: init_expr i32.const value -out/test/spec/reference-types/binary.wast:622: assert_malformed passed: +out/test/spec/reference-types/binary.wast:664: assert_malformed passed: 000000e: error: unable to read i32 leb128: init_expr i32.const value -out/test/spec/reference-types/binary.wast:632: assert_malformed passed: +out/test/spec/reference-types/binary.wast:674: assert_malformed passed: 000000e: error: unable to read i32 leb128: init_expr i32.const value -out/test/spec/reference-types/binary.wast:642: assert_malformed passed: +out/test/spec/reference-types/binary.wast:684: assert_malformed passed: 000000e: error: unable to read i32 leb128: init_expr i32.const value -out/test/spec/reference-types/binary.wast:653: assert_malformed passed: +out/test/spec/reference-types/binary.wast:695: assert_malformed passed: 000000e: error: unable to read i64 leb128: init_expr i64.const value -out/test/spec/reference-types/binary.wast:663: assert_malformed passed: +out/test/spec/reference-types/binary.wast:705: assert_malformed passed: 000000e: error: unable to read i64 leb128: init_expr i64.const value -out/test/spec/reference-types/binary.wast:673: assert_malformed passed: +out/test/spec/reference-types/binary.wast:715: assert_malformed passed: 000000e: error: unable to read i64 leb128: init_expr i64.const value -out/test/spec/reference-types/binary.wast:683: assert_malformed passed: +out/test/spec/reference-types/binary.wast:725: assert_malformed passed: 000000e: error: unable to read i64 leb128: init_expr i64.const value -out/test/spec/reference-types/binary.wast:695: assert_malformed passed: +out/test/spec/reference-types/binary.wast:737: assert_malformed passed: 0000020: error: memory.grow reserved value must be 0 -out/test/spec/reference-types/binary.wast:715: assert_malformed passed: +out/test/spec/reference-types/binary.wast:757: assert_malformed passed: 0000020: error: memory.grow reserved value must be 0 -out/test/spec/reference-types/binary.wast:735: assert_malformed passed: +out/test/spec/reference-types/binary.wast:777: assert_malformed passed: 0000020: error: memory.grow reserved value must be 0 -out/test/spec/reference-types/binary.wast:754: assert_malformed passed: +out/test/spec/reference-types/binary.wast:796: assert_malformed passed: 0000020: error: memory.grow reserved value must be 0 -out/test/spec/reference-types/binary.wast:773: assert_malformed passed: +out/test/spec/reference-types/binary.wast:815: assert_malformed passed: 0000020: error: memory.grow reserved value must be 0 -out/test/spec/reference-types/binary.wast:793: assert_malformed passed: +out/test/spec/reference-types/binary.wast:835: assert_malformed passed: 000001e: error: memory.size reserved value must be 0 -out/test/spec/reference-types/binary.wast:812: assert_malformed passed: +out/test/spec/reference-types/binary.wast:854: assert_malformed passed: 000001e: error: memory.size reserved value must be 0 -out/test/spec/reference-types/binary.wast:831: assert_malformed passed: +out/test/spec/reference-types/binary.wast:873: assert_malformed passed: 000001e: error: memory.size reserved value must be 0 -out/test/spec/reference-types/binary.wast:849: assert_malformed passed: +out/test/spec/reference-types/binary.wast:891: assert_malformed passed: 000001e: error: memory.size reserved value must be 0 -out/test/spec/reference-types/binary.wast:867: assert_malformed passed: +out/test/spec/reference-types/binary.wast:909: assert_malformed passed: 000001e: error: memory.size reserved value must be 0 -out/test/spec/reference-types/binary.wast:886: assert_malformed passed: +out/test/spec/reference-types/binary.wast:928: assert_malformed passed: 000001c: error: local count must be < 0x10000000 -out/test/spec/reference-types/binary.wast:918: assert_malformed passed: +out/test/spec/reference-types/binary.wast:960: assert_malformed passed: 0000013: error: function signature count != function body count -out/test/spec/reference-types/binary.wast:928: assert_malformed passed: +out/test/spec/reference-types/binary.wast:970: assert_malformed passed: 000000b: error: function signature count != function body count -out/test/spec/reference-types/binary.wast:937: assert_malformed passed: +out/test/spec/reference-types/binary.wast:979: assert_malformed passed: 0000016: error: function signature count != function body count -out/test/spec/reference-types/binary.wast:948: assert_malformed passed: +out/test/spec/reference-types/binary.wast:990: assert_malformed passed: 0000015: error: function signature count != function body count -out/test/spec/reference-types/binary.wast:971: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1013: assert_malformed passed: 000000e: error: data segment count does not equal count in DataCount section -out/test/spec/reference-types/binary.wast:981: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1023: assert_malformed passed: 000000e: error: data segment count does not equal count in DataCount section -out/test/spec/reference-types/binary.wast:991: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1033: assert_malformed passed: 0000024: error: memory.init requires data count section -out/test/spec/reference-types/binary.wast:1013: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1055: assert_malformed passed: 000001e: error: data.drop requires data count section -out/test/spec/reference-types/binary.wast:1032: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1074: assert_malformed passed: 0000024: error: expected ref.null or ref.func in passive element segment 0000025: error: expected END opcode after element expression -out/test/spec/reference-types/binary.wast:1058: assert_malformed passed: - 0000022: error: segment elem expr type must be a reference type (got i32) -out/test/spec/reference-types/binary.wast:1139: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1100: assert_malformed passed: + 0000022: error: table elem type must be a reference type +out/test/spec/reference-types/binary.wast:1181: assert_malformed passed: 000000a: error: invalid section size: extends past end -out/test/spec/reference-types/binary.wast:1150: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1192: assert_malformed passed: 000000e: error: unfinished section (expected end: 0x11) -out/test/spec/reference-types/binary.wast:1169: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1211: assert_malformed passed: 0000027: error: unable to read u32 leb128: string length -out/test/spec/reference-types/binary.wast:1188: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1230: assert_malformed passed: 000002b: error: unfinished section (expected end: 0x40) -out/test/spec/reference-types/binary.wast:1219: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1261: assert_malformed passed: 000000b: error: invalid table count 1, only 0 bytes left in section -out/test/spec/reference-types/binary.wast:1235: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1277: assert_malformed passed: 000000b: error: invalid memory count 1, only 0 bytes left in section -out/test/spec/reference-types/binary.wast:1251: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1293: assert_malformed passed: 0000010: error: unable to read i32 leb128: global type -out/test/spec/reference-types/binary.wast:1262: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1304: assert_malformed passed: 0000010: error: unfinished section (expected end: 0x15) -out/test/spec/reference-types/binary.wast:1285: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1327: assert_malformed passed: 000001b: error: unable to read u32 leb128: string length -out/test/spec/reference-types/binary.wast:1306: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1348: assert_malformed passed: 000001b: error: unfinished section (expected end: 0x20) -out/test/spec/reference-types/binary.wast:1340: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1382: assert_malformed passed: 0000021: error: unable to read u32 leb128: elem segment flags -out/test/spec/reference-types/binary.wast:1358: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1400: assert_malformed passed: 0000021: error: unfinished section (expected end: 0x27) -out/test/spec/reference-types/binary.wast:1384: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1426: assert_malformed passed: 0000016: error: unable to read u32 leb128: data segment flags -out/test/spec/reference-types/binary.wast:1397: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1439: assert_malformed passed: 0000016: error: unfinished section (expected end: 0x1c) -out/test/spec/reference-types/binary.wast:1410: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1452: assert_malformed passed: 0000015: error: unable to read data: data segment data -out/test/spec/reference-types/binary.wast:1424: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1466: assert_malformed passed: 000001a: error: unfinished section (expected end: 0x1b) -out/test/spec/reference-types/binary.wast:1455: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1497: assert_malformed passed: error: invalid depth: 11 (max 2) 0000024: error: OnBrTableExpr callback failed -out/test/spec/reference-types/binary.wast:1477: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1519: assert_malformed passed: error: function type variable out of range: 11 (max 1) 0000025: error: OnBlockExpr callback failed -out/test/spec/reference-types/binary.wast:1512: assert_malformed passed: +out/test/spec/reference-types/binary.wast:1554: assert_malformed passed: 0000017: error: multiple Start sections -110/110 tests passed. +114/114 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/br_table.txt b/test/spec/reference-types/br_table.txt index 0c051746..ed01617e 100644 --- a/test/spec/reference-types/br_table.txt +++ b/test/spec/reference-types/br_table.txt @@ -2,71 +2,71 @@ ;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/br_table.wast ;;; ARGS*: --enable-reference-types (;; STDOUT ;;; -out/test/spec/reference-types/br_table.wast:1513: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1441: assert_invalid passed: error: type mismatch in block, expected [] but got [i32] 0000022: error: OnEndExpr callback failed -out/test/spec/reference-types/br_table.wast:1520: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1448: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [] 000001d: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1527: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1455: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [] 0000020: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1533: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1461: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [i64] 0000023: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1541: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1469: assert_invalid passed: error: br_table labels have inconsistent arity: expected 1 got 0 0000026: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1553: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1481: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [] 000001f: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1559: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1487: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [i64] 000001e: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1565: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1493: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [] 0000021: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1571: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1499: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [] 0000023: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1577: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1505: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [... i64] 0000022: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1586: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1514: assert_invalid passed: error: type mismatch in block, expected [] but got [i32] 0000022: error: OnEndExpr callback failed -out/test/spec/reference-types/br_table.wast:1593: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1521: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [] 0000022: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1605: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1533: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [] 0000024: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1617: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1545: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [] 000001c: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1628: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1556: assert_invalid passed: error: type mismatch in br_table, expected [i32] but got [] 000001e: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1640: assert_invalid passed: - error: type mismatch in br_table, expected [i32] but got [nullref] - 0000025: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1654: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1569: assert_invalid passed: + error: type mismatch in br_table, expected [i32] but got [externref] + 0000026: error: OnBrTableExpr callback failed +out/test/spec/reference-types/br_table.wast:1583: assert_invalid passed: error: invalid depth: 2 (max 1) 000001f: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1660: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1589: assert_invalid passed: error: invalid depth: 5 (max 2) 0000021: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1666: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1595: assert_invalid passed: error: invalid depth: 268435457 (max 1) 0000024: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1673: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1602: assert_invalid passed: error: invalid depth: 2 (max 1) 000001f: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1679: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1608: assert_invalid passed: error: invalid depth: 5 (max 2) 0000021: error: OnBrTableExpr callback failed -out/test/spec/reference-types/br_table.wast:1685: assert_invalid passed: +out/test/spec/reference-types/br_table.wast:1614: assert_invalid passed: error: invalid depth: 268435457 (max 1) 0000024: error: OnBrTableExpr callback failed -183/183 tests passed. +171/171 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/bulk.txt b/test/spec/reference-types/bulk.txt index 5654e147..f9308ccb 100644 --- a/test/spec/reference-types/bulk.txt +++ b/test/spec/reference-types/bulk.txt @@ -32,22 +32,22 @@ init_passive(i32:0) => drop_active() => out/test/spec/reference-types/bulk.wast:176: assert_trap passed: out of bounds memory access: memory.init out of bounds init_active(i32:0) => -out/test/spec/reference-types/bulk.wast:201: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/bulk.wast:203: assert_trap passed: uninitialized table element +out/test/spec/reference-types/bulk.wast:219: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/bulk.wast:221: assert_trap passed: uninitialized table element init(i32:0, i32:1, i32:2) => -out/test/spec/reference-types/bulk.wast:209: assert_trap passed: uninitialized table element +out/test/spec/reference-types/bulk.wast:227: assert_trap passed: uninitialized table element init(i32:1, i32:2, i32:2) => init(i32:3, i32:0, i32:0) => init(i32:0, i32:4, i32:0) => -out/test/spec/reference-types/bulk.wast:219: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/bulk.wast:221: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/bulk.wast:237: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/bulk.wast:239: assert_trap passed: out of bounds table access: table.init out of bounds init_passive(i32:1) => drop_passive() => drop_passive() => -out/test/spec/reference-types/bulk.wast:247: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/bulk.wast:265: assert_trap passed: out of bounds table access: table.init out of bounds init_passive(i32:0) => drop_active() => -out/test/spec/reference-types/bulk.wast:251: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/bulk.wast:269: assert_trap passed: out of bounds table access: table.init out of bounds init_active(i32:0) => copy(i32:3, i32:0, i32:3) => copy(i32:0, i32:1, i32:3) => @@ -56,7 +56,7 @@ copy(i32:6, i32:8, i32:2) => copy(i32:8, i32:6, i32:2) => copy(i32:10, i32:0, i32:0) => copy(i32:0, i32:10, i32:0) => -out/test/spec/reference-types/bulk.wast:304: assert_trap passed: out of bounds table access: table.copy out of bounds -out/test/spec/reference-types/bulk.wast:306: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/bulk.wast:348: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/bulk.wast:350: assert_trap passed: out of bounds table access: table.copy out of bounds 104/104 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/call_indirect.txt b/test/spec/reference-types/call_indirect.txt new file mode 100644 index 00000000..88b98a58 --- /dev/null +++ b/test/spec/reference-types/call_indirect.txt @@ -0,0 +1,155 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/call_indirect.wast +;;; ARGS*: --enable-reference-types +(;; STDOUT ;;; +out/test/spec/reference-types/call_indirect.wast:498: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:499: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:500: assert_trap passed: undefined table index +out/test/spec/reference-types/call_indirect.wast:501: assert_trap passed: undefined table index +out/test/spec/reference-types/call_indirect.wast:502: assert_trap passed: undefined table index +out/test/spec/reference-types/call_indirect.wast:508: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:509: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:515: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:516: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:522: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:523: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:529: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:530: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:652: assert_trap passed: undefined table index +out/test/spec/reference-types/call_indirect.wast:657: assert_trap passed: undefined table index +out/test/spec/reference-types/call_indirect.wast:661: assert_trap passed: uninitialized table element +out/test/spec/reference-types/call_indirect.wast:662: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/call_indirect.wast:663: assert_trap passed: undefined table index +out/test/spec/reference-types/call_indirect.wast:669: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.2.wat:1:122: error: unexpected token "param", expected an expr. + ...indirect (type $sig) (result i32) (param i32) (i32.const 0) (i32.const ... + ^^^^^ + out/test/spec/reference-types/call_indirect/call_indirect.2.wat:1:166: error: unexpected token ), expected EOF. + ...irect (type $sig) (result i32) (param i32) (i32.const 0) (i32.const 0) )) + ^ +out/test/spec/reference-types/call_indirect.wast:681: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.3.wat:1:109: error: unexpected token "type", expected an expr. + ... i32) (call_indirect (param i32) (type $sig) (result i32) (i32.const 0... + ^^^^ + out/test/spec/reference-types/call_indirect/call_indirect.3.wat:1:166: error: unexpected token ), expected EOF. + ...irect (param i32) (type $sig) (result i32) (i32.const 0) (i32.const 0) )) + ^ +out/test/spec/reference-types/call_indirect.wast:693: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.4.wat:1:122: error: unexpected token "type", expected an expr. + ...indirect (param i32) (result i32) (type $sig) (i32.const 0) (i32.const ... + ^^^^ + out/test/spec/reference-types/call_indirect/call_indirect.4.wat:1:166: error: unexpected token ), expected EOF. + ...irect (param i32) (result i32) (type $sig) (i32.const 0) (i32.const 0) )) + ^ +out/test/spec/reference-types/call_indirect.wast:705: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.5.wat:1:110: error: unexpected token "type", expected an expr. + ...i32) (call_indirect (result i32) (type $sig) (param i32) (i32.const 0)... + ^^^^ + out/test/spec/reference-types/call_indirect/call_indirect.5.wat:1:166: error: unexpected token ), expected EOF. + ...irect (result i32) (type $sig) (param i32) (i32.const 0) (i32.const 0) )) + ^ +out/test/spec/reference-types/call_indirect.wast:717: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.6.wat:1:110: error: unexpected token "param", expected an expr. + ...i32) (call_indirect (result i32) (param i32) (type $sig) (i32.const 0)... + ^^^^^ + out/test/spec/reference-types/call_indirect/call_indirect.6.wat:1:166: error: unexpected token ), expected EOF. + ...irect (result i32) (param i32) (type $sig) (i32.const 0) (i32.const 0) )) + ^ +out/test/spec/reference-types/call_indirect.wast:729: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.7.wat:1:67: error: unexpected token "param", expected an expr. + ...t i32) (call_indirect (result i32) (param i32) (i32.const 0) (i32.const 0))) + ^^^^^ + out/test/spec/reference-types/call_indirect/call_indirect.7.wat:1:106: error: unexpected token ), expected EOF. + ...t i32) (call_indirect (result i32) (param i32) (i32.const 0) (i32.const 0))) + ^ +out/test/spec/reference-types/call_indirect.wast:739: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.8.wat:1:46: error: unexpected token $x, expected ). + ...e 0 funcref)(func (call_indirect (param $x i32) (i32.const 0) (i32.const 0))) + ^^ + out/test/spec/reference-types/call_indirect/call_indirect.8.wat:1:82: error: unexpected token ), expected EOF. + ...e 0 funcref)(func (call_indirect (param $x i32) (i32.const 0) (i32.const 0))) + ^ +out/test/spec/reference-types/call_indirect.wast:746: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.9.wat:1:57: error: expected 0 results, got 1 + ...0 funcref)(func (result i32) (call_indirect (type $sig) (result i32) (i32... + ^^^^^^^^^^^^^ +out/test/spec/reference-types/call_indirect.wast:756: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.10.wat:1:82: error: expected 1 arguments, got 0 + ...0 funcref)(func (result i32) (call_indirect (type $sig) (result i32) (i32... + ^^^^^^^^^^^^^ +out/test/spec/reference-types/call_indirect.wast:766: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.11.wat:1:69: error: expected 1 results, got 0 + ...i32)))(table 0 funcref)(func (call_indirect (type $sig) (param i32) (i32.... + ^^^^^^^^^^^^^ +out/test/spec/reference-types/call_indirect.wast:776: assert_malformed passed: + out/test/spec/reference-types/call_indirect/call_indirect.12.wat:1:86: error: expected 2 arguments, got 1 + ...0 funcref)(func (result i32) (call_indirect (type $sig) (param i32) (resu... + ^^^^^^^^^^^^^ +out/test/spec/reference-types/call_indirect.wast:791: assert_invalid passed: + 0000000: error: table variable out of range: 0 (max 0) + 000001c: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:799: assert_invalid passed: + error: type mismatch in i32.eqz, expected [i32] but got [] + 0000023: error: OnConvertExpr callback failed +out/test/spec/reference-types/call_indirect.wast:807: assert_invalid passed: + error: type mismatch in i32.eqz, expected [i32] but got [i64] + 0000027: error: OnConvertExpr callback failed +out/test/spec/reference-types/call_indirect.wast:816: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32] but got [] + 0000026: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:824: assert_invalid passed: + error: type mismatch in call_indirect, expected [f64, i32] but got [] + 0000027: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:832: assert_invalid passed: + error: type mismatch in function, expected [] but got [i32] + 0000025: error: EndFunctionBody callback failed +out/test/spec/reference-types/call_indirect.wast:840: assert_invalid passed: + error: type mismatch in function, expected [] but got [f64, i32] + 000002e: error: EndFunctionBody callback failed +out/test/spec/reference-types/call_indirect.wast:851: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32] but got [] + 0000027: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:859: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32] but got [... i64] + 0000028: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:868: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32, i32] but got [i32] + 000002a: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:878: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32, i32] but got [i32] + 000002a: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:888: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32, f64] but got [f64, i32] + 0000032: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:898: assert_invalid passed: + error: type mismatch in call_indirect, expected [f64, i32] but got [i32, f64] + 0000032: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:909: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32] but got [] + 0000036: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:922: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32, i32] but got [i32] + 0000039: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:935: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32] but got [] + 0000036: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:948: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32, i32] but got [i32] + 0000039: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:961: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32] but got [] + 000003a: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:977: assert_invalid passed: + error: type mismatch in call_indirect, expected [i32, i32] but got [i32] + 000003d: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:997: assert_invalid passed: + 0000000: error: function type variable out of range: 1 (max 1) + 0000022: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:1004: assert_invalid passed: + 0000000: error: function type variable out of range: 1012321300 (max 1) + 0000026: error: OnCallIndirectExpr callback failed +out/test/spec/reference-types/call_indirect.wast:1015: assert_invalid passed: + 0000000: error: function variable out of range: 0 (max 0) + 0000018: error: OnElemSegmentElemExpr_RefFunc callback failed +167/167 tests passed. +;;; STDOUT ;;) diff --git a/test/spec/reference-types/global.txt b/test/spec/reference-types/global.txt new file mode 100644 index 00000000..c9958632 --- /dev/null +++ b/test/spec/reference-types/global.txt @@ -0,0 +1,93 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/global.wast +;;; ARGS*: --enable-reference-types +(;; STDOUT ;;; +out/test/spec/reference-types/global.wast:226: assert_trap passed: undefined table index +out/test/spec/reference-types/global.wast:248: assert_invalid passed: + error: can't global.set on immutable global at index 0. + 0000029: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:257: assert_invalid passed: + 0000013: error: expected END opcode after initializer expression +out/test/spec/reference-types/global.wast:262: assert_invalid passed: + 000000e: error: unexpected opcode in initializer expression: 0x20 +out/test/spec/reference-types/global.wast:267: assert_invalid passed: + 0000013: error: expected END opcode after initializer expression +out/test/spec/reference-types/global.wast:272: assert_invalid passed: + 0000010: error: expected END opcode after initializer expression +out/test/spec/reference-types/global.wast:277: assert_invalid passed: + 000000e: error: unexpected opcode in initializer expression: 0x1 +out/test/spec/reference-types/global.wast:282: assert_invalid passed: + error: type mismatch at global initializer expression. got f32, expected i32 + 0000013: error: EndGlobalInitExpr callback failed +out/test/spec/reference-types/global.wast:287: assert_invalid passed: + 0000010: error: expected END opcode after initializer expression +out/test/spec/reference-types/global.wast:292: assert_invalid passed: + error: invalid global initializer expression, must be a constant expression + 000000e: error: EndGlobalInitExpr callback failed +out/test/spec/reference-types/global.wast:297: assert_invalid passed: + error: type mismatch at global initializer expression. got externref, expected funcref + 0000018: error: EndGlobalInitExpr callback failed +out/test/spec/reference-types/global.wast:302: assert_invalid passed: + 0000000: error: initializer expression can only reference an imported global + 0000010: error: EndGlobalInitExpr callback failed +out/test/spec/reference-types/global.wast:307: assert_invalid passed: + 0000000: error: global variable out of range: 1 (max 1) + 0000010: error: EndGlobalInitExpr callback failed +out/test/spec/reference-types/global.wast:315: assert_malformed passed: + 0000026: error: global mutability must be 0 or 1 +out/test/spec/reference-types/global.wast:328: assert_malformed passed: + 0000026: error: global mutability must be 0 or 1 +out/test/spec/reference-types/global.wast:345: assert_malformed passed: + 0000011: error: global mutability must be 0 or 1 +out/test/spec/reference-types/global.wast:357: assert_malformed passed: + 0000011: error: global mutability must be 0 or 1 +out/test/spec/reference-types/global.wast:371: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000021: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:380: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000025: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:390: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000025: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:400: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000027: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:410: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 000002a: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:420: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000025: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:430: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000025: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:440: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000025: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:450: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000021: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:459: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000021: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:468: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 0000027: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:478: assert_invalid passed: + error: type mismatch in global.set, expected [i32] but got [] + 000003e: error: OnGlobalSetExpr callback failed +out/test/spec/reference-types/global.wast:496: assert_malformed passed: + out/test/spec/reference-types/global/global.33.wat:1:33: error: redefinition of global "$foo" + (global $foo i32 (i32.const 0))(global $foo i32 (i32.const 0)) + ^^^^^^ +out/test/spec/reference-types/global.wast:500: assert_malformed passed: + out/test/spec/reference-types/global/global.34.wat:1:34: error: redefinition of global "$foo" + (import "" "" (global $foo i32))(global $foo i32 (i32.const 0)) + ^^^^^^ +out/test/spec/reference-types/global.wast:504: assert_malformed passed: + out/test/spec/reference-types/global/global.35.wat:1:34: error: redefinition of global "$foo" + (import "" "" (global $foo i32))(import "" "" (global $foo i32)) + ^^^^^^ +78/78 tests passed. +;;; STDOUT ;;) diff --git a/test/spec/reference-types/globals.txt b/test/spec/reference-types/globals.txt deleted file mode 100644 index 56ebf347..00000000 --- a/test/spec/reference-types/globals.txt +++ /dev/null @@ -1,81 +0,0 @@ -;;; TOOL: run-interp-spec -;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/globals.wast -;;; ARGS*: --enable-reference-types -(;; STDOUT ;;; -out/test/spec/reference-types/globals.wast:226: assert_trap passed: undefined table index -out/test/spec/reference-types/globals.wast:248: assert_invalid passed: - error: can't global.set on immutable global at index 0. - 0000029: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:257: assert_invalid passed: - 0000013: error: expected END opcode after initializer expression -out/test/spec/reference-types/globals.wast:262: assert_invalid passed: - 000000e: error: unexpected opcode in initializer expression: 0x20 -out/test/spec/reference-types/globals.wast:267: assert_invalid passed: - 0000013: error: expected END opcode after initializer expression -out/test/spec/reference-types/globals.wast:272: assert_invalid passed: - 0000010: error: expected END opcode after initializer expression -out/test/spec/reference-types/globals.wast:277: assert_invalid passed: - 000000e: error: unexpected opcode in initializer expression: 0x1 -out/test/spec/reference-types/globals.wast:282: assert_invalid passed: - error: type mismatch at global initializer expression. got f32, expected i32 - 0000013: error: EndGlobalInitExpr callback failed -out/test/spec/reference-types/globals.wast:287: assert_invalid passed: - 0000010: error: expected END opcode after initializer expression -out/test/spec/reference-types/globals.wast:292: assert_invalid passed: - error: invalid global initializer expression, must be a constant expression - 000000e: error: EndGlobalInitExpr callback failed -out/test/spec/reference-types/globals.wast:297: assert_invalid passed: - error: type mismatch at global initializer expression. got anyref, expected funcref - 0000018: error: EndGlobalInitExpr callback failed -out/test/spec/reference-types/globals.wast:302: assert_invalid passed: - 0000000: error: initializer expression can only reference an imported global - 0000010: error: EndGlobalInitExpr callback failed -out/test/spec/reference-types/globals.wast:307: assert_invalid passed: - 0000000: error: global variable out of range: 1 (max 1) - 0000010: error: EndGlobalInitExpr callback failed -out/test/spec/reference-types/globals.wast:315: assert_malformed passed: - 0000026: error: global mutability must be 0 or 1 -out/test/spec/reference-types/globals.wast:328: assert_malformed passed: - 0000026: error: global mutability must be 0 or 1 -out/test/spec/reference-types/globals.wast:345: assert_malformed passed: - 0000011: error: global mutability must be 0 or 1 -out/test/spec/reference-types/globals.wast:357: assert_malformed passed: - 0000011: error: global mutability must be 0 or 1 -out/test/spec/reference-types/globals.wast:371: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000021: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:380: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:390: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:400: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000027: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:410: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 000002a: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:420: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:430: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:440: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000025: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:450: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000021: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:459: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000021: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:468: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 0000027: error: OnGlobalSetExpr callback failed -out/test/spec/reference-types/globals.wast:478: assert_invalid passed: - error: type mismatch in global.set, expected [i32] but got [] - 000003e: error: OnGlobalSetExpr callback failed -75/75 tests passed. -;;; STDOUT ;;) diff --git a/test/spec/reference-types/linking.txt b/test/spec/reference-types/linking.txt index 2b099ede..1b09f540 100644 --- a/test/spec/reference-types/linking.txt +++ b/test/spec/reference-types/linking.txt @@ -10,56 +10,39 @@ out/test/spec/reference-types/linking.wast:87: assert_unlinkable passed: error: mutability mismatch in imported global, expected mutable but got immutable. out/test/spec/reference-types/linking.wast:91: assert_unlinkable passed: error: mutability mismatch in imported global, expected immutable but got mutable. -out/test/spec/reference-types/linking.wast:120: assert_unlinkable passed: - error: type mismatch in imported global, expected nullref but got funcref. -out/test/spec/reference-types/linking.wast:124: assert_unlinkable passed: - error: type mismatch in imported global, expected nullref but got anyref. -out/test/spec/reference-types/linking.wast:128: assert_unlinkable passed: - error: type mismatch in imported global, expected funcref but got anyref. -out/test/spec/reference-types/linking.wast:134: assert_unlinkable passed: - error: type mismatch in imported global, expected funcref but got nullref. -out/test/spec/reference-types/linking.wast:138: assert_unlinkable passed: - error: type mismatch in imported global, expected anyref but got nullref. -out/test/spec/reference-types/linking.wast:142: assert_unlinkable passed: - error: type mismatch in imported global, expected nullref but got funcref. -out/test/spec/reference-types/linking.wast:146: assert_unlinkable passed: - error: type mismatch in imported global, expected anyref but got funcref. -out/test/spec/reference-types/linking.wast:150: assert_unlinkable passed: - error: type mismatch in imported global, expected nullref but got anyref. -out/test/spec/reference-types/linking.wast:154: assert_unlinkable passed: - error: type mismatch in imported global, expected funcref but got anyref. -out/test/spec/reference-types/linking.wast:200: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:201: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:203: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:205: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:206: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:208: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:210: assert_trap passed: undefined table index -out/test/spec/reference-types/linking.wast:211: assert_trap passed: undefined table index -out/test/spec/reference-types/linking.wast:212: assert_trap passed: undefined table index -out/test/spec/reference-types/linking.wast:213: assert_trap passed: undefined table index -out/test/spec/reference-types/linking.wast:216: assert_trap passed: indirect call signature mismatch -out/test/spec/reference-types/linking.wast:248: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:249: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:251: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:252: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:254: assert_trap passed: undefined table index -out/test/spec/reference-types/linking.wast:280: assert_unlinkable passed: +out/test/spec/reference-types/linking.wast:113: assert_unlinkable passed: + error: type mismatch in imported global, expected funcref but got externref. +out/test/spec/reference-types/linking.wast:117: assert_unlinkable passed: + error: type mismatch in imported global, expected externref but got funcref. +out/test/spec/reference-types/linking.wast:123: assert_unlinkable passed: + error: type mismatch in imported global, expected externref but got funcref. +out/test/spec/reference-types/linking.wast:127: assert_unlinkable passed: + error: type mismatch in imported global, expected funcref but got externref. +out/test/spec/reference-types/linking.wast:173: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:174: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:176: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:178: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:179: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:181: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:183: assert_trap passed: undefined table index +out/test/spec/reference-types/linking.wast:184: assert_trap passed: undefined table index +out/test/spec/reference-types/linking.wast:185: assert_trap passed: undefined table index +out/test/spec/reference-types/linking.wast:186: assert_trap passed: undefined table index +out/test/spec/reference-types/linking.wast:189: assert_trap passed: indirect call signature mismatch +out/test/spec/reference-types/linking.wast:221: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:222: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:224: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:225: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:227: assert_trap passed: undefined table index +out/test/spec/reference-types/linking.wast:253: assert_unlinkable passed: error: invalid import "Mt.mem" -out/test/spec/reference-types/linking.wast:289: assert_trap passed: uninitialized table element -out/test/spec/reference-types/linking.wast:331: assert_unlinkable passed: - error: type mismatch in imported table, expected funcref but got nullref. -out/test/spec/reference-types/linking.wast:335: assert_unlinkable passed: - error: type mismatch in imported table, expected anyref but got nullref. -out/test/spec/reference-types/linking.wast:339: assert_unlinkable passed: - error: type mismatch in imported table, expected nullref but got funcref. -out/test/spec/reference-types/linking.wast:343: assert_unlinkable passed: - error: type mismatch in imported table, expected anyref but got funcref. -out/test/spec/reference-types/linking.wast:347: assert_unlinkable passed: - error: type mismatch in imported table, expected nullref but got anyref. -out/test/spec/reference-types/linking.wast:351: assert_unlinkable passed: - error: type mismatch in imported table, expected funcref but got anyref. -out/test/spec/reference-types/linking.wast:429: assert_unlinkable passed: +out/test/spec/reference-types/linking.wast:262: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:276: assert_trap passed: uninitialized table element +out/test/spec/reference-types/linking.wast:303: assert_unlinkable passed: + error: type mismatch in imported table, expected externref but got funcref. +out/test/spec/reference-types/linking.wast:307: assert_unlinkable passed: + error: type mismatch in imported table, expected funcref but got externref. +out/test/spec/reference-types/linking.wast:385: assert_unlinkable passed: error: invalid import "Mm.tab" -109/109 tests passed. +102/102 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/memory_copy.txt b/test/spec/reference-types/memory_copy.txt index 01e73439..5b4ce614 100644 --- a/test/spec/reference-types/memory_copy.txt +++ b/test/spec/reference-types/memory_copy.txt @@ -10,222 +10,222 @@ test() => test() => test() => test() => -out/test/spec/reference-types/memory_copy.wast:349: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:710: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:1072: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:1433: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:1795: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:2156: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:2517: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:2878: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:3239: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:3600: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:3961: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:4315: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:350: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:711: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:1073: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:1434: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:1796: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:2157: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:2518: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:2879: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:3240: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:3601: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:3962: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:4316: assert_invalid passed: error: memory variable out of range: 0 (max 0) 000002d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4321: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4322: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, i32, f32] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4328: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4329: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, i32, i64] 0000033: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4335: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4336: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, i32, f64] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4342: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4343: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, f32, i32] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4349: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4350: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, f32, f32] 0000039: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4356: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4357: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, f32, i64] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4363: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4364: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, f32, f64] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4370: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4371: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, i64, i32] 0000033: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4377: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4378: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, i64, f32] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4384: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4385: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, i64, i64] 0000033: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4391: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4392: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, i64, f64] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4398: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4399: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, f64, i32] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4405: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4406: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, f64, f32] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4412: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4413: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, f64, i64] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4419: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4420: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i32, f64, f64] 0000041: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4426: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4427: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, i32, i32] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4433: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4434: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, i32, f32] 0000039: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4440: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4441: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, i32, i64] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4447: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4448: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, i32, f64] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4454: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4455: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, f32, i32] 0000039: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4461: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4462: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, f32, f32] 000003c: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4468: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4469: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, f32, i64] 0000039: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4475: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4476: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, f32, f64] 0000040: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4482: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4483: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, i64, i32] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4489: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4490: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, i64, f32] 0000039: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4496: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4497: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, i64, i64] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4503: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4504: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, i64, f64] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4510: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4511: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, f64, i32] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4517: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4518: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, f64, f32] 0000040: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4524: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4525: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, f64, i64] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4531: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4532: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f32, f64, f64] 0000044: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4538: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4539: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, i32, i32] 0000033: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4545: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4546: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, i32, f32] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4552: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4553: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, i32, i64] 0000033: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4559: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4560: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, i32, f64] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4566: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4567: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, f32, i32] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4573: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4574: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, f32, f32] 0000039: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4580: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4581: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, f32, i64] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4587: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4588: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, f32, f64] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4594: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4595: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, i64, i32] 0000033: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4601: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4602: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, i64, f32] 0000036: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4608: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4609: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, i64, i64] 0000033: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4615: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4616: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, i64, f64] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4622: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4623: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, f64, i32] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4629: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4630: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, f64, f32] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4636: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4637: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, f64, i64] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4643: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4644: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [i64, f64, f64] 0000041: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4650: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4651: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, i32, i32] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4657: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4658: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, i32, f32] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4664: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4665: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, i32, i64] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4671: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4672: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, i32, f64] 0000041: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4678: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4679: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, f32, i32] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4685: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4686: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, f32, f32] 0000040: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4692: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4693: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, f32, i64] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4699: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4700: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, f32, f64] 0000044: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4706: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4707: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, i64, i32] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4713: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4714: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, i64, f32] 000003d: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4720: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4721: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, i64, i64] 000003a: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4727: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4728: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, i64, f64] 0000041: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4734: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4735: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, f64, i32] 0000041: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4741: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4742: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, f64, f32] 0000044: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4748: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4749: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, f64, i64] 0000041: error: OnMemoryCopyExpr callback failed -out/test/spec/reference-types/memory_copy.wast:4755: assert_invalid passed: +out/test/spec/reference-types/memory_copy.wast:4756: assert_invalid passed: error: type mismatch in memory.copy, expected [i32, i32, i32] but got [f64, f64, f64] 0000048: error: OnMemoryCopyExpr callback failed test() => test() => -out/test/spec/reference-types/memory_copy.wast:4818: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:4824: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:4830: assert_trap passed: out of bounds memory access: memory.copy out of bound -out/test/spec/reference-types/memory_copy.wast:4836: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:4819: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:4825: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:4831: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:4837: assert_trap passed: out of bounds memory access: memory.copy out of bound test() => test() => -out/test/spec/reference-types/memory_copy.wast:4872: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:4873: assert_trap passed: out of bounds memory access: memory.copy out of bound test() => -out/test/spec/reference-types/memory_copy.wast:4884: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:4885: assert_trap passed: out of bounds memory access: memory.copy out of bound test() => -out/test/spec/reference-types/memory_copy.wast:4896: assert_trap passed: out of bounds memory access: memory.copy out of bound +out/test/spec/reference-types/memory_copy.wast:4897: assert_trap passed: out of bounds memory access: memory.copy out of bound test() => 4417/4417 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/memory_fill.txt b/test/spec/reference-types/memory_fill.txt index 7a49f234..edab2478 100644 --- a/test/spec/reference-types/memory_fill.txt +++ b/test/spec/reference-types/memory_fill.txt @@ -3,207 +3,207 @@ ;;; ARGS*: --enable-reference-types (;; STDOUT ;;; test() => -out/test/spec/reference-types/memory_fill.wast:43: assert_trap passed: out of bounds memory access: memory.fill out of bounds -out/test/spec/reference-types/memory_fill.wast:61: assert_trap passed: out of bounds memory access: memory.fill out of bounds +out/test/spec/reference-types/memory_fill.wast:44: assert_trap passed: out of bounds memory access: memory.fill out of bounds +out/test/spec/reference-types/memory_fill.wast:62: assert_trap passed: out of bounds memory access: memory.fill out of bounds test() => test() => -out/test/spec/reference-types/memory_fill.wast:117: assert_trap passed: out of bounds memory access: memory.fill out of bounds +out/test/spec/reference-types/memory_fill.wast:118: assert_trap passed: out of bounds memory access: memory.fill out of bounds test() => test() => -out/test/spec/reference-types/memory_fill.wast:174: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:175: assert_invalid passed: error: memory variable out of range: 0 (max 0) 000002c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:180: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:181: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, i32, f32] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:187: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:188: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, i32, i64] 0000032: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:194: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:195: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, i32, f64] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:201: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:202: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, f32, i32] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:208: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:209: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, f32, f32] 0000038: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:215: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:216: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, f32, i64] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:222: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:223: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, f32, f64] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:229: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:230: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, i64, i32] 0000032: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:236: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:237: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, i64, f32] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:243: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:244: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, i64, i64] 0000032: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:250: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:251: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, i64, f64] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:257: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:258: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, f64, i32] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:264: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:265: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, f64, f32] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:271: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:272: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, f64, i64] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:278: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:279: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i32, f64, f64] 0000040: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:285: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:286: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, i32, i32] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:292: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:293: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, i32, f32] 0000038: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:299: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:300: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, i32, i64] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:306: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:307: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, i32, f64] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:313: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:314: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, f32, i32] 0000038: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:320: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:321: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, f32, f32] 000003b: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:327: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:328: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, f32, i64] 0000038: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:334: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:335: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, f32, f64] 000003f: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:341: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:342: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, i64, i32] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:348: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:349: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, i64, f32] 0000038: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:355: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:356: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, i64, i64] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:362: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:363: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, i64, f64] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:369: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:370: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, f64, i32] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:376: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:377: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, f64, f32] 000003f: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:383: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:384: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, f64, i64] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:390: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:391: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f32, f64, f64] 0000043: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:397: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:398: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, i32, i32] 0000032: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:404: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:405: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, i32, f32] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:411: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:412: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, i32, i64] 0000032: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:418: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:419: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, i32, f64] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:425: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:426: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, f32, i32] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:432: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:433: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, f32, f32] 0000038: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:439: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:440: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, f32, i64] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:446: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:447: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, f32, f64] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:453: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:454: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, i64, i32] 0000032: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:460: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:461: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, i64, f32] 0000035: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:467: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:468: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, i64, i64] 0000032: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:474: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:475: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, i64, f64] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:481: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:482: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, f64, i32] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:488: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:489: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, f64, f32] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:495: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:496: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, f64, i64] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:502: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:503: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [i64, f64, f64] 0000040: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:509: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:510: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, i32, i32] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:516: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:517: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, i32, f32] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:523: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:524: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, i32, i64] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:530: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:531: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, i32, f64] 0000040: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:537: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:538: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, f32, i32] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:544: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:545: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, f32, f32] 000003f: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:551: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:552: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, f32, i64] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:558: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:559: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, f32, f64] 0000043: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:565: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:566: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, i64, i32] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:572: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:573: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, i64, f32] 000003c: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:579: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:580: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, i64, i64] 0000039: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:586: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:587: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, i64, f64] 0000040: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:593: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:594: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, f64, i32] 0000040: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:600: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:601: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, f64, f32] 0000043: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:607: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:608: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, f64, i64] 0000040: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:614: assert_invalid passed: +out/test/spec/reference-types/memory_fill.wast:615: assert_invalid passed: error: type mismatch in memory.fill, expected [i32, i32, i32] but got [f64, f64, f64] 0000047: error: OnMemoryFillExpr callback failed -out/test/spec/reference-types/memory_fill.wast:637: assert_trap passed: out of bounds memory access: memory.fill out of bounds -out/test/spec/reference-types/memory_fill.wast:659: assert_trap passed: out of bounds memory access: memory.fill out of bounds -out/test/spec/reference-types/memory_fill.wast:681: assert_trap passed: out of bounds memory access: memory.fill out of bounds +out/test/spec/reference-types/memory_fill.wast:638: assert_trap passed: out of bounds memory access: memory.fill out of bounds +out/test/spec/reference-types/memory_fill.wast:660: assert_trap passed: out of bounds memory access: memory.fill out of bounds +out/test/spec/reference-types/memory_fill.wast:682: assert_trap passed: out of bounds memory access: memory.fill out of bounds 89/89 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/memory_init.txt b/test/spec/reference-types/memory_init.txt index f64d889b..ca5c3588 100644 --- a/test/spec/reference-types/memory_init.txt +++ b/test/spec/reference-types/memory_init.txt @@ -6,226 +6,226 @@ test() => test() => test() => test() => -out/test/spec/reference-types/memory_init.wast:189: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:190: assert_invalid passed: 0000000: error: data_segment variable out of range: 0 (max 0) 0000027: error: OnDataDropExpr callback failed -out/test/spec/reference-types/memory_init.wast:195: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:196: assert_invalid passed: 0000000: error: data_segment variable out of range: 4 (max 1) 000002c: error: OnDataDropExpr callback failed test() => -out/test/spec/reference-types/memory_init.wast:216: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:223: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:226: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:217: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:224: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:227: assert_invalid passed: error: memory variable out of range: 0 (max 0) 0000000: error: data_segment variable out of range: 1 (max 0) 000002f: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:232: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:233: assert_invalid passed: 0000000: error: data_segment variable out of range: 1 (max 1) 0000034: error: OnMemoryInitExpr callback failed test() => -out/test/spec/reference-types/memory_init.wast:252: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:259: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:266: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:273: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:253: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:260: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:267: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:274: assert_trap passed: out of bounds memory access: memory.init out of bounds test() => -out/test/spec/reference-types/memory_init.wast:287: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:288: assert_trap passed: out of bounds memory access: memory.init out of bounds test() => test() => -out/test/spec/reference-types/memory_init.wast:308: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:311: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:309: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:312: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, i32, f32] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:319: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:320: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, i32, i64] 0000033: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:327: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:328: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, i32, f64] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:335: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:336: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, f32, i32] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:343: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:344: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, f32, f32] 0000039: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:351: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:352: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, f32, i64] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:359: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:360: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, f32, f64] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:367: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:368: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, i64, i32] 0000033: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:375: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:376: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, i64, f32] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:383: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:384: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, i64, i64] 0000033: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:391: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:392: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, i64, f64] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:399: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:400: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, f64, i32] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:407: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:408: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, f64, f32] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:415: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:416: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, f64, i64] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:423: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:424: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i32, f64, f64] 0000041: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:431: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:432: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, i32, i32] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:439: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:440: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, i32, f32] 0000039: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:447: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:448: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, i32, i64] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:455: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:456: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, i32, f64] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:463: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:464: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, f32, i32] 0000039: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:471: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:472: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, f32, f32] 000003c: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:479: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:480: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, f32, i64] 0000039: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:487: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:488: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, f32, f64] 0000040: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:495: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:496: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, i64, i32] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:503: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:504: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, i64, f32] 0000039: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:511: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:512: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, i64, i64] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:519: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:520: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, i64, f64] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:527: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:528: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, f64, i32] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:535: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:536: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, f64, f32] 0000040: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:543: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:544: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, f64, i64] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:551: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:552: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f32, f64, f64] 0000044: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:559: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:560: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, i32, i32] 0000033: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:567: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:568: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, i32, f32] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:575: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:576: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, i32, i64] 0000033: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:583: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:584: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, i32, f64] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:591: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:592: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, f32, i32] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:599: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:600: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, f32, f32] 0000039: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:607: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:608: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, f32, i64] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:615: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:616: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, f32, f64] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:623: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:624: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, i64, i32] 0000033: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:631: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:632: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, i64, f32] 0000036: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:639: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:640: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, i64, i64] 0000033: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:647: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:648: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, i64, f64] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:655: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:656: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, f64, i32] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:663: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:664: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, f64, f32] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:671: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:672: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, f64, i64] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:679: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:680: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [i64, f64, f64] 0000041: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:687: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:688: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, i32, i32] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:695: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:696: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, i32, f32] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:703: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:704: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, i32, i64] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:711: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:712: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, i32, f64] 0000041: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:719: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:720: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, f32, i32] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:727: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:728: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, f32, f32] 0000040: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:735: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:736: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, f32, i64] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:743: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:744: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, f32, f64] 0000044: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:751: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:752: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, i64, i32] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:759: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:760: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, i64, f32] 000003d: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:767: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:768: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, i64, i64] 000003a: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:775: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:776: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, i64, f64] 0000041: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:783: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:784: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, f64, i32] 0000041: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:791: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:792: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, f64, f32] 0000044: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:799: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:800: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, f64, i64] 0000041: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:807: assert_invalid passed: +out/test/spec/reference-types/memory_init.wast:808: assert_invalid passed: error: type mismatch in memory.init, expected [i32, i32, i32] but got [f64, f64, f64] 0000048: error: OnMemoryInitExpr callback failed -out/test/spec/reference-types/memory_init.wast:832: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:855: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:878: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:901: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:924: assert_trap passed: out of bounds memory access: memory.init out of bounds -out/test/spec/reference-types/memory_init.wast:947: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:833: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:856: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:879: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:902: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:925: assert_trap passed: out of bounds memory access: memory.init out of bounds +out/test/spec/reference-types/memory_init.wast:948: assert_trap passed: out of bounds memory access: memory.init out of bounds 216/216 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/ref_func.txt b/test/spec/reference-types/ref_func.txt index 7ceb0dfa..b4390fcd 100644 --- a/test/spec/reference-types/ref_func.txt +++ b/test/spec/reference-types/ref_func.txt @@ -1,17 +1,31 @@ ;;; TOOL: run-interp-spec ;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/ref_func.wast ;;; ARGS*: --enable-reference-types +(;; STDERR ;;; +out/test/spec/reference-types/ref_func.wast:98:15: error: function is not declared in any elem sections + (ref.func $f1) + ^^^ +out/test/spec/reference-types/ref_func.wast:99:15: error: function is not declared in any elem sections + (ref.func $f2) + ^^^ +out/test/spec/reference-types/ref_func.wast:90:29: error: function is not declared in any elem sections + (global funcref (ref.func $f1)) + ^^^ +0000000: error: function is not declared in any elem sections +000005d: error: OnRefFuncExpr callback failed +;;; STDERR ;;) (;; STDOUT ;;; set-g() => set-f() => -out/test/spec/reference-types/ref_func.wast:71: assert_invalid passed: +out/test/spec/reference-types/ref_func.wast:69: assert_invalid passed: 0000000: error: function variable out of range: 7 (max 2) 0000027: error: EndGlobalInitExpr callback failed -out/test/spec/reference-types/ref_func.wast:80: assert_invalid passed: - 0000000: error: function is not declared in any elem sections - 0000020: error: EndModule callback failed -out/test/spec/reference-types/ref_func.wast:84: assert_invalid passed: +out/test/spec/reference-types/ref_func.wast:80: error reading module: "out/test/spec/reference-types/ref_func/ref_func.3.wasm" +out/test/spec/reference-types/ref_func.wast:109: assert_invalid passed: 0000000: error: function is not declared in any elem sections 0000019: error: OnRefFuncExpr callback failed +out/test/spec/reference-types/ref_func.wast:113: assert_invalid passed: + 0000000: error: function is not declared in any elem sections + 000001c: error: OnRefFuncExpr callback failed 13/13 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/ref_is_null.txt b/test/spec/reference-types/ref_is_null.txt index 597b2a23..633e1e87 100644 --- a/test/spec/reference-types/ref_is_null.txt +++ b/test/spec/reference-types/ref_is_null.txt @@ -2,7 +2,7 @@ ;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/ref_is_null.wast ;;; ARGS*: --enable-reference-types (;; STDOUT ;;; -init(anyref:1) => +init(externref:1) => deinit() => -18/18 tests passed. +13/13 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/ref_null.txt b/test/spec/reference-types/ref_null.txt index 9501f2da..bfd6fb4f 100644 --- a/test/spec/reference-types/ref_null.txt +++ b/test/spec/reference-types/ref_null.txt @@ -2,5 +2,5 @@ ;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/ref_null.wast ;;; ARGS*: --enable-reference-types (;; STDOUT ;;; -3/3 tests passed. +2/2 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/select.txt b/test/spec/reference-types/select.txt index 68349b55..ceb244ca 100644 --- a/test/spec/reference-types/select.txt +++ b/test/spec/reference-types/select.txt @@ -2,69 +2,66 @@ ;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/select.wast ;;; ARGS*: --enable-reference-types (;; STDOUT ;;; -out/test/spec/reference-types/select.wast:291: assert_trap passed: unreachable executed -out/test/spec/reference-types/select.wast:292: assert_trap passed: unreachable executed -out/test/spec/reference-types/select.wast:293: assert_trap passed: unreachable executed -out/test/spec/reference-types/select.wast:294: assert_trap passed: unreachable executed -out/test/spec/reference-types/select.wast:331: assert_trap passed: undefined table index -out/test/spec/reference-types/select.wast:332: assert_trap passed: undefined table index -out/test/spec/reference-types/select.wast:373: assert_invalid passed: +out/test/spec/reference-types/select.wast:260: assert_trap passed: unreachable executed +out/test/spec/reference-types/select.wast:261: assert_trap passed: unreachable executed +out/test/spec/reference-types/select.wast:262: assert_trap passed: unreachable executed +out/test/spec/reference-types/select.wast:263: assert_trap passed: unreachable executed +out/test/spec/reference-types/select.wast:300: assert_trap passed: undefined table index +out/test/spec/reference-types/select.wast:301: assert_trap passed: undefined table index +out/test/spec/reference-types/select.wast:342: assert_invalid passed: error: type mismatch in select, expected [any, any, i32] but got [i32] 000001c: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:377: assert_invalid passed: +out/test/spec/reference-types/select.wast:346: assert_invalid passed: 000001d: error: invalid arity in select instrcution: 0 -out/test/spec/reference-types/select.wast:381: assert_invalid passed: +out/test/spec/reference-types/select.wast:350: assert_invalid passed: 0000025: error: invalid arity in select instrcution: 2 -out/test/spec/reference-types/select.wast:393: assert_invalid passed: - error: type mismatch in select, expected [any, any, i32] but got [nullref, nullref, i32] - 000001c: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:399: assert_invalid passed: - error: type mismatch in select, expected [any, any, i32] but got [anyref, anyref, i32] +out/test/spec/reference-types/select.wast:362: assert_invalid passed: + error: type mismatch in select, expected [any, any, i32] but got [externref, externref, i32] 000001f: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:406: assert_invalid passed: +out/test/spec/reference-types/select.wast:369: assert_invalid passed: error: type mismatch in select, expected [i64, i64, i32] but got [i32, i64, i32] 000001e: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:412: assert_invalid passed: +out/test/spec/reference-types/select.wast:375: assert_invalid passed: error: type mismatch in select, expected [f32, f32, i32] but got [i32, f32, i32] 0000021: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:418: assert_invalid passed: +out/test/spec/reference-types/select.wast:381: assert_invalid passed: error: type mismatch in select, expected [f64, f64, i32] but got [i32, f64, i32] 0000025: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:426: assert_invalid passed: +out/test/spec/reference-types/select.wast:389: assert_invalid passed: error: type mismatch in select, expected [any, any, i32] but got [] 0000018: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:434: assert_invalid passed: +out/test/spec/reference-types/select.wast:397: assert_invalid passed: error: type mismatch in select, expected [any, any, i32] but got [i32] 000001a: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:442: assert_invalid passed: +out/test/spec/reference-types/select.wast:405: assert_invalid passed: error: type mismatch in select, expected [i32, i32, i32] but got [i32, i32] 000001c: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:450: assert_invalid passed: +out/test/spec/reference-types/select.wast:413: assert_invalid passed: error: type mismatch in select, expected [any, any, i32] but got [] 0000020: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:459: assert_invalid passed: +out/test/spec/reference-types/select.wast:422: assert_invalid passed: error: type mismatch in select, expected [any, any, i32] but got [i32] 0000020: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:468: assert_invalid passed: +out/test/spec/reference-types/select.wast:431: assert_invalid passed: error: type mismatch in select, expected [i32, i32, i32] but got [i32, i32] 0000020: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:477: assert_invalid passed: +out/test/spec/reference-types/select.wast:440: assert_invalid passed: error: type mismatch in select, expected [any, any, i32] but got [] 0000020: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:486: assert_invalid passed: +out/test/spec/reference-types/select.wast:449: assert_invalid passed: error: type mismatch in select, expected [any, any, i32] but got [i32] 0000020: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:495: assert_invalid passed: +out/test/spec/reference-types/select.wast:458: assert_invalid passed: error: type mismatch in select, expected [i32, i32, i32] but got [i32, i32] 0000020: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:504: assert_invalid passed: +out/test/spec/reference-types/select.wast:467: assert_invalid passed: error: type mismatch in select, expected [any, any, i32] but got [] 0000020: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:513: assert_invalid passed: +out/test/spec/reference-types/select.wast:476: assert_invalid passed: error: type mismatch in select, expected [any, any, i32] but got [i32] 0000020: error: OnSelectExpr callback failed -out/test/spec/reference-types/select.wast:522: assert_invalid passed: +out/test/spec/reference-types/select.wast:485: assert_invalid passed: error: type mismatch in select, expected [i32, i32, i32] but got [i32, i32] 0000020: error: OnSelectExpr callback failed -148/148 tests passed. +140/140 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/table-sub.txt b/test/spec/reference-types/table-sub.txt index 5b14f2fb..313158f6 100644 --- a/test/spec/reference-types/table-sub.txt +++ b/test/spec/reference-types/table-sub.txt @@ -2,11 +2,11 @@ ;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/table-sub.wast ;;; ARGS*: --enable-reference-types (;; STDOUT ;;; -out/test/spec/reference-types/table-sub.wast:12: assert_invalid passed: - error: type mismatch at table.copy. got anyref, expected funcref +out/test/spec/reference-types/table-sub.wast:2: assert_invalid passed: + error: type mismatch at table.copy. got externref, expected funcref 000002a: error: OnTableCopyExpr callback failed -out/test/spec/reference-types/table-sub.wast:23: assert_invalid passed: - error: type mismatch at table.init. got anyref, expected funcref +out/test/spec/reference-types/table-sub.wast:13: assert_invalid passed: + error: type mismatch at table.init. got externref, expected funcref 000002d: error: OnTableInitExpr callback failed 2/2 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/table.txt b/test/spec/reference-types/table.txt new file mode 100644 index 00000000..a0dde4c4 --- /dev/null +++ b/test/spec/reference-types/table.txt @@ -0,0 +1,45 @@ +;;; TOOL: run-interp-spec +;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/table.wast +;;; ARGS*: --enable-reference-types +(;; STDOUT ;;; +out/test/spec/reference-types/table.wast:14: assert_invalid passed: + 0000000: error: table variable out of range: 0 (max 0) + 000000c: error: BeginElemSegment callback failed +out/test/spec/reference-types/table.wast:15: assert_invalid passed: + 0000000: error: table variable out of range: 0 (max 0) + 0000016: error: BeginElemSegment callback failed +out/test/spec/reference-types/table.wast:19: assert_invalid passed: + error: max elems (0) must be >= initial elems (1) + 000000f: error: OnTable callback failed +out/test/spec/reference-types/table.wast:23: assert_invalid passed: + error: max elems (0) must be >= initial elems (4294967295) + 0000013: error: OnTable callback failed +out/test/spec/reference-types/table.wast:28: assert_malformed passed: + out/test/spec/reference-types/table/table.13.wat:1:8: error: invalid int "0x1_0000_0000" + (table 0x1_0000_0000 funcref) + ^^^^^^^^^^^^^ +out/test/spec/reference-types/table.wast:32: assert_malformed passed: + out/test/spec/reference-types/table/table.14.wat:1:8: error: invalid int "0x1_0000_0000" + (table 0x1_0000_0000 0x1_0000_0000 funcref) + ^^^^^^^^^^^^^ + out/test/spec/reference-types/table/table.14.wat:1:22: error: invalid int "0x1_0000_0000" + (table 0x1_0000_0000 0x1_0000_0000 funcref) + ^^^^^^^^^^^^^ +out/test/spec/reference-types/table.wast:36: assert_malformed passed: + out/test/spec/reference-types/table/table.15.wat:1:10: error: invalid int "0x1_0000_0000" + (table 0 0x1_0000_0000 funcref) + ^^^^^^^^^^^^^ +out/test/spec/reference-types/table.wast:43: assert_malformed passed: + out/test/spec/reference-types/table/table.16.wat:1:24: error: redefinition of table "$foo" + (table $foo 1 funcref)(table $foo 1 funcref) + ^^^^^ +out/test/spec/reference-types/table.wast:47: assert_malformed passed: + out/test/spec/reference-types/table/table.17.wat:1:39: error: redefinition of table "$foo" + (import "" "" (table $foo 1 funcref))(table $foo 1 funcref) + ^^^^^ +out/test/spec/reference-types/table.wast:51: assert_malformed passed: + out/test/spec/reference-types/table/table.18.wat:1:39: error: redefinition of table "$foo" + (import "" "" (table $foo 1 funcref))(import "" "" (table $foo 1 funcref)) + ^^^^^^ +10/10 tests passed. +;;; STDOUT ;;) diff --git a/test/spec/reference-types/table_copy.txt b/test/spec/reference-types/table_copy.txt index ded4450b..0fadee3e 100644 --- a/test/spec/reference-types/table_copy.txt +++ b/test/spec/reference-types/table_copy.txt @@ -3,20 +3,14 @@ ;;; ARGS*: --enable-reference-types (;; STDOUT ;;; test() => -out/test/spec/reference-types/table_copy.wast:40: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:41: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:46: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:47: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:48: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:49: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:50: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:51: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:52: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:53: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:54: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:55: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:56: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:57: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:58: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:59: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:60: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:61: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:62: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:63: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:64: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:65: assert_trap passed: uninitialized table element @@ -24,104 +18,132 @@ out/test/spec/reference-types/table_copy.wast:66: assert_trap passed: uninitiali out/test/spec/reference-types/table_copy.wast:67: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:68: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:69: assert_trap passed: uninitialized table element -test() => +out/test/spec/reference-types/table_copy.wast:70: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:71: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:72: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:73: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:74: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:75: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:76: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:77: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:78: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:83: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:84: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:85: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:86: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:92: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:93: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:94: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:95: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:96: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:97: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:98: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:99: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:100: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:101: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:102: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:103: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:104: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:105: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:106: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:107: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:108: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:114: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:115: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:116: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:117: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:118: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:119: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:120: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:121: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:122: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:123: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:124: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:125: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:126: assert_trap passed: uninitialized table element test() => -out/test/spec/reference-types/table_copy.wast:154: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:138: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:139: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:144: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:145: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:146: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:147: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:148: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:149: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:155: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:156: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:157: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:158: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:159: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:160: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:161: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:162: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:163: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:164: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:165: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:171: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:172: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:173: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:174: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:166: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:167: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:168: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:169: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:170: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:175: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:176: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:177: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:178: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:181: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:182: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:183: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:184: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:185: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:186: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:187: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:188: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:189: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:190: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:191: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:192: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:193: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:194: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:195: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:196: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:197: assert_trap passed: uninitialized table element test() => -out/test/spec/reference-types/table_copy.wast:211: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:212: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:217: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:218: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:219: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:220: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:221: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:222: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:224: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:225: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:226: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:228: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:229: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:230: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:231: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:232: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:233: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:234: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:235: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:236: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:237: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:238: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:239: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:240: assert_trap passed: uninitialized table element -test() => +out/test/spec/reference-types/table_copy.wast:241: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:247: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:248: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:249: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:250: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:251: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:252: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:253: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:254: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:257: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:258: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:259: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:260: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:261: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:262: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:267: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:268: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:269: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:274: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:275: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:270: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:276: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:277: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:278: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:279: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:280: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:281: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:282: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:283: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:284: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:285: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:286: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:287: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:288: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:289: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:290: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:291: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:292: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:293: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:294: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:295: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:296: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:297: assert_trap passed: uninitialized table element test() => -out/test/spec/reference-types/table_copy.wast:325: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:326: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:322: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:323: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:328: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:329: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:330: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:331: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:332: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:333: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:334: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:335: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:336: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:337: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:339: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:340: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:341: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:342: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:343: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:344: assert_trap passed: uninitialized table element @@ -131,43 +153,57 @@ out/test/spec/reference-types/table_copy.wast:347: assert_trap passed: uninitial out/test/spec/reference-types/table_copy.wast:348: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:349: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:350: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:351: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:352: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:353: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:354: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:359: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:360: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:361: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:362: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:368: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:369: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:370: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:371: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:372: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:373: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:374: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:375: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:376: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:377: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:378: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:379: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:380: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:381: assert_trap passed: uninitialized table element test() => -out/test/spec/reference-types/table_copy.wast:382: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:383: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:388: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:389: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:390: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:391: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:397: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:398: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:399: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:400: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:401: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:402: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:403: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:404: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:405: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:406: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:407: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:408: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:409: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:410: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:411: assert_trap passed: uninitialized table element -test() => +out/test/spec/reference-types/table_copy.wast:414: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:415: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:420: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:421: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:422: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:423: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:424: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:425: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:431: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:432: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:433: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:434: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:435: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:436: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:437: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:438: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:439: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:440: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:441: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:442: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:443: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:444: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:445: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:446: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:447: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:448: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:449: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:450: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:451: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:452: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:458: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:459: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:453: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:454: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:460: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:461: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:462: assert_trap passed: uninitialized table element @@ -177,74 +213,186 @@ out/test/spec/reference-types/table_copy.wast:465: assert_trap passed: uninitial out/test/spec/reference-types/table_copy.wast:466: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:467: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:468: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:492: assert_trap passed: out of bounds table access: table.copy out of bounds -out/test/spec/reference-types/table_copy.wast:516: assert_trap passed: out of bounds table access: table.copy out of bounds -out/test/spec/reference-types/table_copy.wast:540: assert_trap passed: out of bounds table access: table.copy out of bounds -out/test/spec/reference-types/table_copy.wast:564: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:469: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:470: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:471: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:472: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:473: assert_trap passed: uninitialized table element test() => +out/test/spec/reference-types/table_copy.wast:506: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:507: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:512: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:513: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:514: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:515: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:516: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:517: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:523: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:524: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:525: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:526: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:527: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:528: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:529: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:530: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:531: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:534: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:535: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:536: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:537: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:538: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:543: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:544: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:545: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:546: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:552: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:553: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:554: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:555: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:556: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:557: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:558: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:559: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:560: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:561: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:562: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:563: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:564: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:565: assert_trap passed: uninitialized table element test() => -out/test/spec/reference-types/table_copy.wast:636: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:598: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:599: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:604: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:605: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:606: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:607: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:613: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:614: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:615: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:616: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:617: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:618: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:619: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:620: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:621: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:622: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:623: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:624: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:625: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:626: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:627: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:628: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:629: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:630: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:635: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:636: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:637: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:638: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:644: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:645: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:646: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:647: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:648: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:649: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:650: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:651: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:652: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:653: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:654: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:655: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:656: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:657: assert_trap passed: uninitialized table element test() => -out/test/spec/reference-types/table_copy.wast:684: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:690: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:691: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:696: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:697: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:698: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:699: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:700: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:701: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:702: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:703: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:709: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:710: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:711: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:712: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:713: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:714: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:715: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:716: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:717: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:718: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:719: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:720: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:721: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:722: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:727: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:728: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:729: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:730: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:736: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:737: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:738: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:739: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:740: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:741: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:742: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:743: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:744: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:745: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:746: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:747: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:748: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:749: assert_trap passed: uninitialized table element test() => -out/test/spec/reference-types/table_copy.wast:732: assert_trap passed: out of bounds table access: table.copy out of bounds -out/test/spec/reference-types/table_copy.wast:760: assert_trap passed: out of bounds table access: table.copy out of bounds -out/test/spec/reference-types/table_copy.wast:770: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:771: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:772: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:773: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:774: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:775: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:776: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:777: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:778: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:779: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:780: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:781: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:782: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:783: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:784: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:785: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:786: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:787: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:788: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:789: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:790: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:791: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:792: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:793: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:821: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:799: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:800: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:801: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:802: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:803: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:804: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:805: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:806: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:807: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:808: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:809: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:810: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:811: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:812: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:813: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:814: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:819: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:820: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:821: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:822: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:823: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:828: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:829: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:830: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:831: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:832: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:833: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:834: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:835: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:836: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:837: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:838: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:839: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:840: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:841: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:842: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:843: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:844: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:845: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:846: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:847: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:848: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:849: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:850: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:851: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:852: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:853: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:854: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:882: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +out/test/spec/reference-types/table_copy.wast:874: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:875: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:880: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:881: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:882: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:883: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:884: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:885: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:886: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:887: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:888: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:889: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:890: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:891: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:892: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:893: assert_trap passed: uninitialized table element @@ -261,65 +409,76 @@ out/test/spec/reference-types/table_copy.wast:903: assert_trap passed: uninitial out/test/spec/reference-types/table_copy.wast:904: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:905: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:906: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:907: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:943: assert_trap passed: out of bounds table access: table.copy out of bounds -out/test/spec/reference-types/table_copy.wast:945: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:946: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:947: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:948: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:949: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:950: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:951: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:952: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:953: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:954: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:955: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:956: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:957: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:958: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:959: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:960: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:961: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:962: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:963: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:964: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:965: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:911: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:912: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:913: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:914: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:920: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:921: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:922: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:923: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:924: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:925: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:926: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:927: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:928: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:929: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:930: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:931: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:932: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:933: assert_trap passed: uninitialized table element +test() => out/test/spec/reference-types/table_copy.wast:966: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:967: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1004: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:972: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:973: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:974: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:975: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:976: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:977: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:983: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:984: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:985: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:986: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:987: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:988: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:989: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:990: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:991: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:992: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:993: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:994: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:995: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:996: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:997: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:998: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1003: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1004: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1005: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1006: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1007: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1008: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1009: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1010: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1011: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1012: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1013: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1014: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1015: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1016: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1017: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1018: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1019: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1020: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1021: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1022: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1023: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1024: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1025: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1026: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1027: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1028: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1029: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1030: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1031: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1032: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1033: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1034: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1035: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1036: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1037: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1065: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +out/test/spec/reference-types/table_copy.wast:1058: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1059: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1064: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1065: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1066: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1067: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1068: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1069: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1070: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1071: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1072: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1073: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1074: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1075: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1076: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1077: assert_trap passed: uninitialized table element @@ -328,47 +487,62 @@ out/test/spec/reference-types/table_copy.wast:1079: assert_trap passed: uninitia out/test/spec/reference-types/table_copy.wast:1080: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1081: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1082: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1083: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1084: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1085: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1086: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1087: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1088: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1089: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1090: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1126: assert_trap passed: out of bounds table access: table.copy out of bounds -out/test/spec/reference-types/table_copy.wast:1128: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1129: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1130: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1131: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1132: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1133: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1134: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1135: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1136: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1137: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1138: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1139: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1140: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1141: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1142: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1143: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1144: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1145: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1146: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1147: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1148: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1095: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1096: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1097: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1098: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1104: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1105: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1106: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1107: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1108: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1109: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1110: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1111: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1112: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1113: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1114: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1115: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1116: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1117: assert_trap passed: uninitialized table element +test() => +out/test/spec/reference-types/table_copy.wast:1150: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1151: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1156: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1157: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1158: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1159: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1187: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:1160: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1161: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1163: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1164: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1165: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1167: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1168: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1169: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1170: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1171: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1172: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1173: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1174: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1175: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1176: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1177: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1178: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1179: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1180: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1181: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1182: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1187: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1188: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1189: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1190: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1191: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1192: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1193: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1194: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1195: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1196: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1197: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1198: assert_trap passed: uninitialized table element @@ -383,19 +557,15 @@ out/test/spec/reference-types/table_copy.wast:1206: assert_trap passed: uninitia out/test/spec/reference-types/table_copy.wast:1207: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1208: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1209: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1210: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1211: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1212: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1248: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +out/test/spec/reference-types/table_copy.wast:1242: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1243: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1248: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1249: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1250: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1251: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1252: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1253: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1254: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1255: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1256: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1257: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1258: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1259: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1260: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1261: assert_trap passed: uninitialized table element @@ -408,47 +578,37 @@ out/test/spec/reference-types/table_copy.wast:1267: assert_trap passed: uninitia out/test/spec/reference-types/table_copy.wast:1268: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1269: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1270: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1309: assert_trap passed: out of bounds table access: table.copy out of bounds -out/test/spec/reference-types/table_copy.wast:1311: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1312: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1313: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1314: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1315: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1316: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1317: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1318: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1319: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1320: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1321: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1322: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1323: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1324: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1325: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1326: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1327: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1328: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1329: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1330: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1331: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1332: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1333: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1271: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1272: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1273: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1274: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1279: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1280: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1281: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1282: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1288: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1289: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1290: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1291: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1292: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1293: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1294: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1295: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1296: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1297: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1298: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1299: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1300: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1301: assert_trap passed: uninitialized table element +test() => out/test/spec/reference-types/table_copy.wast:1334: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1335: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1336: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1337: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1338: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1339: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1340: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1341: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1342: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1343: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1344: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1345: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1346: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1347: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1348: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1349: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1350: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1351: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1352: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1353: assert_trap passed: uninitialized table element @@ -458,26 +618,15 @@ out/test/spec/reference-types/table_copy.wast:1356: assert_trap passed: uninitia out/test/spec/reference-types/table_copy.wast:1357: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1358: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1359: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1360: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1361: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1362: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1363: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1364: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1365: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1366: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1367: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1368: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1369: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1370: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1371: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1372: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1373: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1374: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1375: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1376: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1377: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1378: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1379: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1380: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1381: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1382: assert_trap passed: uninitialized table element @@ -492,76 +641,52 @@ out/test/spec/reference-types/table_copy.wast:1390: assert_trap passed: uninitia out/test/spec/reference-types/table_copy.wast:1391: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1392: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1393: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1394: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1395: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1396: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1397: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1398: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1399: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1400: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1401: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1402: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1403: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1404: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1405: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1406: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1407: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1408: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1409: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1410: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1411: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1412: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1413: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1414: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1415: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1416: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1417: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1418: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1419: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1420: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1421: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1422: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1466: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +out/test/spec/reference-types/table_copy.wast:1426: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1427: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1432: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1433: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1434: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1435: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1441: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1442: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1443: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1444: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1445: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1446: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1447: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1448: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1449: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1450: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1451: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1452: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1453: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1454: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1455: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1456: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1457: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1458: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1463: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1464: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1465: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1466: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1472: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1473: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1474: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1475: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1476: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1477: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1478: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1479: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1480: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1481: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1482: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1483: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1484: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1485: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1486: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1487: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1488: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1489: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1490: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1491: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1492: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1493: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1494: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1495: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1496: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1497: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1498: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1499: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1500: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1501: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1502: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1503: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1504: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1505: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1506: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1507: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1508: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1509: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1510: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1511: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1512: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1513: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1514: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1515: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1516: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1517: assert_trap passed: uninitialized table element +test() => out/test/spec/reference-types/table_copy.wast:1518: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1519: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1520: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1521: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1522: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1523: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1524: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1525: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1526: assert_trap passed: uninitialized table element @@ -570,11 +695,6 @@ out/test/spec/reference-types/table_copy.wast:1528: assert_trap passed: uninitia out/test/spec/reference-types/table_copy.wast:1529: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1530: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1531: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1532: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1533: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1534: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1535: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1536: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1537: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1538: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1539: assert_trap passed: uninitialized table element @@ -589,19 +709,10 @@ out/test/spec/reference-types/table_copy.wast:1547: assert_trap passed: uninitia out/test/spec/reference-types/table_copy.wast:1548: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1549: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1550: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1551: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1552: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1553: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1554: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1555: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1556: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1557: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1558: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1559: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1560: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1561: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1562: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1563: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1564: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1565: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1566: assert_trap passed: uninitialized table element @@ -616,23 +727,512 @@ out/test/spec/reference-types/table_copy.wast:1574: assert_trap passed: uninitia out/test/spec/reference-types/table_copy.wast:1575: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1576: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_copy.wast:1577: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1578: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1579: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1580: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1581: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1582: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1583: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1584: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1585: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1586: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1587: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1588: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1589: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1590: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1591: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1592: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1593: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1594: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_copy.wast:1595: assert_trap passed: uninitialized table element -814/814 tests passed. +test() => +out/test/spec/reference-types/table_copy.wast:1610: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1611: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1616: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1617: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1618: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1619: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1620: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1621: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1627: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1628: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1629: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1630: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1631: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1632: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1633: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1634: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1635: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1636: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1637: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1638: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1639: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1640: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1641: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1642: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1647: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1648: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1649: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1650: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1651: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1656: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1657: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1658: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1659: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1660: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1661: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1667: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1668: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1669: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:1694: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:1719: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:1744: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:1769: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +test() => +out/test/spec/reference-types/table_copy.wast:1844: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +out/test/spec/reference-types/table_copy.wast:1894: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +out/test/spec/reference-types/table_copy.wast:1944: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:1969: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:1994: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2019: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2044: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +test() => +out/test/spec/reference-types/table_copy.wast:2119: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +out/test/spec/reference-types/table_copy.wast:2169: assert_trap passed: out of bounds table access: table.copy out of bounds +test() => +out/test/spec/reference-types/table_copy.wast:2219: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2247: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2257: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2258: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2259: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2260: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2261: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2262: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2263: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2264: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2265: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2266: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2267: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2268: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2269: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2270: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2271: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2272: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2273: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2274: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2275: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2276: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2277: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2278: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2279: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2280: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2308: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2319: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2320: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2321: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2322: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2323: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2324: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2325: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2326: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2327: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2328: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2329: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2330: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2331: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2332: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2333: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2334: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2335: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2336: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2337: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2338: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2339: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2340: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2341: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2369: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2371: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2372: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2373: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2374: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2375: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2376: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2377: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2378: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2379: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2380: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2381: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2382: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2383: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2384: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2385: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2386: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2387: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2388: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2389: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2390: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2391: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2392: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2393: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2394: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2430: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2432: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2433: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2434: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2435: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2436: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2437: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2438: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2439: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2440: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2441: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2442: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2443: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2444: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2445: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2446: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2447: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2448: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2449: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2450: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2451: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2452: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2453: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2454: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2491: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2493: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2494: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2495: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2496: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2497: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2498: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2499: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2500: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2501: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2502: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2503: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2512: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2513: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2514: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2515: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2516: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2517: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2518: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2519: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2520: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2521: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2522: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2523: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2524: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2552: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2554: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2555: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2556: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2557: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2558: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2559: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2560: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2561: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2562: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2563: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2564: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2565: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2566: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2567: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2568: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2569: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2570: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2571: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2572: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2573: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2574: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2575: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2576: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2577: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2613: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2615: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2616: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2617: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2618: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2619: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2620: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2621: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2622: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2623: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2624: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2625: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2626: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2627: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2628: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2629: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2630: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2631: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2632: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2633: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2634: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2635: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2644: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2645: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2646: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2674: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2676: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2677: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2678: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2679: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2680: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2681: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2682: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2683: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2684: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2685: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2686: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2687: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2688: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2689: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2690: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2691: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2692: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2693: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2694: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2695: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2696: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2697: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2698: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2699: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2735: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2737: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2738: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2739: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2740: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2741: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2742: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2743: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2744: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2745: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2746: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2747: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2748: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2749: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2750: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2751: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2752: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2753: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2754: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2755: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2756: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2757: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2796: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2798: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2799: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2800: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2801: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2802: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2803: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2804: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2805: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2806: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2807: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2808: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2809: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2810: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2811: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2812: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2813: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2814: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2815: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2816: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2817: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2818: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2819: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2820: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2821: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2822: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2823: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2824: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2825: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2826: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2827: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2828: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2829: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2830: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2831: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2832: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2833: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2834: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2835: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2836: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2837: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2838: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2839: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2840: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2841: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2842: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2843: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2844: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2845: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2846: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2847: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2848: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2849: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2850: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2851: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2852: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2853: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2854: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2855: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2856: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2857: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2858: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2859: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2860: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2861: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2862: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2863: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2864: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2865: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2866: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2867: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2868: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2869: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2870: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2871: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2872: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2873: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2874: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2875: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2876: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2877: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2878: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2879: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2880: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2881: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2882: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2883: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2884: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2885: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2886: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2887: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2888: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2889: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2890: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2891: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2892: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2893: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2894: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2895: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2896: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2897: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2898: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2899: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2900: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2901: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2902: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2903: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2904: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2905: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2906: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2907: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2908: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2909: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2953: assert_trap passed: out of bounds table access: table.copy out of bounds +out/test/spec/reference-types/table_copy.wast:2971: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2972: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2973: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2974: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2975: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2976: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2977: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2978: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2979: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2980: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2981: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2982: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2983: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2984: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2985: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2986: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2987: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2988: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2989: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2990: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2991: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2992: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2993: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2994: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2995: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2996: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2997: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2998: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:2999: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3000: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3001: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3002: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3003: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3004: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3005: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3006: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3007: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3008: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3009: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3010: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3011: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3012: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3013: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3014: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3015: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3016: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3017: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3018: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3019: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3020: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3021: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3022: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3023: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3024: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3025: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3026: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3027: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3028: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3029: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3030: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3031: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3032: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3033: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3034: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3035: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3036: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3037: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3038: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3039: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3040: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3041: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3042: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3043: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3044: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3045: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3046: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3047: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3048: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3049: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3050: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3051: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3052: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3053: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3054: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3055: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3056: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3057: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3058: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3059: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3060: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3061: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3062: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3063: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3064: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3065: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3066: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3067: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3068: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3069: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3070: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3071: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3072: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3073: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3074: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3075: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3076: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3077: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3078: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3079: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3080: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3081: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_copy.wast:3082: assert_trap passed: uninitialized table element +1675/1675 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/table_fill.txt b/test/spec/reference-types/table_fill.txt index 394ac721..2910f923 100644 --- a/test/spec/reference-types/table_fill.txt +++ b/test/spec/reference-types/table_fill.txt @@ -6,31 +6,31 @@ out/test/spec/reference-types/table_fill.wast:50: assert_trap passed: out of bou out/test/spec/reference-types/table_fill.wast:58: assert_trap passed: out of bounds table access: table.fill out of bounds out/test/spec/reference-types/table_fill.wast:63: assert_trap passed: out of bounds table access: table.fill out of bounds out/test/spec/reference-types/table_fill.wast:71: assert_invalid passed: - error: type mismatch in table.fill, expected [i32, anyref, i32] but got [] + error: type mismatch in table.fill, expected [i32, externref, i32] but got [] 0000020: error: OnTableFillExpr callback failed out/test/spec/reference-types/table_fill.wast:80: assert_invalid passed: - error: type mismatch in table.fill, expected [i32, anyref, i32] but got [nullref, i32] - 0000023: error: OnTableFillExpr callback failed + error: type mismatch in table.fill, expected [i32, externref, i32] but got [externref, i32] + 0000024: error: OnTableFillExpr callback failed out/test/spec/reference-types/table_fill.wast:89: assert_invalid passed: - error: type mismatch in table.fill, expected [i32, anyref, i32] but got [i32, i32] + error: type mismatch in table.fill, expected [i32, externref, i32] but got [i32, i32] 0000024: error: OnTableFillExpr callback failed out/test/spec/reference-types/table_fill.wast:98: assert_invalid passed: - error: type mismatch in table.fill, expected [i32, anyref, i32] but got [i32, nullref] - 0000023: error: OnTableFillExpr callback failed + error: type mismatch in table.fill, expected [i32, externref, i32] but got [i32, externref] + 0000024: error: OnTableFillExpr callback failed out/test/spec/reference-types/table_fill.wast:107: assert_invalid passed: - error: type mismatch in table.fill, expected [i32, anyref, i32] but got [f32, nullref, i32] - 0000028: error: OnTableFillExpr callback failed + error: type mismatch in table.fill, expected [i32, externref, i32] but got [f32, externref, i32] + 0000029: error: OnTableFillExpr callback failed out/test/spec/reference-types/table_fill.wast:116: assert_invalid passed: - error: type mismatch in table.fill, expected [i32, funcref, i32] but got [i32, anyref, i32] + error: type mismatch in table.fill, expected [i32, funcref, i32] but got [i32, externref, i32] 0000027: error: OnTableFillExpr callback failed out/test/spec/reference-types/table_fill.wast:125: assert_invalid passed: - error: type mismatch in table.fill, expected [i32, anyref, i32] but got [i32, nullref, f32] - 0000028: error: OnTableFillExpr callback failed + error: type mismatch in table.fill, expected [i32, externref, i32] but got [i32, externref, f32] + 0000029: error: OnTableFillExpr callback failed out/test/spec/reference-types/table_fill.wast:135: assert_invalid passed: - error: type mismatch in table.fill, expected [i32, funcref, i32] but got [i32, anyref, i32] + error: type mismatch in table.fill, expected [i32, funcref, i32] but got [i32, externref, i32] 000002a: error: OnTableFillExpr callback failed out/test/spec/reference-types/table_fill.wast:146: assert_invalid passed: error: type mismatch in implicit return, expected [i32] but got [] - 0000027: error: EndFunctionBody callback failed + 0000028: error: EndFunctionBody callback failed 44/44 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/table_get.txt b/test/spec/reference-types/table_get.txt index 05c20913..a2be5a23 100644 --- a/test/spec/reference-types/table_get.txt +++ b/test/spec/reference-types/table_get.txt @@ -2,7 +2,7 @@ ;;; STDIN_FILE: third_party/testsuite/proposals/reference-types/table_get.wast ;;; ARGS*: --enable-reference-types (;; STDOUT ;;; -init(anyref:2) => +init(externref:2) => out/test/spec/reference-types/table_get.wast:33: assert_trap passed: out of bounds table access: table.get at 2 >= max value 2 out/test/spec/reference-types/table_get.wast:34: assert_trap passed: out of bounds table access: table.get at 3 >= max value 3 out/test/spec/reference-types/table_get.wast:35: assert_trap passed: out of bounds table access: table.get at 4294967295 >= max value 2 @@ -14,13 +14,13 @@ out/test/spec/reference-types/table_get.wast:51: assert_invalid passed: error: type mismatch in table.get, expected [i32] but got [f32] 0000025: error: OnTableGetExpr callback failed out/test/spec/reference-types/table_get.wast:61: assert_invalid passed: - error: type mismatch in function, expected [] but got [anyref] + error: type mismatch in function, expected [] but got [externref] 0000022: error: EndFunctionBody callback failed out/test/spec/reference-types/table_get.wast:70: assert_invalid passed: - error: type mismatch in implicit return, expected [funcref] but got [anyref] + error: type mismatch in implicit return, expected [funcref] but got [externref] 0000023: error: EndFunctionBody callback failed out/test/spec/reference-types/table_get.wast:80: assert_invalid passed: - error: type mismatch in implicit return, expected [funcref] but got [anyref] + error: type mismatch in implicit return, expected [funcref] but got [externref] 0000026: error: EndFunctionBody callback failed 15/15 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/table_grow.txt b/test/spec/reference-types/table_grow.txt index 45f9f844..6a60f6eb 100644 --- a/test/spec/reference-types/table_grow.txt +++ b/test/spec/reference-types/table_grow.txt @@ -9,25 +9,25 @@ out/test/spec/reference-types/table_grow.wast:23: assert_trap passed: out of bou out/test/spec/reference-types/table_grow.wast:34: assert_trap passed: out of bounds table access: table.set at 5 >= max value 5 out/test/spec/reference-types/table_grow.wast:35: assert_trap passed: out of bounds table access: table.get at 5 >= max value 5 out/test/spec/reference-types/table_grow.wast:111: assert_invalid passed: - error: type mismatch in table.grow, expected [anyref, i32] but got [] + error: type mismatch in table.grow, expected [externref, i32] but got [] 0000021: error: OnTableGrowExpr callback failed out/test/spec/reference-types/table_grow.wast:120: assert_invalid passed: - error: type mismatch in table.grow, expected [anyref, i32] but got [nullref] - 0000022: error: OnTableGrowExpr callback failed + error: type mismatch in table.grow, expected [externref, i32] but got [externref] + 0000023: error: OnTableGrowExpr callback failed out/test/spec/reference-types/table_grow.wast:129: assert_invalid passed: - error: type mismatch in table.grow, expected [anyref, i32] but got [i32] + error: type mismatch in table.grow, expected [externref, i32] but got [i32] 0000023: error: OnTableGrowExpr callback failed out/test/spec/reference-types/table_grow.wast:138: assert_invalid passed: - error: type mismatch in table.grow, expected [anyref, i32] but got [nullref, f32] - 0000027: error: OnTableGrowExpr callback failed + error: type mismatch in table.grow, expected [externref, i32] but got [externref, f32] + 0000028: error: OnTableGrowExpr callback failed out/test/spec/reference-types/table_grow.wast:147: assert_invalid passed: - error: type mismatch in table.grow, expected [funcref, i32] but got [anyref, i32] + error: type mismatch in table.grow, expected [funcref, i32] but got [externref, i32] 0000026: error: OnTableGrowExpr callback failed out/test/spec/reference-types/table_grow.wast:157: assert_invalid passed: error: type mismatch in function, expected [] but got [i32] - 0000024: error: EndFunctionBody callback failed + 0000025: error: EndFunctionBody callback failed out/test/spec/reference-types/table_grow.wast:166: assert_invalid passed: error: type mismatch in implicit return, expected [f32] but got [i32] - 0000025: error: EndFunctionBody callback failed + 0000026: error: EndFunctionBody callback failed 45/45 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/table_init.txt b/test/spec/reference-types/table_init.txt index 36b202d7..efb6e6e2 100644 --- a/test/spec/reference-types/table_init.txt +++ b/test/spec/reference-types/table_init.txt @@ -3,12 +3,10 @@ ;;; ARGS*: --enable-reference-types (;; STDOUT ;;; test() => -out/test/spec/reference-types/table_init.wast:40: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:41: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:46: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:51: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:57: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:58: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:42: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:43: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:48: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:53: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:59: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:60: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:61: assert_trap passed: uninitialized table element @@ -20,18 +18,17 @@ out/test/spec/reference-types/table_init.wast:66: assert_trap passed: uninitiali out/test/spec/reference-types/table_init.wast:67: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:68: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:69: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:70: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:71: assert_trap passed: uninitialized table element test() => -out/test/spec/reference-types/table_init.wast:97: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:98: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:103: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:104: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:105: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:100: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:101: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:106: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:107: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:108: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:115: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:116: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:117: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:109: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:110: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:111: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:118: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:119: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:120: assert_trap passed: uninitialized table element @@ -41,519 +38,301 @@ out/test/spec/reference-types/table_init.wast:123: assert_trap passed: uninitial out/test/spec/reference-types/table_init.wast:124: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:125: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:126: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:127: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:128: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:129: assert_trap passed: uninitialized table element test() => -out/test/spec/reference-types/table_init.wast:162: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:163: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:168: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:173: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:175: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:180: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:182: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:166: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:167: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:172: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:177: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:179: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:184: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:187: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:186: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:188: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:189: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:190: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:191: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:193: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:192: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:193: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:194: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:195: assert_trap passed: uninitialized table element +test() => +out/test/spec/reference-types/table_init.wast:224: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:225: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:230: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:235: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:241: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:242: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:243: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:244: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:245: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:246: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:247: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:248: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:249: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:250: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:251: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:252: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:253: assert_trap passed: uninitialized table element +test() => +out/test/spec/reference-types/table_init.wast:282: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:283: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:288: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:289: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:290: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:291: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:292: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:293: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:300: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:301: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:302: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:303: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:304: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:305: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:306: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:307: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:308: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:309: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:310: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:311: assert_trap passed: uninitialized table element +test() => +out/test/spec/reference-types/table_init.wast:348: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:349: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:354: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:359: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:361: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:366: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:368: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:370: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:373: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:374: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:375: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:376: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:377: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:379: assert_invalid passed: 0000000: error: elem_segment variable out of range: 0 (max 0) 0000024: error: OnElemDropExpr callback failed -out/test/spec/reference-types/table_init.wast:199: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:385: assert_invalid passed: 0000000: error: table variable out of range: 0 (max 0) 0000000: error: elem_segment variable out of range: 0 (max 0) 000002b: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:205: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:391: assert_invalid passed: 0000000: error: elem_segment variable out of range: 4 (max 1) 0000035: error: OnElemDropExpr callback failed -out/test/spec/reference-types/table_init.wast:213: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:399: assert_invalid passed: 0000000: error: table variable out of range: 0 (max 0) 0000000: error: elem_segment variable out of range: 4 (max 1) 000003c: error: OnTableInitExpr callback failed test() => -out/test/spec/reference-types/table_init.wast:265: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:453: assert_trap passed: out of bounds table access: table.init out of bounds +test() => +test() => +out/test/spec/reference-types/table_init.wast:525: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:549: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:573: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:597: assert_trap passed: out of bounds table access: table.init out of bounds +test() => +out/test/spec/reference-types/table_init.wast:645: assert_trap passed: out of bounds table access: table.init out of bounds test() => +out/test/spec/reference-types/table_init.wast:693: assert_trap passed: out of bounds table access: table.init out of bounds test() => -out/test/spec/reference-types/table_init.wast:334: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/table_init.wast:357: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/table_init.wast:380: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/table_init.wast:403: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:741: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:765: assert_trap passed: out of bounds table access: table.init out of bounds test() => -out/test/spec/reference-types/table_init.wast:449: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:813: assert_trap passed: out of bounds table access: table.init out of bounds test() => -out/test/spec/reference-types/table_init.wast:495: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:861: assert_trap passed: out of bounds table access: table.init out of bounds test() => -out/test/spec/reference-types/table_init.wast:541: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/table_init.wast:544: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:909: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:912: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, i32, f32] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:553: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:921: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, i32, i64] 000003e: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:562: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:930: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, i32, f64] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:571: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:939: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, f32, i32] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:580: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:948: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, f32, f32] 0000044: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:589: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:957: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, f32, i64] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:598: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:966: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, f32, f64] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:607: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:975: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, i64, i32] 000003e: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:616: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:984: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, i64, f32] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:625: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:993: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, i64, i64] 000003e: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:634: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1002: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, i64, f64] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:643: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1011: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, f64, i32] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:652: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1020: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, f64, f32] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:661: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1029: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, f64, i64] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:670: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1038: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i32, f64, f64] 000004c: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:679: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1047: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, i32, i32] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:688: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1056: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, i32, f32] 0000044: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:697: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1065: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, i32, i64] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:706: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1074: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, i32, f64] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:715: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1083: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, f32, i32] 0000044: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:724: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1092: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, f32, f32] 0000047: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:733: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1101: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, f32, i64] 0000044: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:742: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1110: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, f32, f64] 000004b: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:751: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1119: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, i64, i32] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:760: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1128: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, i64, f32] 0000044: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:769: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1137: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, i64, i64] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:778: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1146: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, i64, f64] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:787: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1155: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, f64, i32] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:796: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1164: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, f64, f32] 000004b: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:805: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1173: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, f64, i64] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:814: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1182: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f32, f64, f64] 000004f: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:823: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1191: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, i32, i32] 000003e: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:832: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1200: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, i32, f32] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:841: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1209: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, i32, i64] 000003e: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:850: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1218: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, i32, f64] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:859: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1227: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, f32, i32] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:868: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1236: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, f32, f32] 0000044: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:877: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1245: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, f32, i64] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:886: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1254: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, f32, f64] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:895: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1263: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, i64, i32] 000003e: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:904: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1272: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, i64, f32] 0000041: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:913: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1281: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, i64, i64] 000003e: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:922: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1290: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, i64, f64] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:931: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1299: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, f64, i32] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:940: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1308: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, f64, f32] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:949: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1317: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, f64, i64] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:958: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1326: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [i64, f64, f64] 000004c: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:967: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1335: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, i32, i32] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:976: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1344: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, i32, f32] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:985: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1353: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, i32, i64] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:994: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1362: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, i32, f64] 000004c: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1003: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1371: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, f32, i32] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1012: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1380: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, f32, f32] 000004b: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1021: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1389: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, f32, i64] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1030: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1398: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, f32, f64] 000004f: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1039: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1407: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, i64, i32] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1048: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1416: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, i64, f32] 0000048: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1057: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1425: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, i64, i64] 0000045: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1066: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1434: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, i64, f64] 000004c: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1075: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1443: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, f64, i32] 000004c: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1084: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1452: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, f64, f32] 000004f: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1093: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1461: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, f64, i64] 000004c: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1102: assert_invalid passed: +out/test/spec/reference-types/table_init.wast:1470: assert_invalid passed: error: type mismatch in table.init, expected [i32, i32, i32] but got [f64, f64, f64] 0000053: error: OnTableInitExpr callback failed -out/test/spec/reference-types/table_init.wast:1138: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/table_init.wast:1139: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1140: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1141: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1142: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1143: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1144: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1145: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1146: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1147: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1148: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1149: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1150: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1151: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1152: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1153: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1154: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1155: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1156: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1157: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1158: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1159: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1160: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1161: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1162: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1163: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1164: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1165: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1166: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1167: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1168: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1169: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1170: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1200: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/table_init.wast:1201: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1202: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1203: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1204: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1205: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1206: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1207: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1208: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1209: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1210: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1211: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1212: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1213: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1214: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1215: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1216: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1217: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1218: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1219: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1220: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1221: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1222: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1223: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1224: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1225: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1226: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1227: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1228: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1229: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1230: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1231: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1232: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1262: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/table_init.wast:1263: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1264: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1265: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1266: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1267: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1268: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1269: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1270: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1271: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1272: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1273: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1274: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1275: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1276: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1277: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1278: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1279: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1280: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1281: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1282: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1283: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1284: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1285: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1286: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1287: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1288: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1289: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1290: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1291: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1292: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1293: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1294: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1295: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1296: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1297: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1298: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1299: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1300: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1301: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1302: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1303: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1304: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1305: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1306: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1307: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1308: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1309: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1310: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1311: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1312: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1313: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1314: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1315: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1316: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1317: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1318: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1319: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1320: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1321: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1322: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1323: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1324: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1325: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1326: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1327: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1328: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1329: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1330: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1331: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1332: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1333: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1334: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1335: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1336: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1337: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1338: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1339: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1340: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1341: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1342: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1343: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1344: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1345: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1346: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1347: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1348: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1349: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1350: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1351: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1352: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1353: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1354: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1355: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1356: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1357: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1358: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1359: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1360: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1361: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1362: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1363: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1364: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1365: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1366: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1367: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1368: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1369: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1370: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1371: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1372: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1373: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1374: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1375: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1376: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1377: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1378: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1379: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1380: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1381: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1382: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1383: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1384: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1385: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1386: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1387: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1388: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1389: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1390: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1391: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1392: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1393: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1394: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1395: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1396: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1397: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1398: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1399: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1400: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1401: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1402: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1403: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1404: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1405: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1406: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1407: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1408: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1409: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1410: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1411: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1412: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1413: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1414: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1415: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1416: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1417: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1418: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1419: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1420: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1421: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1422: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1452: assert_trap passed: out of bounds table access: table.init out of bounds -out/test/spec/reference-types/table_init.wast:1453: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1454: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1455: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1456: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1457: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1458: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1459: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1460: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1461: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1462: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1463: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1464: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1465: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1466: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1467: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1468: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1469: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1470: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1471: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1472: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1473: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1474: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1475: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1476: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1477: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1478: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1479: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1480: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1481: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1482: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1483: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1484: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1485: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1486: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1487: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1488: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1489: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1490: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1491: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1492: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1493: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1494: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1495: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1496: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1497: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1498: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1499: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1500: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1501: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1502: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1503: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1504: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1505: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1506: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1506: assert_trap passed: out of bounds table access: table.init out of bounds out/test/spec/reference-types/table_init.wast:1507: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1508: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1509: assert_trap passed: uninitialized table element @@ -586,36 +365,7 @@ out/test/spec/reference-types/table_init.wast:1535: assert_trap passed: uninitia out/test/spec/reference-types/table_init.wast:1536: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1537: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1538: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1539: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1540: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1541: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1542: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1543: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1544: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1545: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1546: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1547: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1548: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1549: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1550: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1551: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1552: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1553: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1554: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1555: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1556: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1557: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1558: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1559: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1560: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1561: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1562: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1563: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1564: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1565: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1566: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1567: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1568: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1568: assert_trap passed: out of bounds table access: table.init out of bounds out/test/spec/reference-types/table_init.wast:1569: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1570: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1571: assert_trap passed: uninitialized table element @@ -648,19 +398,19 @@ out/test/spec/reference-types/table_init.wast:1597: assert_trap passed: uninitia out/test/spec/reference-types/table_init.wast:1598: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1599: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1600: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1601: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1602: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1603: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1604: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1605: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1606: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1607: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1608: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1609: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1610: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1611: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1612: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1642: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:1630: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:1631: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1632: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1633: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1634: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1635: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1636: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1637: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1638: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1639: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1640: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1641: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1642: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1643: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1644: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1645: assert_trap passed: uninitialized table element @@ -725,7 +475,36 @@ out/test/spec/reference-types/table_init.wast:1703: assert_trap passed: uninitia out/test/spec/reference-types/table_init.wast:1704: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1705: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1706: assert_trap passed: uninitialized table element -out/test/spec/reference-types/table_init.wast:1736: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:1707: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1708: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1709: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1710: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1711: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1712: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1713: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1714: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1715: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1716: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1717: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1718: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1719: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1720: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1721: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1722: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1723: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1724: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1725: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1726: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1727: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1728: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1729: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1730: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1731: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1732: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1733: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1734: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1735: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1736: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1737: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1738: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1739: assert_trap passed: uninitialized table element @@ -742,5 +521,286 @@ out/test/spec/reference-types/table_init.wast:1749: assert_trap passed: uninitia out/test/spec/reference-types/table_init.wast:1750: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1751: assert_trap passed: uninitialized table element out/test/spec/reference-types/table_init.wast:1752: assert_trap passed: uninitialized table element -644/644 tests passed. +out/test/spec/reference-types/table_init.wast:1753: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1754: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1755: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1756: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1757: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1758: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1759: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1760: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1761: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1762: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1763: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1764: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1765: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1766: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1767: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1768: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1769: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1770: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1771: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1772: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1773: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1774: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1775: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1776: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1777: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1778: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1779: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1780: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1781: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1782: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1783: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1784: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1785: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1786: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1787: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1788: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1789: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1790: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1820: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:1821: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1822: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1823: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1824: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1825: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1826: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1827: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1828: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1829: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1830: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1831: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1832: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1833: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1834: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1835: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1836: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1837: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1838: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1839: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1840: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1841: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1842: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1843: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1844: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1845: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1846: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1847: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1848: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1849: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1850: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1851: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1852: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1853: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1854: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1855: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1856: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1857: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1858: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1859: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1860: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1861: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1862: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1863: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1864: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1865: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1866: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1867: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1868: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1869: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1870: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1871: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1872: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1873: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1874: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1875: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1876: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1877: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1878: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1879: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1880: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1881: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1882: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1883: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1884: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1885: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1886: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1887: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1888: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1889: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1890: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1891: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1892: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1893: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1894: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1895: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1896: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1897: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1898: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1899: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1900: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1901: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1902: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1903: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1904: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1905: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1906: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1907: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1908: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1909: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1910: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1911: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1912: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1913: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1914: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1915: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1916: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1917: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1918: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1919: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1920: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1921: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1922: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1923: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1924: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1925: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1926: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1927: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1928: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1929: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1930: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1931: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1932: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1933: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1934: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1935: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1936: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1937: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1938: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1939: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1940: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1941: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1942: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1943: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1944: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1945: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1946: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1947: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1948: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1949: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1950: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1951: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1952: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1953: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1954: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1955: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1956: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1957: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1958: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1959: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1960: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1961: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1962: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1963: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1964: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1965: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1966: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1967: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1968: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1969: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1970: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1971: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1972: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1973: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1974: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1975: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1976: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1977: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1978: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1979: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:1980: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2010: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:2011: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2012: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2013: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2014: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2015: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2016: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2017: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2018: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2019: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2020: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2021: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2022: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2023: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2024: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2025: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2026: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2027: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2028: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2029: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2030: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2031: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2032: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2033: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2034: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2035: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2036: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2037: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2038: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2039: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2040: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2041: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2042: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2043: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2044: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2045: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2046: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2047: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2048: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2049: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2050: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2051: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2052: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2053: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2054: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2055: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2056: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2057: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2058: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2059: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2060: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2061: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2062: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2063: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2064: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2065: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2066: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2067: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2068: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2069: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2070: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2071: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2072: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2073: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2074: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2104: assert_trap passed: out of bounds table access: table.init out of bounds +out/test/spec/reference-types/table_init.wast:2105: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2106: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2107: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2108: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2109: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2110: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2111: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2112: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2113: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2114: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2115: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2116: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2117: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2118: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2119: assert_trap passed: uninitialized table element +out/test/spec/reference-types/table_init.wast:2120: assert_trap passed: uninitialized table element +744/744 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/reference-types/table_set.txt b/test/spec/reference-types/table_set.txt index b2db4030..a479c7ab 100644 --- a/test/spec/reference-types/table_set.txt +++ b/test/spec/reference-types/table_set.txt @@ -11,25 +11,25 @@ out/test/spec/reference-types/table_set.wast:47: assert_trap passed: out of boun out/test/spec/reference-types/table_set.wast:48: assert_trap passed: out of bounds table access: table.set at 4294967295 >= max value 1 out/test/spec/reference-types/table_set.wast:49: assert_trap passed: out of bounds table access: table.set at 4294967295 >= max value 2 out/test/spec/reference-types/table_set.wast:55: assert_invalid passed: - error: type mismatch in table.set, expected [i32, anyref] but got [] + error: type mismatch in table.set, expected [i32, externref] but got [] 000001f: error: OnTableSetExpr callback failed out/test/spec/reference-types/table_set.wast:64: assert_invalid passed: - error: type mismatch in table.set, expected [i32, anyref] but got [nullref] - 0000020: error: OnTableSetExpr callback failed + error: type mismatch in table.set, expected [i32, externref] but got [externref] + 0000021: error: OnTableSetExpr callback failed out/test/spec/reference-types/table_set.wast:73: assert_invalid passed: - error: type mismatch in table.set, expected [i32, anyref] but got [i32] + error: type mismatch in table.set, expected [i32, externref] but got [i32] 0000021: error: OnTableSetExpr callback failed out/test/spec/reference-types/table_set.wast:82: assert_invalid passed: - error: type mismatch in table.set, expected [i32, anyref] but got [f32, nullref] - 0000025: error: OnTableSetExpr callback failed + error: type mismatch in table.set, expected [i32, externref] but got [f32, externref] + 0000026: error: OnTableSetExpr callback failed out/test/spec/reference-types/table_set.wast:91: assert_invalid passed: - error: type mismatch in table.set, expected [i32, funcref] but got [i32, anyref] + error: type mismatch in table.set, expected [i32, funcref] but got [i32, externref] 0000024: error: OnTableSetExpr callback failed out/test/spec/reference-types/table_set.wast:101: assert_invalid passed: - error: type mismatch in table.set, expected [i32, funcref] but got [i32, anyref] + error: type mismatch in table.set, expected [i32, funcref] but got [i32, externref] 0000027: error: OnTableSetExpr callback failed out/test/spec/reference-types/table_set.wast:112: assert_invalid passed: error: type mismatch in implicit return, expected [i32] but got [] - 0000024: error: EndFunctionBody callback failed + 0000025: error: EndFunctionBody callback failed 25/25 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/simd/simd_address.txt b/test/spec/simd/simd_address.txt index db35b20c..c1d51645 100644 --- a/test/spec/simd/simd_address.txt +++ b/test/spec/simd/simd_address.txt @@ -2,30 +2,33 @@ ;;; STDIN_FILE: third_party/testsuite/proposals/simd/simd_address.wast ;;; ARGS*: --enable-simd (;; STDOUT ;;; -out/test/spec/simd/simd_address.wast:86: assert_trap passed: out of bounds memory access: access at 65521+16 >= max value 65536 -out/test/spec/simd/simd_address.wast:104: assert_trap passed: out of bounds memory access: access at 65521+16 >= max value 65536 -out/test/spec/simd/simd_address.wast:107: assert_malformed passed: +out/test/spec/simd/simd_address.wast:89: assert_trap passed: out of bounds memory access: access at 4294967296+16 >= max value 65536 +out/test/spec/simd/simd_address.wast:90: assert_trap passed: out of bounds memory access: access at 65521+16 >= max value 65536 +out/test/spec/simd/simd_address.wast:99: assert_trap passed: out of bounds memory access: access at 4294967296+16 >= max value 65536 +out/test/spec/simd/simd_address.wast:100: assert_trap passed: out of bounds memory access: access at 65536+16 >= max value 65536 +out/test/spec/simd/simd_address.wast:110: assert_trap passed: out of bounds memory access: access at 65521+16 >= max value 65536 +out/test/spec/simd/simd_address.wast:113: assert_malformed passed: out/test/spec/simd/simd_address/simd_address.2.wat:1:35: error: unexpected token offset=-1, expected ). (memory 1)(func (drop (v128.load offset=-1 (i32.const 0)))) ^^^^^^^^^ out/test/spec/simd/simd_address/simd_address.2.wat:1:60: error: unexpected token ), expected EOF. (memory 1)(func (drop (v128.load offset=-1 (i32.const 0)))) ^ -out/test/spec/simd/simd_address.wast:122: assert_trap passed: out of bounds memory access: access at 65521+16 >= max value 65536 -out/test/spec/simd/simd_address.wast:125: assert_malformed passed: +out/test/spec/simd/simd_address.wast:128: assert_trap passed: out of bounds memory access: access at 65521+16 >= max value 65536 +out/test/spec/simd/simd_address.wast:131: assert_malformed passed: out/test/spec/simd/simd_address/simd_address.4.wat:1:30: error: unexpected token offset=-1, expected ). (memory 1)(func (v128.store offset=-1 (i32.const 0) (v128.const i32x4 0 0 0 ... ^^^^^^^^^ out/test/spec/simd/simd_address/simd_address.4.wat:1:81: error: unexpected token ), expected EOF. ...ory 1)(func (v128.store offset=-1 (i32.const 0) (v128.const i32x4 0 0 0 0))) ^ -out/test/spec/simd/simd_address.wast:138: assert_malformed passed: +out/test/spec/simd/simd_address.wast:144: assert_malformed passed: out/test/spec/simd/simd_address/simd_address.5.wat:1:34: error: offset must be less than or equal to 0xffffffff (memory 1)(func (drop (v128.load offset=4294967296 (i32.const 0)))) ^^^^^^^^^^^^^^^^^ -out/test/spec/simd/simd_address.wast:146: assert_malformed passed: +out/test/spec/simd/simd_address.wast:152: assert_malformed passed: out/test/spec/simd/simd_address/simd_address.6.wat:1:29: error: offset must be less than or equal to 0xffffffff (memory 1)(func (v128.store offset=4294967296 (i32.const 0) (v128.const i32x4... ^^^^^^^^^^^^^^^^^ -43/43 tests passed. +46/46 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/simd/simd_load_extend.txt b/test/spec/simd/simd_load_extend.txt index 0f8eae33..cbe53c3d 100644 --- a/test/spec/simd/simd_load_extend.txt +++ b/test/spec/simd/simd_load_extend.txt @@ -2,89 +2,95 @@ ;;; STDIN_FILE: third_party/testsuite/proposals/simd/simd_load_extend.wast ;;; ARGS*: --enable-simd (;; STDOUT ;;; -out/test/spec/simd/simd_load_extend.wast:208: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536 -out/test/spec/simd/simd_load_extend.wast:209: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536 -out/test/spec/simd/simd_load_extend.wast:210: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536 -out/test/spec/simd/simd_load_extend.wast:211: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536 -out/test/spec/simd/simd_load_extend.wast:212: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 -out/test/spec/simd/simd_load_extend.wast:213: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 -out/test/spec/simd/simd_load_extend.wast:216: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:226: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:227: assert_trap passed: out of bounds memory access: access at 4294967295+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:228: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:229: assert_trap passed: out of bounds memory access: access at 65536+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:230: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:231: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:233: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:234: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:235: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:236: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:237: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:238: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/simd/simd_load_extend.wast:241: assert_invalid passed: error: type mismatch in i16x8.load8x8_s, expected [i32] but got [f32] 0000026: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:217: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:242: assert_invalid passed: error: type mismatch in i16x8.load8x8_u, expected [i32] but got [f32] 0000026: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:218: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:243: assert_invalid passed: error: type mismatch in i32x4.load16x4_s, expected [i32] but got [f64] 000002a: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:219: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:244: assert_invalid passed: error: type mismatch in i32x4.load16x4_u, expected [i32] but got [f64] 000002a: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:220: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:245: assert_invalid passed: error: type mismatch in i64x2.load32x2_s, expected [i32] but got [v128] 0000033: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:221: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:246: assert_invalid passed: error: type mismatch in i64x2.load32x2_u, expected [i32] but got [v128] 0000033: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:226: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:251: assert_invalid passed: error: type mismatch in i16x8.load8x8_s, expected [i32] but got [] 0000021: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:234: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:259: assert_invalid passed: error: type mismatch in i16x8.load8x8_u, expected [i32] but got [] 0000021: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:242: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:267: assert_invalid passed: error: type mismatch in i32x4.load16x4_s, expected [i32] but got [] 0000021: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:250: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:275: assert_invalid passed: error: type mismatch in i32x4.load16x4_u, expected [i32] but got [] 0000021: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:258: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:283: assert_invalid passed: error: type mismatch in i64x2.load32x2_s, expected [i32] but got [] 0000021: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:266: assert_invalid passed: +out/test/spec/simd/simd_load_extend.wast:291: assert_invalid passed: error: type mismatch in i64x2.load32x2_u, expected [i32] but got [] 0000021: error: OnLoadExpr callback failed -out/test/spec/simd/simd_load_extend.wast:276: assert_malformed passed: +out/test/spec/simd/simd_load_extend.wast:301: assert_malformed passed: out/test/spec/simd/simd_load_extend/simd_load_extend.13.wat:1:25: error: unexpected token "i16x8.load16x4_s", expected an expr. (memory 1) (func (drop (i16x8.load16x4_s (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_extend/simd_load_extend.13.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i16x8.load16x4_s (i32.const 0)))) ^ -out/test/spec/simd/simd_load_extend.wast:277: assert_malformed passed: +out/test/spec/simd/simd_load_extend.wast:302: assert_malformed passed: out/test/spec/simd/simd_load_extend/simd_load_extend.14.wat:1:25: error: unexpected token "i16x8.load16x4_u", expected an expr. (memory 1) (func (drop (i16x8.load16x4_u (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_extend/simd_load_extend.14.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i16x8.load16x4_u (i32.const 0)))) ^ -out/test/spec/simd/simd_load_extend.wast:278: assert_malformed passed: +out/test/spec/simd/simd_load_extend.wast:303: assert_malformed passed: out/test/spec/simd/simd_load_extend/simd_load_extend.15.wat:1:25: error: unexpected token "i32x4.load32x2_s", expected an expr. (memory 1) (func (drop (i32x4.load32x2_s (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_extend/simd_load_extend.15.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i32x4.load32x2_s (i32.const 0)))) ^ -out/test/spec/simd/simd_load_extend.wast:279: assert_malformed passed: +out/test/spec/simd/simd_load_extend.wast:304: assert_malformed passed: out/test/spec/simd/simd_load_extend/simd_load_extend.16.wat:1:25: error: unexpected token "i32x4.load32x2_u", expected an expr. (memory 1) (func (drop (i32x4.load32x2_u (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_extend/simd_load_extend.16.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i32x4.load32x2_u (i32.const 0)))) ^ -out/test/spec/simd/simd_load_extend.wast:280: assert_malformed passed: +out/test/spec/simd/simd_load_extend.wast:305: assert_malformed passed: out/test/spec/simd/simd_load_extend/simd_load_extend.17.wat:1:25: error: unexpected token "i64x2.load64x1_s", expected an expr. (memory 1) (func (drop (i64x2.load64x1_s (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_extend/simd_load_extend.17.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i64x2.load64x1_s (i32.const 0)))) ^ -out/test/spec/simd/simd_load_extend.wast:281: assert_malformed passed: +out/test/spec/simd/simd_load_extend.wast:306: assert_malformed passed: out/test/spec/simd/simd_load_extend/simd_load_extend.18.wat:1:25: error: unexpected token "i64x2.load64x1_u", expected an expr. (memory 1) (func (drop (i64x2.load64x1_u (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_extend/simd_load_extend.18.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i64x2.load64x1_u (i32.const 0)))) ^ -96/96 tests passed. +102/102 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/simd/simd_load_splat.txt b/test/spec/simd/simd_load_splat.txt index bea685af..056dd74d 100644 --- a/test/spec/simd/simd_load_splat.txt +++ b/test/spec/simd/simd_load_splat.txt @@ -22,65 +22,69 @@ out/test/spec/simd/simd_load_splat.wast:136: assert_trap passed: out of bounds m out/test/spec/simd/simd_load_splat.wast:137: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 out/test/spec/simd/simd_load_splat.wast:138: assert_trap passed: out of bounds memory access: access at 65530+8 >= max value 65536 out/test/spec/simd/simd_load_splat.wast:139: assert_trap passed: out of bounds memory access: access at 65543+8 >= max value 65536 -out/test/spec/simd/simd_load_splat.wast:141: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536 -out/test/spec/simd/simd_load_splat.wast:142: assert_trap passed: out of bounds memory access: access at 65535+2 >= max value 65536 -out/test/spec/simd/simd_load_splat.wast:143: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536 -out/test/spec/simd/simd_load_splat.wast:144: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 -out/test/spec/simd/simd_load_splat.wast:145: assert_trap passed: out of bounds memory access: access at 65537+1 >= max value 65536 -out/test/spec/simd/simd_load_splat.wast:146: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536 -out/test/spec/simd/simd_load_splat.wast:147: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536 -out/test/spec/simd/simd_load_splat.wast:148: assert_trap passed: out of bounds memory access: access at 65530+8 >= max value 65536 -out/test/spec/simd/simd_load_splat.wast:209: assert_invalid passed: +out/test/spec/simd/simd_load_splat.wast:141: assert_trap passed: out of bounds memory access: access at 4294967296+1 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:142: assert_trap passed: out of bounds memory access: access at 4294967296+2 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:143: assert_trap passed: out of bounds memory access: access at 4294967296+4 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:144: assert_trap passed: out of bounds memory access: access at 4294967296+8 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:146: assert_trap passed: out of bounds memory access: access at 65536+1 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:147: assert_trap passed: out of bounds memory access: access at 65535+2 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:148: assert_trap passed: out of bounds memory access: access at 65533+4 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:149: assert_trap passed: out of bounds memory access: access at 65529+8 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:150: assert_trap passed: out of bounds memory access: access at 65537+1 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:151: assert_trap passed: out of bounds memory access: access at 65536+2 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:152: assert_trap passed: out of bounds memory access: access at 65534+4 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:153: assert_trap passed: out of bounds memory access: access at 65530+8 >= max value 65536 +out/test/spec/simd/simd_load_splat.wast:214: assert_invalid passed: error: type mismatch in v8x16.load_splat, expected [i32] but got [v128] 0000033: error: OnLoadSplatExpr callback failed -out/test/spec/simd/simd_load_splat.wast:210: assert_invalid passed: +out/test/spec/simd/simd_load_splat.wast:215: assert_invalid passed: error: type mismatch in v16x8.load_splat, expected [i32] but got [v128] 0000033: error: OnLoadSplatExpr callback failed -out/test/spec/simd/simd_load_splat.wast:211: assert_invalid passed: +out/test/spec/simd/simd_load_splat.wast:216: assert_invalid passed: error: type mismatch in v32x4.load_splat, expected [i32] but got [v128] 0000033: error: OnLoadSplatExpr callback failed -out/test/spec/simd/simd_load_splat.wast:212: assert_invalid passed: +out/test/spec/simd/simd_load_splat.wast:217: assert_invalid passed: error: type mismatch in v64x2.load_splat, expected [i32] but got [v128] 0000033: error: OnLoadSplatExpr callback failed -out/test/spec/simd/simd_load_splat.wast:217: assert_malformed passed: +out/test/spec/simd/simd_load_splat.wast:222: assert_malformed passed: out/test/spec/simd/simd_load_splat/simd_load_splat.6.wat:1:25: error: unexpected token "i8x16.load_splat", expected an expr. (memory 1) (func (drop (i8x16.load_splat (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_splat/simd_load_splat.6.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i8x16.load_splat (i32.const 0)))) ^ -out/test/spec/simd/simd_load_splat.wast:218: assert_malformed passed: +out/test/spec/simd/simd_load_splat.wast:223: assert_malformed passed: out/test/spec/simd/simd_load_splat/simd_load_splat.7.wat:1:25: error: unexpected token "i16x8.load_splat", expected an expr. (memory 1) (func (drop (i16x8.load_splat (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_splat/simd_load_splat.7.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i16x8.load_splat (i32.const 0)))) ^ -out/test/spec/simd/simd_load_splat.wast:219: assert_malformed passed: +out/test/spec/simd/simd_load_splat.wast:224: assert_malformed passed: out/test/spec/simd/simd_load_splat/simd_load_splat.8.wat:1:25: error: unexpected token "i32x4.load_splat", expected an expr. (memory 1) (func (drop (i32x4.load_splat (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_splat/simd_load_splat.8.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i32x4.load_splat (i32.const 0)))) ^ -out/test/spec/simd/simd_load_splat.wast:220: assert_malformed passed: +out/test/spec/simd/simd_load_splat.wast:225: assert_malformed passed: out/test/spec/simd/simd_load_splat/simd_load_splat.9.wat:1:25: error: unexpected token "i64x2.load_splat", expected an expr. (memory 1) (func (drop (i64x2.load_splat (i32.const 0)))) ^^^^^^^^^^^^^^^^ out/test/spec/simd/simd_load_splat/simd_load_splat.9.wat:1:56: error: unexpected token ), expected EOF. (memory 1) (func (drop (i64x2.load_splat (i32.const 0)))) ^ -out/test/spec/simd/simd_load_splat.wast:226: assert_invalid passed: +out/test/spec/simd/simd_load_splat.wast:231: assert_invalid passed: error: type mismatch in v8x16.load_splat, expected [i32] but got [] 0000021: error: OnLoadSplatExpr callback failed -out/test/spec/simd/simd_load_splat.wast:234: assert_invalid passed: +out/test/spec/simd/simd_load_splat.wast:239: assert_invalid passed: error: type mismatch in v16x8.load_splat, expected [i32] but got [] 0000021: error: OnLoadSplatExpr callback failed -out/test/spec/simd/simd_load_splat.wast:242: assert_invalid passed: +out/test/spec/simd/simd_load_splat.wast:247: assert_invalid passed: error: type mismatch in v32x4.load_splat, expected [i32] but got [] 0000021: error: OnLoadSplatExpr callback failed -out/test/spec/simd/simd_load_splat.wast:250: assert_invalid passed: +out/test/spec/simd/simd_load_splat.wast:255: assert_invalid passed: error: type mismatch in v64x2.load_splat, expected [i32] but got [] 0000021: error: OnLoadSplatExpr callback failed -120/120 tests passed. +124/124 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/stack.txt b/test/spec/stack.txt index 2899ca19..91796961 100644 --- a/test/spec/stack.txt +++ b/test/spec/stack.txt @@ -1,5 +1,5 @@ ;;; TOOL: run-interp-spec ;;; STDIN_FILE: third_party/testsuite/stack.wast (;; STDOUT ;;; -3/3 tests passed. +5/5 tests passed. ;;; STDOUT ;;) diff --git a/test/spec/typecheck.txt b/test/spec/typecheck.txt deleted file mode 100644 index 081403b4..00000000 --- a/test/spec/typecheck.txt +++ /dev/null @@ -1,497 +0,0 @@ -;;; TOOL: run-interp-spec -;;; STDIN_FILE: third_party/testsuite/typecheck.wast -(;; STDOUT ;;; -out/test/spec/typecheck.wast:6: assert_invalid passed: - error: type mismatch in if, expected [i32] but got [f32] - 000001e: error: OnIfExpr callback failed -out/test/spec/typecheck.wast:9: assert_invalid passed: - error: type mismatch in br_if, expected [i32] but got [f32] - 0000020: error: OnBrIfExpr callback failed -out/test/spec/typecheck.wast:13: assert_invalid passed: - error: type mismatch in br_table, expected [i32] but got [f32] - 0000021: error: OnBrTableExpr callback failed -out/test/spec/typecheck.wast:17: assert_invalid passed: - error: type mismatch in call, expected [i32] but got [f32] - 0000026: error: OnCallExpr callback failed -out/test/spec/typecheck.wast:19: assert_invalid passed: - error: type mismatch in call_indirect, expected [i32] but got [... f32] - 000002f: error: OnCallIndirectExpr callback failed -out/test/spec/typecheck.wast:29: assert_invalid passed: - error: type mismatch in call_indirect, expected [i32] but got [f32] - 0000029: error: OnCallIndirectExpr callback failed -out/test/spec/typecheck.wast:37: assert_invalid passed: - error: type mismatch in return, expected [i32] but got [f32] - 000001e: error: OnReturnExpr callback failed -out/test/spec/typecheck.wast:40: assert_invalid passed: - error: type mismatch in local.set, expected [i32] but got [f32] - 0000020: error: OnLocalSetExpr callback failed -out/test/spec/typecheck.wast:43: assert_invalid passed: - error: type mismatch in i32.load, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:44: assert_invalid passed: - error: type mismatch in i32.load8_s, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:45: assert_invalid passed: - error: type mismatch in i32.load8_u, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:46: assert_invalid passed: - error: type mismatch in i32.load16_s, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:47: assert_invalid passed: - error: type mismatch in i32.load16_u, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:48: assert_invalid passed: - error: type mismatch in i64.load, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:49: assert_invalid passed: - error: type mismatch in i64.load8_s, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:50: assert_invalid passed: - error: type mismatch in i64.load8_u, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:51: assert_invalid passed: - error: type mismatch in i64.load16_s, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:52: assert_invalid passed: - error: type mismatch in i64.load16_u, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:53: assert_invalid passed: - error: type mismatch in i64.load32_s, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:54: assert_invalid passed: - error: type mismatch in i64.load32_u, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:55: assert_invalid passed: - error: type mismatch in f32.load, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:56: assert_invalid passed: - error: type mismatch in f64.load, expected [i32] but got [f32] - 0000024: error: OnLoadExpr callback failed -out/test/spec/typecheck.wast:59: assert_invalid passed: - error: type mismatch in i32.store, expected [i32, i32] but got [f32, i32] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:60: assert_invalid passed: - error: type mismatch in i32.store8, expected [i32, i32] but got [f32, i32] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:61: assert_invalid passed: - error: type mismatch in i32.store16, expected [i32, i32] but got [f32, i32] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:62: assert_invalid passed: - error: type mismatch in i64.store, expected [i32, i64] but got [f32, i32] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:63: assert_invalid passed: - error: type mismatch in i64.store8, expected [i32, i64] but got [f32, i64] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:64: assert_invalid passed: - error: type mismatch in i64.store16, expected [i32, i64] but got [f32, i64] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:65: assert_invalid passed: - error: type mismatch in i64.store32, expected [i32, i64] but got [f32, i64] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:66: assert_invalid passed: - error: type mismatch in f32.store, expected [i32, f32] but got [f32, f32] - 0000029: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:67: assert_invalid passed: - error: type mismatch in f64.store, expected [i32, f64] but got [f32, f64] - 000002d: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:70: assert_invalid passed: - error: type mismatch in i32.store, expected [i32, i32] but got [i32, f32] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:71: assert_invalid passed: - error: type mismatch in i32.store8, expected [i32, i32] but got [i32, f32] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:72: assert_invalid passed: - error: type mismatch in i32.store16, expected [i32, i32] but got [i32, f32] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:73: assert_invalid passed: - error: type mismatch in i64.store, expected [i32, i64] but got [i32, f32] - 0000026: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:74: assert_invalid passed: - error: type mismatch in i64.store8, expected [i32, i64] but got [i32, f64] - 000002a: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:75: assert_invalid passed: - error: type mismatch in i64.store16, expected [i32, i64] but got [i32, f64] - 000002a: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:76: assert_invalid passed: - error: type mismatch in i64.store32, expected [i32, i64] but got [i32, f64] - 000002a: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:77: assert_invalid passed: - error: type mismatch in f32.store, expected [i32, f32] but got [i32, i32] - 0000023: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:78: assert_invalid passed: - error: type mismatch in f64.store, expected [i32, f64] but got [i32, i64] - 0000023: error: OnStoreExpr callback failed -out/test/spec/typecheck.wast:81: assert_invalid passed: - error: type mismatch in i32.add, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:82: assert_invalid passed: - error: type mismatch in i32.and, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:83: assert_invalid passed: - error: type mismatch in i32.div_s, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:84: assert_invalid passed: - error: type mismatch in i32.div_u, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:85: assert_invalid passed: - error: type mismatch in i32.mul, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:86: assert_invalid passed: - error: type mismatch in i32.or, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:87: assert_invalid passed: - error: type mismatch in i32.rem_s, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:88: assert_invalid passed: - error: type mismatch in i32.rem_u, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:89: assert_invalid passed: - error: type mismatch in i32.rotl, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:90: assert_invalid passed: - error: type mismatch in i32.rotr, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:91: assert_invalid passed: - error: type mismatch in i32.shl, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:92: assert_invalid passed: - error: type mismatch in i32.shr_s, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:93: assert_invalid passed: - error: type mismatch in i32.shr_u, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:94: assert_invalid passed: - error: type mismatch in i32.sub, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:95: assert_invalid passed: - error: type mismatch in i32.xor, expected [i32, i32] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:96: assert_invalid passed: - error: type mismatch in i64.add, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:97: assert_invalid passed: - error: type mismatch in i64.and, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:98: assert_invalid passed: - error: type mismatch in i64.div_s, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:99: assert_invalid passed: - error: type mismatch in i64.div_u, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:100: assert_invalid passed: - error: type mismatch in i64.mul, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:101: assert_invalid passed: - error: type mismatch in i64.or, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:102: assert_invalid passed: - error: type mismatch in i64.rem_s, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:103: assert_invalid passed: - error: type mismatch in i64.rem_u, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:104: assert_invalid passed: - error: type mismatch in i64.rotl, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:105: assert_invalid passed: - error: type mismatch in i64.rotr, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:106: assert_invalid passed: - error: type mismatch in i64.shl, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:107: assert_invalid passed: - error: type mismatch in i64.shr_s, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:108: assert_invalid passed: - error: type mismatch in i64.shr_u, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:109: assert_invalid passed: - error: type mismatch in i64.sub, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:110: assert_invalid passed: - error: type mismatch in i64.xor, expected [i64, i64] but got [i32, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:111: assert_invalid passed: - error: type mismatch in f32.add, expected [f32, f32] but got [i64, f64] - 0000023: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:112: assert_invalid passed: - error: type mismatch in f32.copysign, expected [f32, f32] but got [i64, f64] - 0000023: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:113: assert_invalid passed: - error: type mismatch in f32.div, expected [f32, f32] but got [i64, f64] - 0000023: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:114: assert_invalid passed: - error: type mismatch in f32.max, expected [f32, f32] but got [i64, f64] - 0000023: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:115: assert_invalid passed: - error: type mismatch in f32.min, expected [f32, f32] but got [i64, f64] - 0000023: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:116: assert_invalid passed: - error: type mismatch in f32.mul, expected [f32, f32] but got [i64, f64] - 0000023: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:117: assert_invalid passed: - error: type mismatch in f32.sub, expected [f32, f32] but got [i64, f64] - 0000023: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:118: assert_invalid passed: - error: type mismatch in f64.add, expected [f64, f64] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:119: assert_invalid passed: - error: type mismatch in f64.copysign, expected [f64, f64] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:120: assert_invalid passed: - error: type mismatch in f64.div, expected [f64, f64] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:121: assert_invalid passed: - error: type mismatch in f64.max, expected [f64, f64] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:122: assert_invalid passed: - error: type mismatch in f64.min, expected [f64, f64] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:123: assert_invalid passed: - error: type mismatch in f64.mul, expected [f64, f64] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:124: assert_invalid passed: - error: type mismatch in f64.sub, expected [f64, f64] but got [i64, f32] - 000001f: error: OnBinaryExpr callback failed -out/test/spec/typecheck.wast:127: assert_invalid passed: - error: type mismatch in i32.eqz, expected [i32] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:128: assert_invalid passed: - error: type mismatch in i32.clz, expected [i32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:129: assert_invalid passed: - error: type mismatch in i32.ctz, expected [i32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:130: assert_invalid passed: - error: type mismatch in i32.popcnt, expected [i32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:131: assert_invalid passed: - error: type mismatch in i64.eqz, expected [i64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:132: assert_invalid passed: - error: type mismatch in i64.clz, expected [i64] but got [i32] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:133: assert_invalid passed: - error: type mismatch in i64.ctz, expected [i64] but got [i32] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:134: assert_invalid passed: - error: type mismatch in i64.popcnt, expected [i64] but got [i32] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:135: assert_invalid passed: - error: type mismatch in f32.abs, expected [f32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:136: assert_invalid passed: - error: type mismatch in f32.ceil, expected [f32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:137: assert_invalid passed: - error: type mismatch in f32.floor, expected [f32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:138: assert_invalid passed: - error: type mismatch in f32.nearest, expected [f32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:139: assert_invalid passed: - error: type mismatch in f32.neg, expected [f32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:140: assert_invalid passed: - error: type mismatch in f32.sqrt, expected [f32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:141: assert_invalid passed: - error: type mismatch in f32.trunc, expected [f32] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:142: assert_invalid passed: - error: type mismatch in f64.abs, expected [f64] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:143: assert_invalid passed: - error: type mismatch in f64.ceil, expected [f64] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:144: assert_invalid passed: - error: type mismatch in f64.floor, expected [f64] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:145: assert_invalid passed: - error: type mismatch in f64.nearest, expected [f64] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:146: assert_invalid passed: - error: type mismatch in f64.neg, expected [f64] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:147: assert_invalid passed: - error: type mismatch in f64.sqrt, expected [f64] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:148: assert_invalid passed: - error: type mismatch in f64.trunc, expected [f64] but got [i64] - 000001a: error: OnUnaryExpr callback failed -out/test/spec/typecheck.wast:151: assert_invalid passed: - error: type mismatch in i32.eq, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:152: assert_invalid passed: - error: type mismatch in i32.ge_s, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:153: assert_invalid passed: - error: type mismatch in i32.ge_u, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:154: assert_invalid passed: - error: type mismatch in i32.gt_s, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:155: assert_invalid passed: - error: type mismatch in i32.gt_u, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:156: assert_invalid passed: - error: type mismatch in i32.le_s, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:157: assert_invalid passed: - error: type mismatch in i32.le_u, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:158: assert_invalid passed: - error: type mismatch in i32.lt_s, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:159: assert_invalid passed: - error: type mismatch in i32.lt_u, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:160: assert_invalid passed: - error: type mismatch in i32.ne, expected [i32, i32] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:161: assert_invalid passed: - error: type mismatch in i64.eq, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:162: assert_invalid passed: - error: type mismatch in i64.ge_s, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:163: assert_invalid passed: - error: type mismatch in i64.ge_u, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:164: assert_invalid passed: - error: type mismatch in i64.gt_s, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:165: assert_invalid passed: - error: type mismatch in i64.gt_u, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:166: assert_invalid passed: - error: type mismatch in i64.le_s, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:167: assert_invalid passed: - error: type mismatch in i64.le_u, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:168: assert_invalid passed: - error: type mismatch in i64.lt_s, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:169: assert_invalid passed: - error: type mismatch in i64.lt_u, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:170: assert_invalid passed: - error: type mismatch in i64.ne, expected [i64, i64] but got [i32, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:171: assert_invalid passed: - error: type mismatch in f32.eq, expected [f32, f32] but got [i64, f64] - 0000023: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:172: assert_invalid passed: - error: type mismatch in f32.ge, expected [f32, f32] but got [i64, f64] - 0000023: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:173: assert_invalid passed: - error: type mismatch in f32.gt, expected [f32, f32] but got [i64, f64] - 0000023: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:174: assert_invalid passed: - error: type mismatch in f32.le, expected [f32, f32] but got [i64, f64] - 0000023: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:175: assert_invalid passed: - error: type mismatch in f32.lt, expected [f32, f32] but got [i64, f64] - 0000023: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:176: assert_invalid passed: - error: type mismatch in f32.ne, expected [f32, f32] but got [i64, f64] - 0000023: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:177: assert_invalid passed: - error: type mismatch in f64.eq, expected [f64, f64] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:178: assert_invalid passed: - error: type mismatch in f64.ge, expected [f64, f64] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:179: assert_invalid passed: - error: type mismatch in f64.gt, expected [f64, f64] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:180: assert_invalid passed: - error: type mismatch in f64.le, expected [f64, f64] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:181: assert_invalid passed: - error: type mismatch in f64.lt, expected [f64, f64] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:182: assert_invalid passed: - error: type mismatch in f64.ne, expected [f64, f64] but got [i64, f32] - 000001f: error: OnCompareExpr callback failed -out/test/spec/typecheck.wast:185: assert_invalid passed: - error: type mismatch in i32.wrap_i64, expected [i64] but got [f32] - 000001d: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:186: assert_invalid passed: - error: type mismatch in i32.trunc_f32_s, expected [f32] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:187: assert_invalid passed: - error: type mismatch in i32.trunc_f32_u, expected [f32] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:188: assert_invalid passed: - error: type mismatch in i32.trunc_f64_s, expected [f64] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:189: assert_invalid passed: - error: type mismatch in i32.trunc_f64_u, expected [f64] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:190: assert_invalid passed: - error: type mismatch in i32.reinterpret_f32, expected [f32] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:191: assert_invalid passed: - error: type mismatch in i64.extend_i32_s, expected [i32] but got [f32] - 000001d: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:192: assert_invalid passed: - error: type mismatch in i64.extend_i32_u, expected [i32] but got [f32] - 000001d: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:193: assert_invalid passed: - error: type mismatch in i64.trunc_f32_s, expected [f32] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:194: assert_invalid passed: - error: type mismatch in i64.trunc_f32_u, expected [f32] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:195: assert_invalid passed: - error: type mismatch in i64.trunc_f64_s, expected [f64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:196: assert_invalid passed: - error: type mismatch in i64.trunc_f64_u, expected [f64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:197: assert_invalid passed: - error: type mismatch in i64.reinterpret_f64, expected [f64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:198: assert_invalid passed: - error: type mismatch in f32.convert_i32_s, expected [i32] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:199: assert_invalid passed: - error: type mismatch in f32.convert_i32_u, expected [i32] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:200: assert_invalid passed: - error: type mismatch in f32.convert_i64_s, expected [i64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:201: assert_invalid passed: - error: type mismatch in f32.convert_i64_u, expected [i64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:202: assert_invalid passed: - error: type mismatch in f32.demote_f64, expected [f64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:203: assert_invalid passed: - error: type mismatch in f32.reinterpret_i32, expected [i32] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:204: assert_invalid passed: - error: type mismatch in f64.convert_i32_s, expected [i32] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:205: assert_invalid passed: - error: type mismatch in f64.convert_i32_u, expected [i32] but got [i64] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:206: assert_invalid passed: - error: type mismatch in f64.convert_i64_s, expected [i64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:207: assert_invalid passed: - error: type mismatch in f64.convert_i64_u, expected [i64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:208: assert_invalid passed: - error: type mismatch in f64.promote_f32, expected [f32] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:209: assert_invalid passed: - error: type mismatch in f64.reinterpret_i64, expected [i64] but got [i32] - 000001a: error: OnConvertExpr callback failed -out/test/spec/typecheck.wast:212: assert_invalid passed: - error: type mismatch in memory.grow, expected [i32] but got [f32] - 0000023: error: OnMemoryGrowExpr callback failed -164/164 tests passed. -;;; STDOUT ;;) diff --git a/test/typecheck/if-anyref.txt b/test/typecheck/if-anyref.txt index a6b17f6e..049d7992 100644 --- a/test/typecheck/if-anyref.txt +++ b/test/typecheck/if-anyref.txt @@ -1,9 +1,9 @@ ;;; TOOL: wat2wasm ;;; ARGS: --enable-reference-types (module - (func (param anyref) (result anyref) + (func (param externref) (result externref) i32.const 0 - if (result anyref) + if (result externref) local.get 0 else local.get 0 diff --git a/test/wasm2c/spec/address.txt b/test/wasm2c/spec/address.txt index c8701af3..ab026b87 100644 --- a/test/wasm2c/spec/address.txt +++ b/test/wasm2c/spec/address.txt @@ -1,5 +1,5 @@ ;;; TOOL: run-spec-wasm2c ;;; STDIN_FILE: third_party/testsuite/address.wast (;; STDOUT ;;; -238/238 tests passed. +255/255 tests passed. ;;; STDOUT ;;) diff --git a/test/wasm2c/spec/break-drop.txt b/test/wasm2c/spec/break-drop.txt deleted file mode 100644 index bdeaafa8..00000000 --- a/test/wasm2c/spec/break-drop.txt +++ /dev/null @@ -1,5 +0,0 @@ -;;; TOOL: run-spec-wasm2c -;;; STDIN_FILE: third_party/testsuite/break-drop.wast -(;; STDOUT ;;; -3/3 tests passed. -;;; STDOUT ;;) diff --git a/test/wasm2c/spec/globals.txt b/test/wasm2c/spec/globals.txt deleted file mode 100644 index 9ab1aad2..00000000 --- a/test/wasm2c/spec/globals.txt +++ /dev/null @@ -1,5 +0,0 @@ -;;; TOOL: run-spec-wasm2c -;;; STDIN_FILE: third_party/testsuite/globals.wast -(;; STDOUT ;;; -46/46 tests passed. -;;; STDOUT ;;) diff --git a/test/wasm2c/spec/stack.txt b/test/wasm2c/spec/stack.txt index 128520d1..f3ea0cff 100644 --- a/test/wasm2c/spec/stack.txt +++ b/test/wasm2c/spec/stack.txt @@ -1,5 +1,5 @@ ;;; TOOL: run-spec-wasm2c ;;; STDIN_FILE: third_party/testsuite/stack.wast (;; STDOUT ;;; -3/3 tests passed. +5/5 tests passed. ;;; STDOUT ;;) diff --git a/test/wasm2c/spec/typecheck.txt b/test/wasm2c/spec/typecheck.txt deleted file mode 100644 index 8346a9e5..00000000 --- a/test/wasm2c/spec/typecheck.txt +++ /dev/null @@ -1,5 +0,0 @@ -;;; TOOL: run-spec-wasm2c -;;; STDIN_FILE: third_party/testsuite/typecheck.wast -(;; STDOUT ;;; -0/0 tests passed. -;;; STDOUT ;;) diff --git a/third_party/testsuite b/third_party/testsuite -Subproject da56298dddb441d1af38492ee98fe001e625d15 +Subproject c17cd7f4e379b814055c82fcc0fc1f6202ba9e2 |