diff options
Diffstat (limited to 'deps/v8/test/unittests/wasm/wasm-disassembler-unittest-gc.wat.inc')
-rw-r--r-- | deps/v8/test/unittests/wasm/wasm-disassembler-unittest-gc.wat.inc | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/deps/v8/test/unittests/wasm/wasm-disassembler-unittest-gc.wat.inc b/deps/v8/test/unittests/wasm/wasm-disassembler-unittest-gc.wat.inc new file mode 100644 index 0000000000..1189fffa14 --- /dev/null +++ b/deps/v8/test/unittests/wasm/wasm-disassembler-unittest-gc.wat.inc @@ -0,0 +1,107 @@ +;; expected = R"---(;; This is a polyglot C++/WAT file. +;; Comment lines are ignored and not expected in the disassembler output. +(module + ;; Structs. + (type $type0 (struct)) + (type $type1 (struct (field $field0 i32))) + (type $type2 (struct (field $field0 (mut i32)) (field $field1 (mut i64)))) + (type $type3 (struct (field $field0 i8) (field $field1 (mut i16)))) + ;; Arrays. + (type $type4 (array (field i64))) + (type $type5 (array (field (mut i64)))) + (type $type6 (array (field i8))) + ;; References to other types, mutual recursion. + (type $type7 (struct (field $field0 (ref $type0)))) + ;; TODO: rec-groups are supported in the binary format, but they are not + ;; printed yet. Once that is implemented in the disassembler, uncomment: + ;; (rec + (type $type8 (struct (field $field0 (ref $type9)))) + (type $type9 (struct (field $field0 (ref $type8)))) + ;; ) + ;; Subtyping constraints. + ;; TODO: Change to `sub` keyword, once that is standardized. + (type $type10 (struct_subtype (field $field0 i32) $type0)) + ;; Globals using reference types. + (global $env.imported_global (;0;) (import "env" "imported_global") (ref $type7)) + (global $env.another_global (;1;) (import "env" "another_global") (ref $type8)) + (global $global2 anyref (ref.null none)) + (global $global3 (mut eqref) (ref.null none)) + ;; Function with GC instructions and taking GC types as parameters. + (func $func0 (param $var0 (ref $type1)) (param $var1 eqref) + ;; Structs. + struct.new_default $type1 + struct.get $type1 $field0 + drop + struct.new_default $type2 + i32.const 0 + struct.set $type2 $field0 + struct.new_default $type3 + struct.get_s $type3 $field0 + drop + struct.new_default $type3 + struct.get_u $type3 $field1 + drop + ;; Arrays. + array.new_fixed $type4 0 + drop + i32.const 0 + array.new_default $type4 + array.len + drop + i64.const 0 + i32.const 0 + array.new $type4 + i32.const 0 + array.get $type4 + drop + i32.const 0 + array.new_default $type5 + i32.const 0 + i64.const 0 + array.set $type5 + i32.const 0 + array.new_default $type6 + i32.const 0 + array.get_s $type6 + drop + i32.const 0 + array.new_default $type6 + i32.const 0 + array.get_u $type6 + drop + ;; References. + local.get $var1 + local.get $var1 + ref.eq + drop + local.get $var1 + ref.test $type0 + drop + local.get $var0 + ref.cast $type0 + drop + local.get $var0 + ref.test null $type0 + drop + local.get $var0 + ref.cast null $type0 + drop + ;; Branches. + block $label0 (result (ref $type1)) + local.get $var0 + br_on_non_null $label0 + local.get $var0 + br_on_cast $label0 $type1 + drop + local.get $var0 + br_on_cast_fail $label0 $type1 + drop + ;; TODO: Once `br_on_cast null` is implemented, uncomment: + ;; local.get $var0 + ;; br_on_cast $label0 null $type1 + local.get $var0 + end $label0 + drop + ) +) +;;)---"; |