summaryrefslogtreecommitdiff
path: root/test/reference-types.wast.fromBinary
diff options
context:
space:
mode:
Diffstat (limited to 'test/reference-types.wast.fromBinary')
-rw-r--r--test/reference-types.wast.fromBinary382
1 files changed, 182 insertions, 200 deletions
diff --git a/test/reference-types.wast.fromBinary b/test/reference-types.wast.fromBinary
index ae36b9209..f4a958d99 100644
--- a/test/reference-types.wast.fromBinary
+++ b/test/reference-types.wast.fromBinary
@@ -1,24 +1,20 @@
(module
- (type $externref_=>_none (func (param externref)))
- (type $none_=>_externref (func (result externref)))
(type $funcref_=>_none (func (param funcref)))
- (type $nullref_=>_none (func (param nullref)))
- (type $exnref_=>_none (func (param exnref)))
(type $none_=>_funcref (func (result funcref)))
+ (type $externref_=>_none (func (param externref)))
+ (type $exnref_=>_none (func (param exnref)))
+ (type $none_=>_externref (func (result externref)))
(type $none_=>_exnref (func (result exnref)))
(type $none_=>_none (func))
- (type $none_=>_nullref (func (result nullref)))
(type $externref_=>_funcref (func (param externref) (result funcref)))
(import "env" "import_global" (global $gimport$1 externref))
(import "env" "import_func" (func $import_func (param externref) (result funcref)))
- (table $0 4 4 funcref)
- (elem (i32.const 0) $take_externref $take_funcref $take_exnref $take_nullref)
- (global $global$0 (mut externref) (ref.null))
- (global $global$1 (mut funcref) (ref.null))
- (global $global$2 (mut exnref) (ref.null))
- (global $global$3 (mut nullref) (ref.null))
- (global $global$4 (mut externref) (ref.func $foo))
- (global $global$5 (mut funcref) (ref.func $foo))
+ (table $0 3 3 funcref)
+ (elem (i32.const 0) $take_externref $take_funcref $take_exnref)
+ (global $global$0 (mut externref) (ref.null extern))
+ (global $global$1 (mut funcref) (ref.null func))
+ (global $global$2 (mut funcref) (ref.func $foo))
+ (global $global$3 (mut exnref) (ref.null exn))
(export "export_func" (func $import_func))
(export "export_global" (global $gimport$1))
(func $take_externref (param $0 externref)
@@ -30,121 +26,113 @@
(func $take_exnref (param $0 exnref)
(nop)
)
- (func $take_nullref (param $0 nullref)
- (nop)
- )
(func $foo
(nop)
)
(func $test
(local $0 funcref)
(local $1 externref)
- (local $2 nullref)
- (local $3 exnref)
+ (local $2 exnref)
(local.set $1
(local.get $1)
)
(local.set $1
- (local.get $0)
- )
- (local.set $1
- (local.get $3)
- )
- (local.set $1
- (local.get $2)
- )
- (local.set $1
- (ref.null)
+ (global.get $global$0)
)
(local.set $1
- (ref.func $foo)
+ (ref.null extern)
)
(local.set $0
(local.get $0)
)
(local.set $0
- (ref.null)
+ (global.get $global$1)
)
(local.set $0
- (ref.func $foo)
- )
- (local.set $3
- (local.get $3)
+ (ref.null func)
)
- (local.set $3
- (ref.null)
+ (local.set $0
+ (ref.func $foo)
)
(local.set $2
(local.get $2)
)
(local.set $2
- (ref.null)
- )
- (global.set $global$0
- (global.get $global$0)
- )
- (global.set $global$0
- (global.get $global$1)
+ (global.get $global$3)
)
- (global.set $global$0
- (global.get $global$2)
+ (local.set $2
+ (ref.null exn)
)
(global.set $global$0
- (global.get $global$3)
+ (global.get $global$0)
)
(global.set $global$0
- (ref.null)
+ (local.get $1)
)
(global.set $global$0
- (ref.func $foo)
+ (ref.null extern)
)
(global.set $global$1
(global.get $global$1)
)
(global.set $global$1
- (ref.null)
+ (local.get $0)
)
(global.set $global$1
- (ref.func $foo)
- )
- (global.set $global$2
- (global.get $global$2)
+ (ref.null func)
)
- (global.set $global$2
- (ref.null)
+ (global.set $global$1
+ (ref.func $foo)
)
(global.set $global$3
(global.get $global$3)
)
(global.set $global$3
- (ref.null)
+ (local.get $2)
+ )
+ (global.set $global$3
+ (ref.null exn)
)
(call $take_externref
(local.get $1)
)
(call $take_externref
- (local.get $0)
+ (global.get $global$0)
)
(call $take_externref
- (local.get $3)
+ (ref.null extern)
)
- (call $take_externref
- (ref.null)
+ (call $take_funcref
+ (local.get $0)
)
- (call_indirect (type $externref_=>_none)
- (local.get $1)
- (i32.const 0)
+ (call $take_funcref
+ (global.get $global$1)
+ )
+ (call $take_funcref
+ (ref.null func)
+ )
+ (call $take_funcref
+ (ref.func $foo)
+ )
+ (call $take_exnref
+ (local.get $2)
+ )
+ (call $take_exnref
+ (global.get $global$3)
+ )
+ (call $take_exnref
+ (ref.null exn)
)
(call_indirect (type $externref_=>_none)
- (local.get $0)
+ (local.get $1)
(i32.const 0)
)
(call_indirect (type $externref_=>_none)
- (local.get $3)
+ (global.get $global$0)
(i32.const 0)
)
(call_indirect (type $externref_=>_none)
- (ref.null)
+ (ref.null extern)
(i32.const 0)
)
(call_indirect (type $funcref_=>_none)
@@ -152,24 +140,28 @@
(i32.const 1)
)
(call_indirect (type $funcref_=>_none)
- (ref.null)
+ (global.get $global$1)
+ (i32.const 1)
+ )
+ (call_indirect (type $funcref_=>_none)
+ (ref.null func)
+ (i32.const 1)
+ )
+ (call_indirect (type $funcref_=>_none)
+ (ref.func $foo)
(i32.const 1)
)
(call_indirect (type $exnref_=>_none)
- (local.get $3)
+ (local.get $2)
(i32.const 2)
)
(call_indirect (type $exnref_=>_none)
- (ref.null)
+ (global.get $global$3)
(i32.const 2)
)
- (call_indirect (type $nullref_=>_none)
- (local.get $2)
- (i32.const 3)
- )
- (call_indirect (type $nullref_=>_none)
- (ref.null)
- (i32.const 3)
+ (call_indirect (type $exnref_=>_none)
+ (ref.null exn)
+ (i32.const 2)
)
(drop
(block $label$1 (result externref)
@@ -182,7 +174,7 @@
(drop
(block $label$2 (result externref)
(br_if $label$2
- (local.get $0)
+ (global.get $global$0)
(i32.const 1)
)
)
@@ -190,15 +182,15 @@
(drop
(block $label$3 (result externref)
(br_if $label$3
- (local.get $3)
+ (ref.null extern)
(i32.const 1)
)
)
)
(drop
- (block $label$4 (result externref)
+ (block $label$4 (result funcref)
(br_if $label$4
- (ref.null)
+ (local.get $0)
(i32.const 1)
)
)
@@ -206,105 +198,120 @@
(drop
(block $label$5 (result funcref)
(br_if $label$5
- (ref.null)
+ (global.get $global$1)
(i32.const 1)
)
)
)
(drop
- (block $label$6 (result exnref)
+ (block $label$6 (result funcref)
(br_if $label$6
- (ref.null)
+ (ref.null func)
(i32.const 1)
)
)
)
(drop
- (block $label$7 (result nullref)
+ (block $label$7 (result funcref)
(br_if $label$7
- (ref.null)
+ (ref.func $foo)
(i32.const 1)
)
)
)
(drop
- (loop $label$8 (result externref)
- (local.get $1)
+ (block $label$8 (result exnref)
+ (br_if $label$8
+ (local.get $2)
+ (i32.const 1)
+ )
)
)
(drop
- (loop $label$9 (result externref)
- (local.get $0)
+ (block $label$9 (result exnref)
+ (br_if $label$9
+ (global.get $global$3)
+ (i32.const 1)
+ )
)
)
(drop
- (loop $label$10 (result externref)
- (local.get $3)
+ (block $label$10 (result exnref)
+ (br_if $label$10
+ (ref.null exn)
+ (i32.const 1)
+ )
)
)
(drop
(loop $label$11 (result externref)
- (ref.null)
+ (local.get $1)
)
)
(drop
- (loop $label$12 (result funcref)
+ (loop $label$12 (result externref)
+ (global.get $global$0)
+ )
+ )
+ (drop
+ (loop $label$13 (result externref)
+ (ref.null extern)
+ )
+ )
+ (drop
+ (loop $label$14 (result funcref)
(local.get $0)
)
)
(drop
- (loop $label$13 (result funcref)
- (ref.null)
+ (loop $label$15 (result funcref)
+ (global.get $global$1)
)
)
(drop
- (loop $label$14 (result exnref)
- (local.get $3)
+ (loop $label$16 (result funcref)
+ (ref.null func)
)
)
(drop
- (loop $label$15 (result exnref)
- (ref.null)
+ (loop $label$17 (result funcref)
+ (ref.func $foo)
)
)
(drop
- (loop $label$16 (result nullref)
- (ref.null)
+ (loop $label$18 (result exnref)
+ (local.get $2)
)
)
(drop
- (if (result externref)
- (i32.const 1)
- (local.get $1)
- (local.get $3)
+ (loop $label$19 (result exnref)
+ (global.get $global$3)
)
)
(drop
- (if (result externref)
- (i32.const 1)
- (ref.func $foo)
- (ref.null)
+ (loop $label$20 (result exnref)
+ (ref.null exn)
)
)
(drop
- (if (result funcref)
+ (if (result externref)
(i32.const 1)
- (ref.func $foo)
- (ref.null)
+ (local.get $1)
+ (ref.null extern)
)
)
(drop
- (if (result exnref)
+ (if (result funcref)
(i32.const 1)
- (local.get $3)
- (ref.null)
+ (local.get $0)
+ (ref.null func)
)
)
(drop
- (if (result nullref)
+ (if (result exnref)
(i32.const 1)
(local.get $2)
- (ref.null)
+ (ref.null exn)
)
)
(drop
@@ -313,20 +320,10 @@
(local.get $1)
)
(catch
- (exnref.pop)
- )
- )
- )
- (drop
- (try (result externref)
- (do
- (ref.func $foo)
- )
- (catch
(drop
(exnref.pop)
)
- (ref.null)
+ (ref.null extern)
)
)
)
@@ -339,14 +336,14 @@
(drop
(exnref.pop)
)
- (ref.null)
+ (ref.null func)
)
)
)
(drop
(try (result exnref)
(do
- (ref.null)
+ (ref.null exn)
)
(catch
(exnref.pop)
@@ -354,82 +351,61 @@
)
)
(drop
- (try (result nullref)
- (do
- (ref.null)
- )
- (catch
- (drop
- (exnref.pop)
- )
- (ref.null)
- )
- )
- )
- (drop
(select (result externref)
(local.get $1)
- (ref.func $foo)
+ (ref.null extern)
(i32.const 1)
)
)
(drop
- (select (result externref)
- (local.get $3)
- (local.get $1)
+ (select (result funcref)
+ (local.get $0)
+ (ref.null func)
(i32.const 1)
)
)
(drop
- (select (result externref)
- (local.get $1)
- (ref.null)
+ (select (result exnref)
+ (local.get $2)
+ (ref.null exn)
(i32.const 1)
)
)
(drop
- (select (result externref)
- (ref.null)
- (ref.func $foo)
+ (select
+ (i32.const 0)
+ (i32.const 2)
(i32.const 1)
)
)
(drop
- (select (result funcref)
- (ref.func $foo)
- (ref.null)
- (i32.const 1)
+ (ref.is_null
+ (local.get $1)
)
)
(drop
- (select (result exnref)
- (ref.null)
- (local.get $3)
- (i32.const 1)
+ (ref.is_null
+ (global.get $global$0)
)
)
(drop
- (select (result nullref)
- (ref.null)
- (ref.null)
- (i32.const 1)
+ (ref.is_null
+ (ref.null extern)
)
)
(drop
- (select
- (i32.const 0)
- (i32.const 2)
- (i32.const 1)
+ (ref.is_null
+ (local.get $0)
)
)
(drop
(ref.is_null
- (local.get $1)
+ (global.get $global$1)
)
)
(drop
(ref.is_null
- (local.get $3)
+ (ref.null func)
)
)
(drop
@@ -439,61 +415,67 @@
)
(drop
(ref.is_null
- (ref.null)
+ (local.get $2)
+ )
+ )
+ (drop
+ (ref.is_null
+ (global.get $global$3)
+ )
+ )
+ (drop
+ (ref.is_null
+ (ref.null exn)
)
)
)
- (func $return_externref (result externref)
+ (func $return_externref_local (result externref)
(local $0 externref)
(local.get $0)
)
- (func $return_externref2 (result externref)
- (ref.func $foo)
+ (func $return_externref_global (result externref)
+ (global.get $global$0)
)
- (func $return_externref3 (result externref)
- (local $0 exnref)
+ (func $return_externref_null (result externref)
+ (ref.null extern)
+ )
+ (func $return_funcref_local (result funcref)
+ (local $0 funcref)
(local.get $0)
)
- (func $return_externref4 (result externref)
- (ref.null)
+ (func $return_funcref_global (result funcref)
+ (global.get $global$1)
)
- (func $return_funcref (result funcref)
- (ref.func $foo)
+ (func $return_funcref_null (result funcref)
+ (ref.null func)
)
- (func $return_funcref2 (result funcref)
- (ref.null)
+ (func $return_funcref_func (result funcref)
+ (ref.func $foo)
)
- (func $return_exnref (result exnref)
+ (func $return_exnref_local (result exnref)
(local $0 exnref)
(local.get $0)
)
- (func $return_exnref2 (result exnref)
- (ref.null)
+ (func $return_exnref_global (result exnref)
+ (global.get $global$3)
)
- (func $return_nullref (result nullref)
- (local $0 nullref)
- (local.get $0)
+ (func $return_exnref_null (result exnref)
+ (ref.null exn)
)
- (func $return_externref_returns (result externref)
+ (func $returns_externref (result externref)
(local $0 externref)
- (local $1 exnref)
(return
(local.get $0)
)
)
- (func $return_funcref_returns (result funcref)
- (return
- (ref.func $foo)
- )
- )
- (func $return_exnref_returns (result exnref)
- (local $0 exnref)
+ (func $returns_funcref (result funcref)
+ (local $0 funcref)
(return
(local.get $0)
)
)
- (func $return_nullref_returns (result nullref)
- (local $0 nullref)
+ (func $returns_exnref (result exnref)
+ (local $0 exnref)
(return
(local.get $0)
)