blob: bb5cdb74018d44c4b662779ca6fd9f45cc399f42 [file] [log] [blame]
(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 $eqref_=>_none (func (param eqref)))
(type $none_=>_none (func))
(type $none_=>_eqref (func (result eqref)))
(type $i32_=>_none (func (param i32)))
(type $eqref_=>_funcref (func (param eqref) (result funcref)))
(import "env" "import_global" (global $gimport$0 eqref))
(import "env" "import_func" (func $fimport$0 (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 $eqref_=>_none) (param $0 eqref)
(nop)
)
(func $1 (type $funcref_=>_none) (param $0 funcref)
(nop)
)
(func $2 (type $anyref_=>_none) (param $0 anyref)
(nop)
)
(func $3 (type $none_=>_none)
(nop)
)
(func $4 (type $none_=>_none)
(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 $eqref_=>_none)
(local.get $0)
(i32.const 0)
)
(call_indirect $0 (type $eqref_=>_none)
(global.get $global$0)
(i32.const 0)
)
(call_indirect $0 (type $eqref_=>_none)
(ref.null none)
(i32.const 0)
)
(call_indirect $0 (type $funcref_=>_none)
(local.get $1)
(i32.const 1)
)
(call_indirect $0 (type $funcref_=>_none)
(global.get $global$1)
(i32.const 1)
)
(call_indirect $0 (type $funcref_=>_none)
(ref.null nofunc)
(i32.const 1)
)
(call_indirect $0 (type $funcref_=>_none)
(ref.func $3)
(i32.const 1)
)
(call_indirect $0 (type $anyref_=>_none)
(local.get $2)
(i32.const 3)
)
(call_indirect $0 (type $anyref_=>_none)
(global.get $global$3)
(i32.const 3)
)
(call_indirect $0 (type $anyref_=>_none)
(ref.null none)
(i32.const 3)
)
(call_indirect $0 (type $anyref_=>_none)
(local.get $0)
(i32.const 3)
)
(call_indirect $0 (type $anyref_=>_none)
(global.get $global$0)
(i32.const 3)
)
(call_indirect $0 (type $anyref_=>_none)
(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 $none_=>_eqref) (result eqref)
(local $0 eqref)
(local.get $0)
)
(func $6 (type $none_=>_eqref) (result eqref)
(global.get $global$0)
)
(func $7 (type $none_=>_eqref) (result eqref)
(ref.null none)
)
(func $8 (type $none_=>_funcref) (result funcref)
(local $0 funcref)
(local.get $0)
)
(func $9 (type $none_=>_funcref) (result funcref)
(global.get $global$1)
)
(func $10 (type $none_=>_funcref) (result funcref)
(ref.null nofunc)
)
(func $11 (type $none_=>_funcref) (result funcref)
(ref.func $3)
)
(func $12 (type $none_=>_anyref) (result anyref)
(local $0 anyref)
(local.get $0)
)
(func $13 (type $none_=>_anyref) (result anyref)
(global.get $global$3)
)
(func $14 (type $none_=>_anyref) (result anyref)
(ref.null none)
)
(func $15 (type $none_=>_anyref) (result anyref)
(local $0 eqref)
(local.get $0)
)
(func $16 (type $none_=>_anyref) (result anyref)
(global.get $global$0)
)
(func $17 (type $none_=>_anyref) (result anyref)
(ref.null none)
)
(func $18 (type $none_=>_eqref) (result eqref)
(local $0 eqref)
(return
(local.get $0)
)
)
(func $19 (type $none_=>_funcref) (result funcref)
(local $0 funcref)
(return
(local.get $0)
)
)
(func $20 (type $none_=>_anyref) (result anyref)
(local $0 anyref)
(return
(local.get $0)
)
)
(func $21 (type $none_=>_anyref) (result anyref)
(local $0 eqref)
(local $1 funcref)
(return
(local.get $0)
)
)
(func $22 (type $none_=>_none)
(drop
(ref.func $23)
)
)
(func $23 (type $none_=>_none)
(nop)
)
)