diff options
Diffstat (limited to 'test/reference-types.wast.from-wast')
-rw-r--r-- | test/reference-types.wast.from-wast | 387 |
1 files changed, 186 insertions, 201 deletions
diff --git a/test/reference-types.wast.from-wast b/test/reference-types.wast.from-wast index 3916606c0..ac9660531 100644 --- a/test/reference-types.wast.from-wast +++ b/test/reference-types.wast.from-wast @@ -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 $import_global 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_externref (mut externref) (ref.null)) - (global $global_funcref (mut funcref) (ref.null)) - (global $global_exnref (mut exnref) (ref.null)) - (global $global_nullref (mut nullref) (ref.null)) - (global $global_externref2 (mut externref) (ref.func $foo)) - (global $global_funcref2 (mut funcref) (ref.func $foo)) + (table $0 3 3 funcref) + (elem (i32.const 0) $take_externref $take_funcref $take_exnref) + (global $global_externref (mut externref) (ref.null extern)) + (global $global_funcref (mut funcref) (ref.null func)) + (global $global_funcref_func (mut funcref) (ref.func $foo)) + (global $global_exnref (mut exnref) (ref.null exn)) (export "export_func" (func $import_func)) (export "export_global" (global $import_global)) (func $take_externref (param $0 externref) @@ -30,9 +26,6 @@ (func $take_exnref (param $0 exnref) (nop) ) - (func $take_nullref (param $0 nullref) - (nop) - ) (func $foo (nop) ) @@ -40,30 +33,23 @@ (local $local_externref externref) (local $local_funcref funcref) (local $local_exnref exnref) - (local $local_nullref nullref) (local.set $local_externref (local.get $local_externref) ) (local.set $local_externref - (local.get $local_funcref) - ) - (local.set $local_externref - (local.get $local_exnref) - ) - (local.set $local_externref - (local.get $local_nullref) - ) - (local.set $local_externref - (ref.null) + (global.get $global_externref) ) (local.set $local_externref - (ref.func $foo) + (ref.null extern) ) (local.set $local_funcref (local.get $local_funcref) ) (local.set $local_funcref - (ref.null) + (global.get $global_funcref) + ) + (local.set $local_funcref + (ref.null func) ) (local.set $local_funcref (ref.func $foo) @@ -72,37 +58,28 @@ (local.get $local_exnref) ) (local.set $local_exnref - (ref.null) - ) - (local.set $local_nullref - (local.get $local_nullref) + (global.get $global_exnref) ) - (local.set $local_nullref - (ref.null) + (local.set $local_exnref + (ref.null exn) ) (global.set $global_externref (global.get $global_externref) ) (global.set $global_externref - (global.get $global_funcref) - ) - (global.set $global_externref - (global.get $global_exnref) - ) - (global.set $global_externref - (global.get $global_nullref) - ) - (global.set $global_externref - (ref.null) + (local.get $local_externref) ) (global.set $global_externref - (ref.func $foo) + (ref.null extern) ) (global.set $global_funcref (global.get $global_funcref) ) (global.set $global_funcref - (ref.null) + (local.get $local_funcref) + ) + (global.set $global_funcref + (ref.null func) ) (global.set $global_funcref (ref.func $foo) @@ -111,40 +88,51 @@ (global.get $global_exnref) ) (global.set $global_exnref - (ref.null) - ) - (global.set $global_nullref - (global.get $global_nullref) + (local.get $local_exnref) ) - (global.set $global_nullref - (ref.null) + (global.set $global_exnref + (ref.null exn) ) (call $take_externref (local.get $local_externref) ) (call $take_externref - (local.get $local_funcref) + (global.get $global_externref) ) (call $take_externref + (ref.null extern) + ) + (call $take_funcref + (local.get $local_funcref) + ) + (call $take_funcref + (global.get $global_funcref) + ) + (call $take_funcref + (ref.null func) + ) + (call $take_funcref + (ref.func $foo) + ) + (call $take_exnref (local.get $local_exnref) ) - (call $take_externref - (ref.null) + (call $take_exnref + (global.get $global_exnref) ) - (call_indirect (type $externref_=>_none) - (local.get $local_externref) - (i32.const 0) + (call $take_exnref + (ref.null exn) ) (call_indirect (type $externref_=>_none) - (local.get $local_funcref) + (local.get $local_externref) (i32.const 0) ) (call_indirect (type $externref_=>_none) - (local.get $local_exnref) + (global.get $global_externref) (i32.const 0) ) (call_indirect (type $externref_=>_none) - (ref.null) + (ref.null extern) (i32.const 0) ) (call_indirect (type $funcref_=>_none) @@ -152,7 +140,15 @@ (i32.const 1) ) (call_indirect (type $funcref_=>_none) - (ref.null) + (global.get $global_funcref) + (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) @@ -160,16 +156,12 @@ (i32.const 2) ) (call_indirect (type $exnref_=>_none) - (ref.null) + (global.get $global_exnref) (i32.const 2) ) - (call_indirect (type $nullref_=>_none) - (local.get $local_nullref) - (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 $block (result externref) @@ -182,7 +174,7 @@ (drop (block $block0 (result externref) (br_if $block0 - (local.get $local_funcref) + (global.get $global_externref) (i32.const 1) ) ) @@ -190,15 +182,15 @@ (drop (block $block1 (result externref) (br_if $block1 - (local.get $local_exnref) + (ref.null extern) (i32.const 1) ) ) ) (drop - (block $block2 (result externref) + (block $block2 (result funcref) (br_if $block2 - (ref.null) + (local.get $local_funcref) (i32.const 1) ) ) @@ -206,23 +198,47 @@ (drop (block $block3 (result funcref) (br_if $block3 - (ref.null) + (global.get $global_funcref) (i32.const 1) ) ) ) (drop - (block $block4 (result exnref) + (block $block4 (result funcref) (br_if $block4 - (ref.null) + (ref.null func) (i32.const 1) ) ) ) (drop - (block $block5 (result nullref) + (block $block5 (result funcref) (br_if $block5 - (ref.null) + (ref.func $foo) + (i32.const 1) + ) + ) + ) + (drop + (block $block6 (result exnref) + (br_if $block6 + (local.get $local_exnref) + (i32.const 1) + ) + ) + ) + (drop + (block $block7 (result exnref) + (br_if $block7 + (global.get $global_exnref) + (i32.const 1) + ) + ) + ) + (drop + (block $block8 (result exnref) + (br_if $block8 + (ref.null exn) (i32.const 1) ) ) @@ -233,78 +249,69 @@ ) ) (drop - (loop $loop-in6 (result externref) - (local.get $local_funcref) + (loop $loop-in9 (result externref) + (global.get $global_externref) ) ) (drop - (loop $loop-in7 (result externref) - (local.get $local_exnref) + (loop $loop-in10 (result externref) + (ref.null extern) ) ) (drop - (loop $loop-in8 (result externref) - (ref.null) + (loop $loop-in11 (result funcref) + (local.get $local_funcref) ) ) (drop - (loop $loop-in9 (result funcref) - (local.get $local_funcref) + (loop $loop-in12 (result funcref) + (global.get $global_funcref) ) ) (drop - (loop $loop-in10 (result funcref) - (ref.null) + (loop $loop-in13 (result funcref) + (ref.null func) ) ) (drop - (loop $loop-in11 (result exnref) - (local.get $local_exnref) + (loop $loop-in14 (result funcref) + (ref.func $foo) ) ) (drop - (loop $loop-in12 (result exnref) - (ref.null) + (loop $loop-in15 (result exnref) + (local.get $local_exnref) ) ) (drop - (loop $loop-in13 (result nullref) - (ref.null) + (loop $loop-in16 (result exnref) + (global.get $global_exnref) ) ) (drop - (if (result externref) - (i32.const 1) - (local.get $local_externref) - (local.get $local_exnref) + (loop $loop-in17 (result exnref) + (ref.null exn) ) ) (drop (if (result externref) (i32.const 1) - (ref.func $foo) - (ref.null) + (local.get $local_externref) + (ref.null extern) ) ) (drop (if (result funcref) (i32.const 1) - (ref.func $foo) - (ref.null) + (local.get $local_funcref) + (ref.null func) ) ) (drop (if (result exnref) (i32.const 1) (local.get $local_exnref) - (ref.null) - ) - ) - (drop - (if (result nullref) - (i32.const 1) - (local.get $local_nullref) - (ref.null) + (ref.null exn) ) ) (drop @@ -313,20 +320,10 @@ (local.get $local_externref) ) (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,77 +351,66 @@ ) ) (drop - (try (result nullref) - (do - (ref.null) - ) - (catch - (drop - (exnref.pop) - ) - (ref.null) - ) + (select (result externref) + (local.get $local_externref) + (ref.null extern) + (i32.const 1) ) ) (drop - (select (result externref) - (local.get $local_externref) - (ref.func $foo) + (select (result funcref) + (local.get $local_funcref) + (ref.null func) (i32.const 1) ) ) (drop - (select (result externref) + (select (result exnref) (local.get $local_exnref) - (local.get $local_externref) + (ref.null exn) (i32.const 1) ) ) (drop - (select (result externref) - (local.get $local_externref) - (ref.null) + (select + (i32.const 0) + (i32.const 2) (i32.const 1) ) ) (drop - (select (result externref) - (ref.null) - (ref.func $foo) - (i32.const 1) + (ref.is_null + (local.get $local_externref) ) ) (drop - (select (result funcref) - (ref.func $foo) - (ref.null) - (i32.const 1) + (ref.is_null + (global.get $global_externref) ) ) (drop - (select (result exnref) - (ref.null) - (local.get $local_exnref) - (i32.const 1) + (ref.is_null + (ref.null extern) ) ) (drop - (select (result nullref) - (ref.null) - (ref.null) - (i32.const 1) + (ref.is_null + (local.get $local_funcref) ) ) (drop - (select - (i32.const 0) - (i32.const 2) - (i32.const 1) + (ref.is_null + (global.get $global_funcref) ) ) (drop (ref.is_null - (local.get $local_externref) + (ref.null func) + ) + ) + (drop + (ref.is_null + (ref.func $foo) ) ) (drop @@ -434,86 +420,85 @@ ) (drop (ref.is_null - (ref.func $foo) + (global.get $global_exnref) ) ) (drop (ref.is_null - (ref.null) + (ref.null exn) ) ) ) - (func $return_externref (result externref) + (func $return_externref_local (result externref) (local $local_externref externref) (local.get $local_externref) ) - (func $return_externref2 (result externref) - (ref.func $foo) + (func $return_externref_global (result externref) + (global.get $global_externref) ) - (func $return_externref3 (result externref) - (local $local_exnref exnref) - (local.get $local_exnref) + (func $return_externref_null (result externref) + (ref.null extern) + ) + (func $return_funcref_local (result funcref) + (local $local_funcref funcref) + (local.get $local_funcref) ) - (func $return_externref4 (result externref) - (ref.null) + (func $return_funcref_global (result funcref) + (global.get $global_funcref) ) - (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 $local_exnref exnref) (local.get $local_exnref) ) - (func $return_exnref2 (result exnref) - (ref.null) + (func $return_exnref_global (result exnref) + (global.get $global_exnref) ) - (func $return_nullref (result nullref) - (local $local_nullref nullref) - (local.get $local_nullref) + (func $return_exnref_null (result exnref) + (ref.null exn) ) - (func $return_externref_returns (result externref) + (func $returns_externref (result externref) (local $local_externref externref) - (local $local_exnref exnref) (return (local.get $local_externref) ) (return - (local.get $local_exnref) + (global.get $global_externref) ) (return - (ref.func $foo) + (ref.null extern) ) + ) + (func $returns_funcref (result funcref) + (local $local_funcref funcref) (return - (ref.null) + (local.get $local_funcref) + ) + (return + (global.get $global_funcref) ) - ) - (func $return_funcref_returns (result funcref) (return (ref.func $foo) ) (return - (ref.null) + (ref.null func) ) ) - (func $return_exnref_returns (result exnref) + (func $returns_exnref (result exnref) (local $local_exnref exnref) (return (local.get $local_exnref) ) (return - (ref.null) - ) - ) - (func $return_nullref_returns (result nullref) - (local $local_nullref nullref) - (return - (local.get $local_nullref) + (global.get $global_exnref) ) (return - (ref.null) + (ref.null exn) ) ) ) |