(module (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 $gimport$1 externref)) (import "env" "import_func" (func $fimport$0 (param externref) (result funcref))) (table $0 3 3 funcref) (elem (i32.const 0) $0 $1 $2) (global $global$0 (mut externref) (ref.null extern)) (global $global$1 (mut funcref) (ref.null func)) (global $global$2 (mut funcref) (ref.func $3)) (global $global$3 (mut exnref) (ref.null exn)) (export "export_func" (func $fimport$0)) (export "export_global" (global $gimport$1)) (func $0 (param $0 externref) (nop) ) (func $1 (param $0 funcref) (nop) ) (func $2 (param $0 exnref) (nop) ) (func $3 (nop) ) (func $4 (local $0 funcref) (local $1 externref) (local $2 exnref) (local.set $1 (local.get $1) ) (local.set $1 (global.get $global$0) ) (local.set $1 (ref.null extern) ) (local.set $0 (local.get $0) ) (local.set $0 (global.get $global$1) ) (local.set $0 (ref.null func) ) (local.set $0 (ref.func $3) ) (local.set $2 (local.get $2) ) (local.set $2 (global.get $global$3) ) (local.set $2 (ref.null exn) ) (global.set $global$0 (global.get $global$0) ) (global.set $global$0 (local.get $1) ) (global.set $global$0 (ref.null extern) ) (global.set $global$1 (global.get $global$1) ) (global.set $global$1 (local.get $0) ) (global.set $global$1 (ref.null func) ) (global.set $global$1 (ref.func $3) ) (global.set $global$3 (global.get $global$3) ) (global.set $global$3 (local.get $2) ) (global.set $global$3 (ref.null exn) ) (call $0 (local.get $1) ) (call $0 (global.get $global$0) ) (call $0 (ref.null extern) ) (call $1 (local.get $0) ) (call $1 (global.get $global$1) ) (call $1 (ref.null func) ) (call $1 (ref.func $3) ) (call $2 (local.get $2) ) (call $2 (global.get $global$3) ) (call $2 (ref.null exn) ) (call_indirect (type $externref_=>_none) (local.get $1) (i32.const 0) ) (call_indirect (type $externref_=>_none) (global.get $global$0) (i32.const 0) ) (call_indirect (type $externref_=>_none) (ref.null extern) (i32.const 0) ) (call_indirect (type $funcref_=>_none) (local.get $0) (i32.const 1) ) (call_indirect (type $funcref_=>_none) (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 $3) (i32.const 1) ) (call_indirect (type $exnref_=>_none) (local.get $2) (i32.const 2) ) (call_indirect (type $exnref_=>_none) (global.get $global$3) (i32.const 2) ) (call_indirect (type $exnref_=>_none) (ref.null exn) (i32.const 2) ) (drop (block $label$1 (result externref) (br_if $label$1 (local.get $1) (i32.const 1) ) ) ) (drop (block $label$2 (result externref) (br_if $label$2 (global.get $global$0) (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 $0) (i32.const 1) ) ) ) (drop (block $label$5 (result funcref) (br_if $label$5 (global.get $global$1) (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 $3) (i32.const 1) ) ) ) (drop (block $label$8 (result exnref) (br_if $label$8 (local.get $2) (i32.const 1) ) ) ) (drop (block $label$9 (result exnref) (br_if $label$9 (global.get $global$3) (i32.const 1) ) ) ) (drop (block $label$10 (result exnref) (br_if $label$10 (ref.null exn) (i32.const 1) ) ) ) (drop (loop $label$11 (result externref) (local.get $1) ) ) (drop (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$15 (result funcref) (global.get $global$1) ) ) (drop (loop $label$16 (result funcref) (ref.null func) ) ) (drop (loop $label$17 (result funcref) (ref.func $3) ) ) (drop (loop $label$18 (result exnref) (local.get $2) ) ) (drop (loop $label$19 (result exnref) (global.get $global$3) ) ) (drop (loop $label$20 (result exnref) (ref.null exn) ) ) (drop (if (result externref) (i32.const 1) (local.get $1) (ref.null extern) ) ) (drop (if (result funcref) (i32.const 1) (local.get $0) (ref.null func) ) ) (drop (if (result exnref) (i32.const 1) (local.get $2) (ref.null exn) ) ) (drop (try (result externref) (do (local.get $1) ) (catch (drop (exnref.pop) ) (ref.null extern) ) ) ) (drop (try (result funcref) (do (ref.func $3) ) (catch (drop (exnref.pop) ) (ref.null func) ) ) ) (drop (try (result exnref) (do (ref.null exn) ) (catch (exnref.pop) ) ) ) (drop (select (result externref) (local.get $1) (ref.null extern) (i32.const 1) ) ) (drop (select (result funcref) (local.get $0) (ref.null func) (i32.const 1) ) ) (drop (select (result exnref) (local.get $2) (ref.null exn) (i32.const 1) ) ) (drop (select (i32.const 0) (i32.const 2) (i32.const 1) ) ) (drop (ref.is_null (local.get $1) ) ) (drop (ref.is_null (global.get $global$0) ) ) (drop (ref.is_null (ref.null extern) ) ) (drop (ref.is_null (local.get $0) ) ) (drop (ref.is_null (global.get $global$1) ) ) (drop (ref.is_null (ref.null func) ) ) (drop (ref.is_null (ref.func $3) ) ) (drop (ref.is_null (local.get $2) ) ) (drop (ref.is_null (global.get $global$3) ) ) (drop (ref.is_null (ref.null exn) ) ) ) (func $5 (result externref) (local $0 externref) (local.get $0) ) (func $6 (result externref) (global.get $global$0) ) (func $7 (result externref) (ref.null extern) ) (func $8 (result funcref) (local $0 funcref) (local.get $0) ) (func $9 (result funcref) (global.get $global$1) ) (func $10 (result funcref) (ref.null func) ) (func $11 (result funcref) (ref.func $3) ) (func $12 (result exnref) (local $0 exnref) (local.get $0) ) (func $13 (result exnref) (global.get $global$3) ) (func $14 (result exnref) (ref.null exn) ) (func $15 (result externref) (local $0 externref) (return (local.get $0) ) ) (func $16 (result funcref) (local $0 funcref) (return (local.get $0) ) ) (func $17 (result exnref) (local $0 exnref) (return (local.get $0) ) ) )