blob: b24f3d4deb5adf32b6c696df2118951a78a5be00 [file] [edit]
(module $module1
(type $#Top <...>)
(type $BoxedInt <...>)
(type $JSExternWrapper <...>)
(type $Object <...>)
(global $".Foo0.doitDispatch(" (import "" "Foo0.doitDispatch(") (ref extern))
(global $".Foo1.doitDevirt(" (import "" "Foo1.doitDevirt(") (ref extern))
(global $".Foo1.doitDispatch(" (import "" "Foo1.doitDispatch(") (ref extern))
(global $".FooBase(" (import "" "FooBase(") (ref extern))
(global $"\")\"" (import "module0" "global4") (ref $JSExternWrapper))
(global $1 (import "module0" "global2") (ref $BoxedInt))
(global $2 (import "module0" "global3") (ref $BoxedInt))
(table $module0.cross-module-funcs-0 (import "module0" "cross-module-funcs-0") 18 funcref)
(table $module0.dispatch0 (import "module0" "dispatch0") 649 funcref)
(global $"\"Foo0.doitDispatch(\"" (ref $JSExternWrapper)
(i32.const 103)
(i32.const 0)
(global.get $".Foo0.doitDispatch(")
(struct.new $JSExternWrapper))
(global $"\"Foo1.doitDevirt(\"" (ref $JSExternWrapper)
(i32.const 103)
(i32.const 0)
(global.get $".Foo1.doitDevirt(")
(struct.new $JSExternWrapper))
(global $"\"Foo1.doitDispatch(\"" (ref $JSExternWrapper)
(i32.const 103)
(i32.const 0)
(global.get $".Foo1.doitDispatch(")
(struct.new $JSExternWrapper))
(global $"\"FooBase(\"" (ref $JSExternWrapper)
(i32.const 103)
(i32.const 0)
(global.get $".FooBase(")
(struct.new $JSExternWrapper))
(global $baseObj (mut (ref null $Object)) <...>)
(global $foo1Obj (mut (ref null $Object)) <...>)
(elem $module0.cross-module-funcs-0
(set 0 (ref.func $"runtimeTrue implicit getter"))
(set 1 (ref.func $"foo1 <noInline>"))
(set 2 (ref.func $"foo0 <noInline>")))
(elem $module0.dispatch0 <...>)
(func $"foo0 <noInline>"
call $"runtimeTrue implicit getter"
if (result (ref $Object))
i32.const 108
i32.const 0
struct.new $Object
else
call $Foo1
end
global.set $baseObj
call $"runtimeTrue implicit getter"
drop
call $Foo1
global.set $foo1Obj
i64.const 0
i32.const 3
call_indirect $module0.cross-module-funcs-0 (param i64) (result i32)
drop
call $"foo1 <noInline>"
)
(func $"foo1 <noInline>"
(local $var0 (ref $Object))
block $label0
block $label1 (result (ref $Object))
global.get $baseObj
br_on_non_null $label1
br $label0
end $label1
local.tee $var0
global.get $1
local.get $var0
struct.get $Object $field0
i32.const 457
i32.add
call_indirect $module0.dispatch0 (param (ref $Object) (ref null $#Top))
block $label2 (result (ref $Object))
global.get $foo1Obj
br_on_non_null $label2
br $label0
end $label2
global.get $2
call $Foo1.doitDispatch
block $label3 (result (ref $Object))
global.get $foo1Obj
br_on_non_null $label3
br $label0
end $label3
drop
call $Foo1.doitDevirt
block $label4 (result (ref $Object))
global.get $foo1Obj
br_on_non_null $label4
br $label0
end $label4
drop
call $Foo1.doitDevirt
return
end $label0
i32.const 4
call_indirect $module0.cross-module-funcs-0
unreachable
)
(func $runtimeTrue implicit getter (result i32) <...>)
(func $Foo0.doitDispatch (param $var0 (ref $Object)) (param $var1 (ref null $#Top))
global.get $"\"Foo0.doitDispatch(\""
local.get $var1
global.get $"\")\""
i32.const 5
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top) (ref null $#Top) (ref null $#Top)) (result (ref $JSExternWrapper))
i32.const 6
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top))
local.get $var1
call $FooBase.doitDispatch
)
(func $Foo1 (result (ref $Object)) <...>)
(func $Foo1.doitDevirt
global.get $"\"Foo1.doitDevirt(\""
global.get $1
global.get $"\")\""
i32.const 5
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top) (ref null $#Top) (ref null $#Top)) (result (ref $JSExternWrapper))
i32.const 6
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top))
global.get $"\"FooBase(\""
global.get $1
global.get $"\")\""
i32.const 5
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top) (ref null $#Top) (ref null $#Top)) (result (ref $JSExternWrapper))
i32.const 6
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top))
)
(func $Foo1.doitDispatch (param $var0 (ref $Object)) (param $var1 (ref null $#Top))
global.get $"\"Foo1.doitDispatch(\""
local.get $var1
global.get $"\")\""
i32.const 5
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top) (ref null $#Top) (ref null $#Top)) (result (ref $JSExternWrapper))
i32.const 6
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top))
local.get $var1
call $FooBase.doitDispatch
)
(func $FooBase.doitDispatch (param $var0 (ref null $#Top))
global.get $"\"FooBase(\""
local.get $var0
global.get $"\")\""
i32.const 5
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top) (ref null $#Top) (ref null $#Top)) (result (ref $JSExternWrapper))
i32.const 6
call_indirect $module0.cross-module-funcs-0 (param (ref null $#Top))
)
)