(module (type $0 (func (result anyref))) (type $1 (func (param anyref))) (type $2 (func (param funcref))) (type $3 (func (result funcref))) (type $4 (func (param eqref))) (type $5 (func)) (type $6 (func (result eqref))) (type $7 (func (param i32))) (type $8 (func (param eqref) (result funcref))) (import "env" "import_global" (global $gimport$0 eqref)) (import "env" "import_func" (func $fimport$0 (type $8) (param eqref) (result funcref))) (global $global$0 (mut eqref) (ref.null none)) (global $global$1 (mut funcref) (ref.null nofunc)) (global $global$2 (mut funcref) (ref.func $3)) (global $global$3 (mut anyref) (ref.null none)) (global $global$4 (mut anyref) (ref.null none)) (table $0 3 3 funcref) (elem $0 (i32.const 0) $0 $1 $2) (elem declare func $23 $3) (tag $tag$0 (param i32)) (export "export_func" (func $fimport$0)) (export "export_global" (global $gimport$0)) (func $0 (type $4) (param $0 eqref) (nop) ) (func $1 (type $2) (param $0 funcref) (nop) ) (func $2 (type $1) (param $0 anyref) (nop) ) (func $3 (type $5) (nop) ) (func $4 (type $5) (local $0 eqref) (local $1 funcref) (local $2 anyref) (local.set $0 (local.get $0) ) (local.set $0 (global.get $global$0) ) (local.set $0 (ref.null none) ) (local.set $1 (local.get $1) ) (local.set $1 (global.get $global$1) ) (local.set $1 (ref.null nofunc) ) (local.set $1 (ref.func $3) ) (local.set $2 (local.get $2) ) (local.set $2 (global.get $global$3) ) (local.set $2 (ref.null none) ) (local.set $2 (local.get $0) ) (local.set $2 (global.get $global$0) ) (local.set $2 (ref.null none) ) (global.set $global$0 (global.get $global$0) ) (global.set $global$0 (local.get $0) ) (global.set $global$0 (ref.null none) ) (global.set $global$1 (global.get $global$1) ) (global.set $global$1 (local.get $1) ) (global.set $global$1 (ref.null nofunc) ) (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 none) ) (global.set $global$3 (global.get $global$0) ) (global.set $global$3 (local.get $0) ) (global.set $global$3 (ref.null none) ) (call $0 (local.get $0) ) (call $0 (global.get $global$0) ) (call $0 (ref.null none) ) (call $1 (local.get $1) ) (call $1 (global.get $global$1) ) (call $1 (ref.null nofunc) ) (call $1 (ref.func $3) ) (call $2 (local.get $2) ) (call $2 (global.get $global$3) ) (call $2 (ref.null none) ) (call $2 (local.get $0) ) (call $2 (global.get $global$0) ) (call $2 (ref.null none) ) (call_indirect $0 (type $4) (local.get $0) (i32.const 0) ) (call_indirect $0 (type $4) (global.get $global$0) (i32.const 0) ) (call_indirect $0 (type $4) (ref.null none) (i32.const 0) ) (call_indirect $0 (type $2) (local.get $1) (i32.const 1) ) (call_indirect $0 (type $2) (global.get $global$1) (i32.const 1) ) (call_indirect $0 (type $2) (ref.null nofunc) (i32.const 1) ) (call_indirect $0 (type $2) (ref.func $3) (i32.const 1) ) (call_indirect $0 (type $1) (local.get $2) (i32.const 3) ) (call_indirect $0 (type $1) (global.get $global$3) (i32.const 3) ) (call_indirect $0 (type $1) (ref.null none) (i32.const 3) ) (call_indirect $0 (type $1) (local.get $0) (i32.const 3) ) (call_indirect $0 (type $1) (global.get $global$0) (i32.const 3) ) (call_indirect $0 (type $1) (ref.null none) (i32.const 3) ) (drop (block $label$1 (result eqref) (br_if $label$1 (local.get $0) (i32.const 1) ) ) ) (drop (block $label$2 (result eqref) (br_if $label$2 (global.get $global$0) (i32.const 1) ) ) ) (drop (block $label$3 (result eqref) (br_if $label$3 (ref.null none) (i32.const 1) ) ) ) (drop (block $label$4 (result funcref) (br_if $label$4 (local.get $1) (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 nofunc) (i32.const 1) ) ) ) (drop (block $label$7 (result funcref) (br_if $label$7 (ref.func $3) (i32.const 1) ) ) ) (drop (block $label$8 (result anyref) (br_if $label$8 (local.get $2) (i32.const 1) ) ) ) (drop (block $label$9 (result anyref) (br_if $label$9 (global.get $global$3) (i32.const 1) ) ) ) (drop (block $label$10 (result anyref) (br_if $label$10 (ref.null none) (i32.const 1) ) ) ) (drop (block $label$11 (result anyref) (br_if $label$11 (local.get $0) (i32.const 1) ) ) ) (drop (block $label$12 (result anyref) (br_if $label$12 (ref.null none) (i32.const 1) ) ) ) (drop (loop $label$13 (result eqref) (local.get $0) ) ) (drop (loop $label$14 (result eqref) (global.get $global$0) ) ) (drop (loop $label$15 (result eqref) (ref.null none) ) ) (drop (loop $label$16 (result funcref) (local.get $1) ) ) (drop (loop $label$17 (result funcref) (global.get $global$1) ) ) (drop (loop $label$18 (result funcref) (ref.null nofunc) ) ) (drop (loop $label$19 (result funcref) (ref.func $3) ) ) (drop (loop $label$20 (result anyref) (local.get $2) ) ) (drop (loop $label$21 (result anyref) (global.get $global$3) ) ) (drop (loop $label$22 (result anyref) (ref.null none) ) ) (drop (loop $label$23 (result anyref) (local.get $0) ) ) (drop (loop $label$24 (result anyref) (global.get $global$0) ) ) (drop (loop $label$25 (result anyref) (ref.null none) ) ) (drop (if (result eqref) (i32.const 1) (local.get $0) (ref.null none) ) ) (drop (if (result funcref) (i32.const 1) (local.get $1) (ref.null nofunc) ) ) (drop (if (result anyref) (i32.const 1) (local.get $2) (ref.null none) ) ) (drop (if (result anyref) (i32.const 1) (local.get $0) (local.get $0) ) ) (drop (if (result anyref) (i32.const 1) (ref.null none) (ref.null none) ) ) (drop (if (result anyref) (i32.const 1) (i31.new (i32.const 0) ) (ref.null none) ) ) (drop (try $label$40 (result eqref) (do (local.get $0) ) (catch $tag$0 (drop (pop i32) ) (ref.null none) ) ) ) (drop (try $label$43 (result funcref) (do (ref.func $3) ) (catch $tag$0 (drop (pop i32) ) (ref.null nofunc) ) ) ) (drop (try $label$46 (result anyref) (do (local.get $0) ) (catch $tag$0 (drop (pop i32) ) (ref.null none) ) ) ) (drop (try $label$49 (result anyref) (do (ref.null none) ) (catch $tag$0 (drop (pop i32) ) (local.get $0) ) ) ) (drop (select (result eqref) (local.get $0) (ref.null none) (i32.const 1) ) ) (drop (select (result funcref) (local.get $1) (ref.null nofunc) (i32.const 1) ) ) (drop (select (i32.const 0) (i32.const 2) (i32.const 1) ) ) (drop (select (result anyref) (local.get $0) (i31.new (i32.const 0) ) (i32.const 1) ) ) (drop (ref.is_null (local.get $0) ) ) (drop (ref.is_null (global.get $global$0) ) ) (drop (ref.is_null (ref.null none) ) ) (drop (ref.is_null (local.get $1) ) ) (drop (ref.is_null (global.get $global$1) ) ) (drop (ref.is_null (ref.null nofunc) ) ) (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 none) ) ) ) (func $5 (type $6) (result eqref) (local $0 eqref) (local.get $0) ) (func $6 (type $6) (result eqref) (global.get $global$0) ) (func $7 (type $6) (result eqref) (ref.null none) ) (func $8 (type $3) (result funcref) (local $0 funcref) (local.get $0) ) (func $9 (type $3) (result funcref) (global.get $global$1) ) (func $10 (type $3) (result funcref) (ref.null nofunc) ) (func $11 (type $3) (result funcref) (ref.func $3) ) (func $12 (type $0) (result anyref) (local $0 anyref) (local.get $0) ) (func $13 (type $0) (result anyref) (global.get $global$3) ) (func $14 (type $0) (result anyref) (ref.null none) ) (func $15 (type $0) (result anyref) (local $0 eqref) (local.get $0) ) (func $16 (type $0) (result anyref) (global.get $global$0) ) (func $17 (type $0) (result anyref) (ref.null none) ) (func $18 (type $6) (result eqref) (local $0 eqref) (return (local.get $0) ) ) (func $19 (type $3) (result funcref) (local $0 funcref) (return (local.get $0) ) ) (func $20 (type $0) (result anyref) (local $0 anyref) (return (local.get $0) ) ) (func $21 (type $0) (result anyref) (local $0 eqref) (local $1 funcref) (return (local.get $0) ) ) (func $22 (type $5) (drop (ref.func $23) ) ) (func $23 (type $5) (nop) ) )