(module (type $none_=>_anyref (func (result anyref))) (type $anyref_=>_none (func (param anyref))) (type $funcref_=>_none (func (param funcref))) (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 $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_anyref) (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)) (global $global_anyref (mut anyref) (ref.null any)) (global $global_anyref2 (mut anyref) (ref.null extern)) (global $global_anyref3 (mut anyref) (ref.null func)) (global $global_anyref4 (mut anyref) (ref.func $foo)) (global $global_anyref5 (mut anyref) (ref.null exn)) (export "export_func" (func $import_func)) (export "export_global" (global $import_global)) (func $take_externref (param $0 externref) (nop) ) (func $take_funcref (param $0 funcref) (nop) ) (func $take_exnref (param $0 exnref) (nop) ) (func $take_anyref (param $0 anyref) (nop) ) (func $foo (nop) ) (func $test (local $local_externref funcref) (local $local_funcref externref) (local $local_exnref exnref) (local $local_anyref anyref) (local.set $local_funcref (local.get $local_funcref) ) (local.set $local_funcref (global.get $global_externref) ) (local.set $local_funcref (ref.null extern) ) (local.set $local_externref (local.get $local_externref) ) (local.set $local_externref (global.get $global_funcref) ) (local.set $local_externref (ref.null func) ) (local.set $local_externref (ref.func $foo) ) (local.set $local_exnref (local.get $local_exnref) ) (local.set $local_exnref (global.get $global_exnref) ) (local.set $local_exnref (ref.null exn) ) (local.set $local_anyref (local.get $local_anyref) ) (local.set $local_anyref (global.get $global_anyref) ) (local.set $local_anyref (ref.null any) ) (local.set $local_anyref (local.get $local_funcref) ) (local.set $local_anyref (global.get $global_externref) ) (local.set $local_anyref (ref.null extern) ) (local.set $local_anyref (local.get $local_externref) ) (local.set $local_anyref (global.get $global_funcref) ) (local.set $local_anyref (ref.null func) ) (local.set $local_anyref (ref.func $foo) ) (local.set $local_anyref (local.get $local_exnref) ) (local.set $local_anyref (global.get $global_exnref) ) (local.set $local_anyref (ref.null exn) ) (global.set $global_externref (global.get $global_externref) ) (global.set $global_externref (local.get $local_funcref) ) (global.set $global_externref (ref.null extern) ) (global.set $global_funcref (global.get $global_funcref) ) (global.set $global_funcref (local.get $local_externref) ) (global.set $global_funcref (ref.null func) ) (global.set $global_funcref (ref.func $foo) ) (global.set $global_exnref (global.get $global_exnref) ) (global.set $global_exnref (local.get $local_exnref) ) (global.set $global_exnref (ref.null exn) ) (global.set $global_anyref (global.get $global_anyref) ) (global.set $global_anyref (local.get $local_anyref) ) (global.set $global_anyref (ref.null any) ) (global.set $global_anyref (global.get $global_externref) ) (global.set $global_anyref (local.get $local_funcref) ) (global.set $global_anyref (ref.null extern) ) (global.set $global_anyref (global.get $global_funcref) ) (global.set $global_anyref (local.get $local_externref) ) (global.set $global_anyref (ref.null func) ) (global.set $global_anyref (ref.func $foo) ) (global.set $global_anyref (global.get $global_exnref) ) (global.set $global_anyref (local.get $local_exnref) ) (global.set $global_anyref (ref.null exn) ) (call $take_externref (local.get $local_funcref) ) (call $take_externref (global.get $global_externref) ) (call $take_externref (ref.null extern) ) (call $take_funcref (local.get $local_externref) ) (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_exnref (global.get $global_exnref) ) (call $take_exnref (ref.null exn) ) (call $take_anyref (local.get $local_anyref) ) (call $take_anyref (global.get $global_anyref) ) (call $take_anyref (ref.null any) ) (call $take_anyref (local.get $local_funcref) ) (call $take_anyref (global.get $global_externref) ) (call $take_anyref (ref.null extern) ) (call $take_anyref (local.get $local_externref) ) (call $take_anyref (global.get $global_funcref) ) (call $take_anyref (ref.null func) ) (call $take_anyref (ref.func $foo) ) (call $take_anyref (local.get $local_exnref) ) (call $take_anyref (global.get $global_exnref) ) (call $take_anyref (ref.null exn) ) (call_indirect (type $externref_=>_none) (local.get $local_funcref) (i32.const 0) ) (call_indirect (type $externref_=>_none) (global.get $global_externref) (i32.const 0) ) (call_indirect (type $externref_=>_none) (ref.null extern) (i32.const 0) ) (call_indirect (type $funcref_=>_none) (local.get $local_externref) (i32.const 1) ) (call_indirect (type $funcref_=>_none) (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) (local.get $local_exnref) (i32.const 2) ) (call_indirect (type $exnref_=>_none) (global.get $global_exnref) (i32.const 2) ) (call_indirect (type $exnref_=>_none) (ref.null exn) (i32.const 2) ) (call_indirect (type $anyref_=>_none) (local.get $local_anyref) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (global.get $global_anyref) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (ref.null any) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (local.get $local_funcref) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (global.get $global_externref) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (ref.null extern) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (local.get $local_externref) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (global.get $global_funcref) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (ref.null func) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (ref.func $foo) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (local.get $local_exnref) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (global.get $global_exnref) (i32.const 3) ) (call_indirect (type $anyref_=>_none) (ref.null exn) (i32.const 3) ) (drop (block $label$1 (result externref) (br_if $label$1 (local.get $local_funcref) (i32.const 1) ) ) ) (drop (block $label$2 (result externref) (br_if $label$2 (global.get $global_externref) (i32.const 1) ) ) ) (drop (block $label$3 (result externref) (br_if $label$3 (ref.null extern) (i32.const 1) ) ) ) (drop (block $label$4 (result funcref) (br_if $label$4 (local.get $local_externref) (i32.const 1) ) ) ) (drop (block $label$5 (result funcref) (br_if $label$5 (global.get $global_funcref) (i32.const 1) ) ) ) (drop (block $label$6 (result funcref) (br_if $label$6 (ref.null func) (i32.const 1) ) ) ) (drop (block $label$7 (result funcref) (br_if $label$7 (ref.func $foo) (i32.const 1) ) ) ) (drop (block $label$8 (result exnref) (br_if $label$8 (local.get $local_exnref) (i32.const 1) ) ) ) (drop (block $label$9 (result exnref) (br_if $label$9 (global.get $global_exnref) (i32.const 1) ) ) ) (drop (block $label$10 (result exnref) (br_if $label$10 (ref.null exn) (i32.const 1) ) ) ) (drop (block $label$11 (result anyref) (br_if $label$11 (local.get $local_anyref) (i32.const 1) ) ) ) (drop (block $label$12 (result anyref) (br_if $label$12 (global.get $global_anyref) (i32.const 1) ) ) ) (drop (block $label$13 (result anyref) (br_if $label$13 (ref.null any) (i32.const 1) ) ) ) (drop (block $label$14 (result anyref) (br_if $label$14 (local.get $local_funcref) (i32.const 1) ) ) ) (drop (block $label$15 (result anyref) (br_if $label$15 (local.get $local_externref) (i32.const 1) ) ) ) (drop (block $label$16 (result anyref) (br_if $label$16 (local.get $local_exnref) (i32.const 1) ) ) ) (drop (block $label$17 (result anyref) (br_if $label$17 (ref.null extern) (i32.const 1) ) ) ) (drop (block $label$18 (result anyref) (br_if $label$18 (ref.null func) (i32.const 1) ) ) ) (drop (block $label$19 (result anyref) (br_if $label$19 (ref.func $foo) (i32.const 1) ) ) ) (drop (block $label$20 (result anyref) (br_if $label$20 (ref.null exn) (i32.const 1) ) ) ) (drop (loop $label$21 (result externref) (local.get $local_funcref) ) ) (drop (loop $label$22 (result externref) (global.get $global_externref) ) ) (drop (loop $label$23 (result externref) (ref.null extern) ) ) (drop (loop $label$24 (result funcref) (local.get $local_externref) ) ) (drop (loop $label$25 (result funcref) (global.get $global_funcref) ) ) (drop (loop $label$26 (result funcref) (ref.null func) ) ) (drop (loop $label$27 (result funcref) (ref.func $foo) ) ) (drop (loop $label$28 (result exnref) (local.get $local_exnref) ) ) (drop (loop $label$29 (result exnref) (global.get $global_exnref) ) ) (drop (loop $label$30 (result exnref) (ref.null exn) ) ) (drop (loop $label$31 (result anyref) (local.get $local_anyref) ) ) (drop (loop $label$32 (result anyref) (global.get $global_anyref) ) ) (drop (loop $label$33 (result anyref) (ref.null any) ) ) (drop (loop $label$34 (result anyref) (local.get $local_funcref) ) ) (drop (loop $label$35 (result anyref) (global.get $global_externref) ) ) (drop (loop $label$36 (result anyref) (ref.null extern) ) ) (drop (loop $label$37 (result anyref) (local.get $local_externref) ) ) (drop (loop $label$38 (result anyref) (global.get $global_funcref) ) ) (drop (loop $label$39 (result anyref) (ref.null func) ) ) (drop (loop $label$40 (result anyref) (ref.func $foo) ) ) (drop (loop $label$41 (result anyref) (local.get $local_exnref) ) ) (drop (loop $label$42 (result anyref) (global.get $global_exnref) ) ) (drop (loop $label$43 (result anyref) (ref.null exn) ) ) (drop (if (result externref) (i32.const 1) (local.get $local_funcref) (ref.null extern) ) ) (drop (if (result funcref) (i32.const 1) (local.get $local_externref) (ref.null func) ) ) (drop (if (result exnref) (i32.const 1) (local.get $local_exnref) (ref.null exn) ) ) (drop (if (result anyref) (i32.const 1) (local.get $local_anyref) (ref.null any) ) ) (drop (if (result anyref) (i32.const 1) (local.get $local_funcref) (local.get $local_externref) ) ) (drop (if (result anyref) (i32.const 1) (local.get $local_funcref) (local.get $local_exnref) ) ) (drop (if (result anyref) (i32.const 1) (local.get $local_externref) (local.get $local_exnref) ) ) (drop (if (result anyref) (i32.const 1) (ref.null extern) (ref.null func) ) ) (drop (if (result anyref) (i32.const 1) (ref.null extern) (ref.null exn) ) ) (drop (if (result anyref) (i32.const 1) (ref.null func) (ref.null exn) ) ) (drop (if (result anyref) (i32.const 1) (ref.func $foo) (ref.null extern) ) ) (drop (try (result externref) (do (local.get $local_funcref) ) (catch (drop (pop exnref) ) (ref.null extern) ) ) ) (drop (try (result funcref) (do (ref.func $foo) ) (catch (drop (pop exnref) ) (ref.null func) ) ) ) (drop (try (result exnref) (do (ref.null exn) ) (catch (pop exnref) ) ) ) (drop (try (result anyref) (do (local.get $local_funcref) ) (catch (drop (pop exnref) ) (ref.func $foo) ) ) ) (drop (try (result anyref) (do (local.get $local_funcref) ) (catch (pop exnref) ) ) ) (drop (try (result anyref) (do (ref.func $foo) ) (catch (drop (pop exnref) ) (local.get $local_funcref) ) ) ) (drop (try (result anyref) (do (ref.func $foo) ) (catch (pop exnref) ) ) ) (drop (try (result anyref) (do (ref.null exn) ) (catch (drop (pop exnref) ) (local.get $local_funcref) ) ) ) (drop (try (result anyref) (do (ref.null exn) ) (catch (drop (pop exnref) ) (ref.func $foo) ) ) ) (drop (select (result externref) (local.get $local_funcref) (ref.null extern) (i32.const 1) ) ) (drop (select (result funcref) (local.get $local_externref) (ref.null func) (i32.const 1) ) ) (drop (select (result exnref) (local.get $local_exnref) (ref.null exn) (i32.const 1) ) ) (drop (select (i32.const 0) (i32.const 2) (i32.const 1) ) ) (drop (select (result anyref) (local.get $local_funcref) (local.get $local_externref) (i32.const 1) ) ) (drop (select (result anyref) (local.get $local_funcref) (local.get $local_exnref) (i32.const 1) ) ) (drop (select (result anyref) (local.get $local_externref) (local.get $local_funcref) (i32.const 1) ) ) (drop (select (result anyref) (local.get $local_externref) (local.get $local_exnref) (i32.const 1) ) ) (drop (select (result anyref) (local.get $local_exnref) (local.get $local_funcref) (i32.const 1) ) ) (drop (select (result anyref) (local.get $local_exnref) (local.get $local_externref) (i32.const 1) ) ) (drop (ref.is_null (local.get $local_funcref) ) ) (drop (ref.is_null (global.get $global_externref) ) ) (drop (ref.is_null (ref.null extern) ) ) (drop (ref.is_null (local.get $local_externref) ) ) (drop (ref.is_null (global.get $global_funcref) ) ) (drop (ref.is_null (ref.null func) ) ) (drop (ref.is_null (ref.func $foo) ) ) (drop (ref.is_null (local.get $local_exnref) ) ) (drop (ref.is_null (global.get $global_exnref) ) ) (drop (ref.is_null (ref.null exn) ) ) (drop (ref.is_null (local.get $local_anyref) ) ) (drop (ref.is_null (global.get $global_anyref) ) ) (drop (ref.is_null (ref.null any) ) ) ) (func $return_externref_local (result externref) (local $local_externref externref) (local.get $local_externref) ) (func $return_externref_global (result externref) (global.get $global_externref) ) (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_funcref_global (result funcref) (global.get $global_funcref) ) (func $return_funcref_null (result funcref) (ref.null func) ) (func $return_funcref_func (result funcref) (ref.func $foo) ) (func $return_exnref_local (result exnref) (local $local_exnref exnref) (local.get $local_exnref) ) (func $return_exnref_global (result exnref) (global.get $global_exnref) ) (func $return_exnref_null (result exnref) (ref.null exn) ) (func $return_anyref_local (result anyref) (local $local_anyref anyref) (local.get $local_anyref) ) (func $return_anyref_global (result anyref) (global.get $global_anyref) ) (func $return_anyref_null (result anyref) (ref.null any) ) (func $return_anyref2 (result anyref) (local $local_externref externref) (local.get $local_externref) ) (func $return_anyref3 (result anyref) (global.get $global_externref) ) (func $return_anyref4 (result anyref) (ref.null extern) ) (func $return_anyref5 (result anyref) (local $local_funcref funcref) (local.get $local_funcref) ) (func $return_anyref6 (result anyref) (global.get $global_funcref) ) (func $return_anyref7 (result anyref) (ref.null func) ) (func $return_anyref8 (result anyref) (ref.func $foo) ) (func $return_anyref9 (result anyref) (local $local_exnref exnref) (local.get $local_exnref) ) (func $return_anyref10 (result anyref) (global.get $global_exnref) ) (func $return_anyref11 (result anyref) (ref.null exn) ) (func $returns_externref (result externref) (local $local_externref externref) (return (local.get $local_externref) ) ) (func $returns_funcref (result funcref) (local $local_funcref funcref) (return (local.get $local_funcref) ) ) (func $returns_exnref (result exnref) (local $local_exnref exnref) (return (local.get $local_exnref) ) ) (func $returns_anyref (result anyref) (local $local_anyref anyref) (return (local.get $local_anyref) ) ) (func $returns_anyref2 (result anyref) (local $local_externref funcref) (local $local_funcref externref) (local $local_exnref exnref) (return (local.get $local_funcref) ) ) )