mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-06-18 01:11:32 +00:00
Investigate custom try-catch support
This commit is contained in:
@ -7,6 +7,7 @@
|
||||
(data (i32.const 8) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00a\00b\00i\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $abi/condition (mut i32) (i32.const 0))
|
||||
(global $abi/y (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
|
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/ASC_TARGET i32 (i32.const 0))
|
||||
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
|
||||
(global $~lib/ASC_MEMORY_BASE i32 (i32.const 0))
|
||||
|
@ -1,15 +1,19 @@
|
||||
(module
|
||||
(type $FUNCSIG$ii (func (param i32) (result i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y")
|
||||
(data (i32.const 120) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
|
||||
(data (i32.const 168) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 44) "\01\00\00\00\01")
|
||||
(data (i32.const 56) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y")
|
||||
(data (i32.const 168) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00R\00a\00n\00g\00e\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "testVar" (func $assert-nonnull/testVar))
|
||||
@ -24,7 +28,8 @@
|
||||
(export "testRet" (func $assert-nonnull/testRet))
|
||||
(export "testObjFn" (func $assert-nonnull/testObjFn))
|
||||
(export "testObjRet" (func $assert-nonnull/testObjRet))
|
||||
(func $assert-nonnull/testVar (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(start $start)
|
||||
(func $assert-nonnull/testVar (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
@ -32,7 +37,7 @@
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $assert-nonnull/testObj (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testObj (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
@ -41,7 +46,7 @@
|
||||
local.get $0
|
||||
i32.load
|
||||
)
|
||||
(func $assert-nonnull/testProp (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testProp (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $0
|
||||
@ -51,23 +56,118 @@
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo>#__unchecked_get (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/stub/__alloc (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
global.get $~lib/rt/stub/offset
|
||||
i32.const 16
|
||||
i32.add
|
||||
local.tee $2
|
||||
i32.const 27
|
||||
i32.add
|
||||
i32.const -16
|
||||
i32.and
|
||||
local.tee $1
|
||||
memory.size
|
||||
local.tee $3
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
if
|
||||
local.get $3
|
||||
local.get $1
|
||||
local.get $2
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const -65536
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.gt_s
|
||||
select
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $4
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $1
|
||||
global.set $~lib/rt/stub/offset
|
||||
local.get $2
|
||||
i32.const 16
|
||||
i32.sub
|
||||
local.tee $1
|
||||
local.get $0
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
i32.const 12
|
||||
i32.store offset=12
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/error/Error#constructor (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 3
|
||||
call $~lib/rt/stub/__alloc
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 24
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 56
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/error/RangeError#constructor (; 5 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
i32.const 6
|
||||
call $~lib/rt/stub/__alloc
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
local.tee $0
|
||||
local.get $0
|
||||
i32.load
|
||||
drop
|
||||
i32.const 184
|
||||
i32.store
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo>#__unchecked_get (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo>#__get (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo>#__get (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
i32.const 0
|
||||
local.get $0
|
||||
i32.load offset=12
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 24
|
||||
i32.const 136
|
||||
i32.const 106
|
||||
i32.const 45
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
i32.const 0
|
||||
local.get $0
|
||||
@ -76,17 +176,15 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/array/Array<assert-nonnull/Foo>#__unchecked_get
|
||||
)
|
||||
(func $assert-nonnull/testArr (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testArr (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
@ -94,8 +192,13 @@
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/array/Array<assert-nonnull/Foo>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo | null>#__get (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo | null>#__get (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
i32.const 0
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
@ -103,27 +206,31 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/array/Array<assert-nonnull/Foo>#__unchecked_get
|
||||
)
|
||||
(func $assert-nonnull/testElem (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testElem (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
call $~lib/array/Array<assert-nonnull/Foo | null>#__get
|
||||
local.tee $0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $assert-nonnull/testAll (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testAll (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
@ -131,6 +238,11 @@
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/array/Array<assert-nonnull/Foo | null>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
i32.load
|
||||
local.tee $0
|
||||
i32.eqz
|
||||
@ -139,13 +251,18 @@
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $assert-nonnull/testFn (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testFn (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $assert-nonnull/testFn2 (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testFn2 (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
@ -155,42 +272,68 @@
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $assert-nonnull/testRet (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(func $assert-nonnull/testRet (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.tee $0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $assert-nonnull/testObjFn (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testObjFn (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $assert-nonnull/testObjRet (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(func $assert-nonnull/testObjRet (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.tee $0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $null (; 15 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 17 ;) (type $FUNCSIG$v)
|
||||
i32.const 272
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
)
|
||||
(func $null (; 18 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -2,17 +2,21 @@
|
||||
(type $FUNCSIG$ii (func (param i32) (result i32)))
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00")
|
||||
(data (i32.const 120) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
|
||||
(data (i32.const 168) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 40) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 56) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00")
|
||||
(data (i32.const 168) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00R\00a\00n\00g\00e\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 260))
|
||||
(export "memory" (memory $0))
|
||||
(export "testVar" (func $assert-nonnull/testVar))
|
||||
(export "testObj" (func $assert-nonnull/testObj))
|
||||
@ -26,13 +30,14 @@
|
||||
(export "testRet" (func $assert-nonnull/testRet))
|
||||
(export "testObjFn" (func $assert-nonnull/testObjFn))
|
||||
(export "testObjRet" (func $assert-nonnull/testObjRet))
|
||||
(func $~lib/rt/stub/__retain (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(start $start)
|
||||
(func $~lib/rt/stub/__retain (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/rt/stub/__release (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/stub/__release (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
nop
|
||||
)
|
||||
(func $assert-nonnull/testVar (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testVar (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__retain
|
||||
@ -50,7 +55,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $1
|
||||
)
|
||||
(func $assert-nonnull/testObj (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testObj (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__retain
|
||||
@ -69,7 +74,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $1
|
||||
)
|
||||
(func $assert-nonnull/testProp (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testProp (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__retain
|
||||
@ -88,7 +93,166 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo>#__unchecked_get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/stub/__alloc (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
(local $6 i32)
|
||||
(local $7 i32)
|
||||
(local $8 i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.gt_u
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/rt/stub/offset
|
||||
i32.const 16
|
||||
i32.add
|
||||
local.set $2
|
||||
local.get $2
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.gt_u
|
||||
select
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.set $5
|
||||
memory.size
|
||||
local.set $6
|
||||
local.get $5
|
||||
local.get $6
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
if
|
||||
local.get $5
|
||||
local.get $2
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const 65535
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.set $3
|
||||
local.get $6
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.tee $7
|
||||
local.get $4
|
||||
local.get $7
|
||||
i32.gt_s
|
||||
select
|
||||
local.set $4
|
||||
local.get $4
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $3
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $5
|
||||
global.set $~lib/rt/stub/offset
|
||||
local.get $2
|
||||
i32.const 16
|
||||
i32.sub
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $8
|
||||
local.get $0
|
||||
i32.store offset=12
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/error/Error#constructor (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/stub/__alloc
|
||||
call $~lib/rt/stub/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 24
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 56
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/error/RangeError#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $0
|
||||
if (result i32)
|
||||
local.get $0
|
||||
else
|
||||
i32.const 12
|
||||
i32.const 6
|
||||
call $~lib/rt/stub/__alloc
|
||||
call $~lib/rt/stub/__retain
|
||||
end
|
||||
local.get $1
|
||||
call $~lib/error/Error#constructor
|
||||
local.set $0
|
||||
local.get $0
|
||||
local.tee $2
|
||||
i32.const 184
|
||||
local.tee $3
|
||||
local.get $2
|
||||
i32.load
|
||||
local.tee $2
|
||||
i32.ne
|
||||
if
|
||||
local.get $3
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $2
|
||||
call $~lib/rt/stub/__release
|
||||
end
|
||||
local.get $3
|
||||
i32.store
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo>#__unchecked_get (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.get $1
|
||||
@ -98,18 +262,18 @@
|
||||
i32.load
|
||||
call $~lib/rt/stub/__retain
|
||||
)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo>#__get (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo>#__get (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.load offset=12
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 24
|
||||
i32.const 136
|
||||
i32.const 106
|
||||
i32.const 45
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.get $0
|
||||
@ -118,18 +282,18 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/array/Array<assert-nonnull/Foo>#__unchecked_get
|
||||
)
|
||||
(func $assert-nonnull/testArr (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testArr (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__retain
|
||||
@ -144,11 +308,18 @@
|
||||
i32.const 0
|
||||
call $~lib/array/Array<assert-nonnull/Foo>#__get
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.set $1
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo | null>#__unchecked_get (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo | null>#__unchecked_get (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.get $1
|
||||
@ -158,7 +329,7 @@
|
||||
i32.load
|
||||
call $~lib/rt/stub/__retain
|
||||
)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo | null>#__get (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<assert-nonnull/Foo | null>#__get (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
@ -166,18 +337,18 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/array/Array<assert-nonnull/Foo | null>#__unchecked_get
|
||||
)
|
||||
(func $assert-nonnull/testElem (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testElem (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__retain
|
||||
@ -185,6 +356,13 @@
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<assert-nonnull/Foo | null>#__get
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
if (result i32)
|
||||
local.get $1
|
||||
@ -197,7 +375,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $1
|
||||
)
|
||||
(func $assert-nonnull/testAll (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testAll (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
@ -212,6 +390,13 @@
|
||||
end
|
||||
i32.const 0
|
||||
call $~lib/array/Array<assert-nonnull/Foo | null>#__get
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
i32.load
|
||||
local.tee $2
|
||||
@ -228,7 +413,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $assert-nonnull/testAll2 (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testAll2 (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
@ -243,6 +428,13 @@
|
||||
end
|
||||
i32.const 0
|
||||
call $~lib/array/Array<assert-nonnull/Foo | null>#__get
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
i32.load
|
||||
local.tee $2
|
||||
@ -259,13 +451,20 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $assert-nonnull/testFn (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testFn (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
call $~lib/rt/stub/__retain
|
||||
local.set $2
|
||||
@ -273,7 +472,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $assert-nonnull/testFn2 (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testFn2 (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -289,6 +488,13 @@
|
||||
global.set $~lib/argc
|
||||
local.get $2
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
call $~lib/rt/stub/__retain
|
||||
local.set $3
|
||||
@ -296,13 +502,20 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $3
|
||||
)
|
||||
(func $assert-nonnull/testRet (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testRet (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
local.tee $2
|
||||
if (result i32)
|
||||
@ -316,7 +529,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $assert-nonnull/testObjFn (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testObjFn (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
@ -327,6 +540,13 @@
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
call $~lib/rt/stub/__retain
|
||||
local.set $2
|
||||
@ -336,7 +556,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $assert-nonnull/testObjRet (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $assert-nonnull/testObjRet (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
@ -347,6 +567,13 @@
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
local.tee $2
|
||||
if (result i32)
|
||||
@ -362,6 +589,18 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $null (; 19 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 21 ;) (type $FUNCSIG$v)
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
)
|
||||
(func $null (; 22 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
@ -7,6 +7,7 @@
|
||||
(data (i32.const 48) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00m\00u\00s\00t\00 \00b\00e\00 \00t\00r\00u\00e\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $start:assert (; 1 ;) (type $FUNCSIG$v)
|
||||
|
@ -9,6 +9,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $binary/b (mut i32) (i32.const 0))
|
||||
(global $binary/i (mut i32) (i32.const 0))
|
||||
(global $binary/I (mut i64) (i64.const 0))
|
||||
|
@ -6,6 +6,7 @@
|
||||
(data (i32.const 8) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00b\00o\00o\00l\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $bool/i (mut i32) (i32.const 2))
|
||||
(global $bool/I (mut i64) (i64.const 2))
|
||||
(global $bool/u (mut i32) (i32.const 2))
|
||||
|
@ -11,6 +11,7 @@
|
||||
(data (i32.const 64) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00a\00b\00c\00")
|
||||
(table $0 2 funcref)
|
||||
(elem (i32.const 0) $null $start:builtins~anonymous|0)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $builtins/b (mut i32) (i32.const 0))
|
||||
(global $builtins/i (mut i32) (i32.const 0))
|
||||
(global $builtins/I (mut i64) (i64.const 0))
|
||||
|
@ -9,6 +9,7 @@
|
||||
(data (i32.const 8) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00c\00a\00l\00l\00-\00i\00n\00f\00e\00r\00r\00e\00d\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $call-inferred/foo<i32> (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
|
@ -5,8 +5,10 @@
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s")
|
||||
(data (i32.const 56) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r")
|
||||
(table $0 2 funcref)
|
||||
(elem (i32.const 0) $null $call-optional/opt|trampoline)
|
||||
(global $~lib/error i32 (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $call-optional/optIndirect i32 (i32.const 1))
|
||||
(export "memory" (memory $0))
|
||||
@ -42,6 +44,7 @@
|
||||
call $call-optional/opt
|
||||
)
|
||||
(func $start:call-optional (; 3 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
@ -93,48 +96,65 @@
|
||||
i32.const 0
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
if
|
||||
local.set $0
|
||||
block $uncaughtError
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
local.get $0
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 9
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 9
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 5
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 10
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 3
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 12
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
return
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 72
|
||||
i32.const 24
|
||||
i32.const 1
|
||||
i32.const 0
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
i32.const 5
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 10
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 3
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
i32.const 12
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $start (; 4 ;) (type $FUNCSIG$v)
|
||||
call $start:call-optional
|
||||
|
@ -5,8 +5,10 @@
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00c\00a\00l\00l\00-\00o\00p\00t\00i\00o\00n\00a\00l\00.\00t\00s\00")
|
||||
(data (i32.const 56) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r\00")
|
||||
(table $0 2 funcref)
|
||||
(elem (i32.const 0) $null $call-optional/opt|trampoline)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $call-optional/optIndirect (mut i32) (i32.const 1))
|
||||
(export "memory" (memory $0))
|
||||
@ -42,109 +44,137 @@
|
||||
call $call-optional/opt
|
||||
)
|
||||
(func $start:call-optional (; 3 ;) (type $FUNCSIG$v)
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 0
|
||||
i32.const 0
|
||||
call $call-optional/opt|trampoline
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
(local $0 i32)
|
||||
block $uncaughtError
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 0
|
||||
call $call-optional/opt|trampoline
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 4
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 0
|
||||
call $call-optional/opt|trampoline
|
||||
i32.const 5
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
call $call-optional/opt|trampoline
|
||||
i32.const 5
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 5
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
call $call-optional/opt
|
||||
i32.const 12
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 6
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
call $call-optional/opt
|
||||
i32.const 12
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 6
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 9
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 0
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 5
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 10
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 3
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 12
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
return
|
||||
end
|
||||
i32.const 72
|
||||
i32.const 24
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 0
|
||||
i32.const 0
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
i32.const 0
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 9
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 0
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
i32.const 5
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 10
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 3
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
global.get $call-optional/optIndirect
|
||||
call_indirect (type $FUNCSIG$iiii)
|
||||
i32.const 12
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $start (; 4 ;) (type $FUNCSIG$v)
|
||||
call $start:call-optional
|
||||
|
@ -9,6 +9,7 @@
|
||||
(data (i32.const 8) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00c\00a\00l\00l\00-\00s\00u\00p\00e\00r\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 52))
|
||||
|
@ -5,6 +5,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "test" (func $class-extends/test))
|
||||
(func $~lib/rt/stub/__retain (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
|
@ -5,6 +5,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "test" (func $class-overloading/test))
|
||||
(start $start)
|
||||
|
@ -12,6 +12,7 @@
|
||||
(data (i32.const 8) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00c\00l\00a\00s\00s\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $class/Animal.ONE (mut i32) (i32.const 1))
|
||||
(export "memory" (memory $0))
|
||||
(export "test" (func $class/test))
|
||||
|
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(func $null (; 0 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
|
@ -6,6 +6,7 @@
|
||||
(data (i32.const 8) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00c\00o\00m\00m\00a\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $comma/a (mut i32) (i32.const 0))
|
||||
(global $comma/b (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
|
@ -5,6 +5,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $constructor/emptyCtor (mut i32) (i32.const 0))
|
||||
|
@ -10,6 +10,7 @@
|
||||
(data (i32.const 8) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00d\00e\00c\00l\00a\00r\00e\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $start:declare (; 3 ;) (type $FUNCSIG$v)
|
||||
|
@ -6,6 +6,7 @@
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00d\00o\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $do/n (mut i32) (i32.const 10))
|
||||
(global $do/m (mut i32) (i32.const 0))
|
||||
(global $do/o (mut i32) (i32.const 0))
|
||||
|
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(func $null (; 0 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $enum/Implicit.ZERO i32 (i32.const 0))
|
||||
(global $enum/Implicit.ONE i32 (i32.const 1))
|
||||
(global $enum/Implicit.TWO i32 (i32.const 2))
|
||||
|
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "theDefault" (func $export-default/theDefault))
|
||||
(export "default" (func $export-default/theDefault))
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $export/a i32 (i32.const 1))
|
||||
(global $export/b i32 (i32.const 2))
|
||||
(global $export/c i32 (i32.const 3))
|
||||
|
@ -8,6 +8,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $exports/Animal.CAT i32 (i32.const 0))
|
||||
(global $exports/Animal.DOG i32 (i32.const 1))
|
||||
(global $exports/animals.Animal.CAT i32 (i32.const 0))
|
||||
|
@ -8,6 +8,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "foo" (func $external/foo))
|
||||
(export "foo.bar" (func $external/foo.bar))
|
||||
|
@ -6,6 +6,7 @@
|
||||
(data (i32.const 8) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00f\00o\00r\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $for/i (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
|
@ -7,8 +7,10 @@
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s")
|
||||
(data (i32.const 72) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r")
|
||||
(table $0 11 funcref)
|
||||
(elem (i32.const 0) $start:function-expression~someName $start:function-expression~anonymous|0 $start:function-expression~anonymous|0 $start:function-expression~someName $start:function-expression~anonymous|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5)
|
||||
(global $~lib/error i32 (i32.const 0))
|
||||
(global $function-expression/f1 i32 (i32.const 1))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $function-expression/f2 i32 (i32.const 2))
|
||||
@ -37,6 +39,11 @@
|
||||
i32.const 2
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $start:function-expression~anonymous|4 (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
@ -45,135 +52,167 @@
|
||||
i32.const 42
|
||||
)
|
||||
(func $start:function-expression (; 8 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
global.get $function-expression/f1
|
||||
call_indirect (type $FUNCSIG$ii)
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
local.set $0
|
||||
block $uncaughtError
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 4
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 2
|
||||
global.get $function-expression/f2
|
||||
call_indirect (type $FUNCSIG$ii)
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 2
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 9
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 4
|
||||
global.set $~lib/argc
|
||||
global.get $function-expression/f3
|
||||
call_indirect (type $FUNCSIG$v)
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
global.set $~lib/argc
|
||||
global.get $function-expression/f4
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 16
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 5
|
||||
call $function-expression/testOmitted
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 21
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 6
|
||||
call $function-expression/testOmitted
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 22
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 7
|
||||
call $function-expression/testOmitted
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 42
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 23
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $start:function-expression~anonymous|3
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 34
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $start:function-expression~anonymous|4
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 35
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $start:function-expression~anonymous|5
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 42
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 36
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
return
|
||||
end
|
||||
i32.const 88
|
||||
i32.const 24
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 2
|
||||
global.get $function-expression/f2
|
||||
call_indirect (type $FUNCSIG$ii)
|
||||
i32.const 2
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 9
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
global.get $function-expression/f3
|
||||
call_indirect (type $FUNCSIG$v)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
global.get $function-expression/f4
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 16
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 5
|
||||
call $function-expression/testOmitted
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 21
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 6
|
||||
call $function-expression/testOmitted
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 22
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 7
|
||||
call $function-expression/testOmitted
|
||||
i32.const 42
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 23
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $start:function-expression~anonymous|3
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 34
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $start:function-expression~anonymous|4
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 35
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $start:function-expression~anonymous|5
|
||||
i32.const 42
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 36
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $start (; 9 ;) (type $FUNCSIG$v)
|
||||
call $start:function-expression
|
||||
|
@ -7,8 +7,10 @@
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) ",\00\00\00\01\00\00\00\01\00\00\00,\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00e\00x\00p\00r\00e\00s\00s\00i\00o\00n\00.\00t\00s\00")
|
||||
(data (i32.const 72) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r\00")
|
||||
(table $0 11 funcref)
|
||||
(elem (i32.const 0) $null $start:function-expression~anonymous|0 $start:function-expression~anonymous|1 $start:function-expression~someName $start:function-expression~anonymous|2 $start:function-expression~anonymous|3 $start:function-expression~anonymous|4 $start:function-expression~anonymous|5 $function-expression/testOmittedReturn1~anonymous|0 $function-expression/testOmittedReturn2~anonymous|0 $function-expression/testOmittedReturn3~anonymous|0)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $function-expression/f1 (mut i32) (i32.const 1))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $function-expression/f2 (mut i32) (i32.const 2))
|
||||
@ -34,12 +36,20 @@
|
||||
i32.add
|
||||
)
|
||||
(func $function-expression/testOmitted (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
)
|
||||
(func $start:function-expression~anonymous|4 (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
@ -68,147 +78,215 @@
|
||||
i32.const 10
|
||||
)
|
||||
(func $start:function-expression (; 15 ;) (type $FUNCSIG$v)
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
global.get $function-expression/f1
|
||||
call_indirect (type $FUNCSIG$ii)
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
(local $0 i32)
|
||||
block $uncaughtError
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
global.get $function-expression/f1
|
||||
call_indirect (type $FUNCSIG$ii)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 4
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 2
|
||||
global.get $function-expression/f2
|
||||
call_indirect (type $FUNCSIG$ii)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 2
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 9
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 4
|
||||
global.set $~lib/argc
|
||||
global.get $function-expression/f3
|
||||
call_indirect (type $FUNCSIG$v)
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
global.set $~lib/argc
|
||||
global.get $function-expression/f4
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 16
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 5
|
||||
call $function-expression/testOmitted
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 21
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 6
|
||||
call $function-expression/testOmitted
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 22
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 7
|
||||
call $function-expression/testOmitted
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 42
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 23
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $function-expression/testOmittedReturn1
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 34
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $function-expression/testOmittedReturn2
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 35
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $function-expression/testOmittedReturn3
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 42
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 36
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
return
|
||||
end
|
||||
i32.const 88
|
||||
i32.const 24
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 2
|
||||
global.get $function-expression/f2
|
||||
call_indirect (type $FUNCSIG$ii)
|
||||
i32.const 2
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 9
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
global.get $function-expression/f3
|
||||
call_indirect (type $FUNCSIG$v)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
global.get $function-expression/f4
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 16
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 5
|
||||
call $function-expression/testOmitted
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 21
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 6
|
||||
call $function-expression/testOmitted
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 22
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 7
|
||||
call $function-expression/testOmitted
|
||||
i32.const 42
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 23
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $function-expression/testOmittedReturn1
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 34
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $function-expression/testOmittedReturn2
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 35
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $function-expression/testOmittedReturn3
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
i32.const 42
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 36
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $start (; 16 ;) (type $FUNCSIG$v)
|
||||
call $start:function-expression
|
||||
|
@ -8,8 +8,10 @@
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00t\00y\00p\00e\00s\00.\00t\00s")
|
||||
(data (i32.const 64) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r")
|
||||
(table $0 5 funcref)
|
||||
(elem (i32.const 0) $null $function-types/makeAdder<i32>~anonymous|0 $function-types/makeAdder<i64>~anonymous|0 $function-types/makeAdder<f64>~anonymous|0 $function-types/makeAdder<i32>~anonymous|0)
|
||||
(global $~lib/error i32 (i32.const 0))
|
||||
(global $function-types/i32Adder (mut i32) (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $function-types/i64Adder (mut i32) (i32.const 0))
|
||||
@ -37,9 +39,16 @@
|
||||
local.get $1
|
||||
local.get $2
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $start:function-types (; 5 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i64)
|
||||
(local $2 f64)
|
||||
i32.const 1
|
||||
global.set $function-types/i32Adder
|
||||
i32.const 2
|
||||
@ -48,135 +57,171 @@
|
||||
i32.const 2
|
||||
global.get $function-types/i32Adder
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
local.set $0
|
||||
block $uncaughtError
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $function-types/i64Adder
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i64.const 10
|
||||
i64.const 20
|
||||
global.get $function-types/i64Adder
|
||||
call_indirect (type $FUNCSIG$jjj)
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i64.const 30
|
||||
i64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 15
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
f64.const 1.5
|
||||
f64.const 2.5
|
||||
call $function-types/makeAdder<f64>~anonymous|0
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
f64.const 4
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 17
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
i32.const 3
|
||||
global.get $function-types/i32Adder
|
||||
call $function-types/doAddWithFn<i32>
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 5
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 23
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
call $function-types/makeAdder<i32>~anonymous|0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
local.set $0
|
||||
end
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
local.get $0
|
||||
i32.const 7
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 29
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
i32.const 4
|
||||
call $function-types/doAddWithFn<i32>
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 9
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 35
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $function-types/i64Adder
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i64.const 10
|
||||
i64.const 20
|
||||
global.get $function-types/i64Adder
|
||||
call_indirect (type $FUNCSIG$jjj)
|
||||
i64.const 30
|
||||
i64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 15
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
f64.const 1.5
|
||||
f64.const 2.5
|
||||
call $function-types/makeAdder<f64>~anonymous|0
|
||||
f64.const 4
|
||||
f64.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 17
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
i32.const 3
|
||||
global.get $function-types/i32Adder
|
||||
call $function-types/doAddWithFn<i32>
|
||||
i32.const 5
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 23
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
call $function-types/makeAdder<i32>~anonymous|0
|
||||
i32.const 7
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 29
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
i32.const 4
|
||||
call $function-types/doAddWithFn<i32>
|
||||
i32.const 9
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 35
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
block $1of1
|
||||
block $0of1
|
||||
block $outOfRange
|
||||
global.get $~lib/argc
|
||||
i32.const 2
|
||||
i32.sub
|
||||
br_table $0of1 $1of1 $outOfRange
|
||||
local.set $0
|
||||
block $1of1
|
||||
block $0of1
|
||||
block $outOfRange
|
||||
global.get $~lib/argc
|
||||
i32.const 2
|
||||
i32.sub
|
||||
br_table $0of1 $1of1 $outOfRange
|
||||
end
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
local.set $0
|
||||
end
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
local.get $0
|
||||
call $function-types/doAddWithFn<i32>
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 41
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
local.set $0
|
||||
i32.const 2
|
||||
i32.const 1
|
||||
call $function-types/doAddWithFn<i32>
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 42
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
return
|
||||
end
|
||||
i32.const 80
|
||||
i32.const 24
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
local.get $0
|
||||
call $function-types/doAddWithFn<i32>
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 41
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
i32.const 1
|
||||
call $function-types/doAddWithFn<i32>
|
||||
i32.const 3
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 42
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $start (; 6 ;) (type $FUNCSIG$v)
|
||||
call $start:function-types
|
||||
|
@ -9,8 +9,10 @@
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00f\00u\00n\00c\00t\00i\00o\00n\00-\00t\00y\00p\00e\00s\00.\00t\00s\00")
|
||||
(data (i32.const 64) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r\00")
|
||||
(table $0 5 funcref)
|
||||
(elem (i32.const 0) $null $function-types/makeAdder<i32>~anonymous|0 $function-types/makeAdder<i64>~anonymous|0 $function-types/makeAdder<f64>~anonymous|0 $function-types/addI32)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $function-types/i32Adder (mut i32) (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $function-types/i64Adder (mut i32) (i32.const 0))
|
||||
@ -41,20 +43,36 @@
|
||||
i32.const 3
|
||||
)
|
||||
(func $function-types/doAddWithFn<i32> (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
local.get $1
|
||||
local.get $2
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $function-types/doAdd<i32> (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $function-types/makeAdder<i32>
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
)
|
||||
(func $function-types/addI32 (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
@ -62,12 +80,20 @@
|
||||
i32.add
|
||||
)
|
||||
(func $function-types/makeAndAdd<i32> (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
local.get $1
|
||||
local.get $2
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
)
|
||||
(func $function-types/makeAndAdd<i32>|trampoline (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
block $1of1
|
||||
@ -89,137 +115,197 @@
|
||||
call $function-types/makeAndAdd<i32>
|
||||
)
|
||||
(func $start:function-types (; 12 ;) (type $FUNCSIG$v)
|
||||
call $function-types/makeAdder<i32>
|
||||
global.set $function-types/i32Adder
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
(local $0 i32)
|
||||
(local $1 i64)
|
||||
(local $2 f64)
|
||||
block $uncaughtError
|
||||
call $function-types/makeAdder<i32>
|
||||
global.set $function-types/i32Adder
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
global.get $function-types/i32Adder
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $function-types/makeAdder<i64>
|
||||
global.set $function-types/i64Adder
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i64.const 10
|
||||
i64.const 20
|
||||
global.get $function-types/i64Adder
|
||||
call_indirect (type $FUNCSIG$jjj)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $1
|
||||
i64.const 30
|
||||
i64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 15
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
f64.const 1.5
|
||||
f64.const 2.5
|
||||
call $function-types/makeAdder<f64>
|
||||
call_indirect (type $FUNCSIG$ddd)
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $2
|
||||
f64.const 4
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 17
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
i32.const 3
|
||||
global.get $function-types/i32Adder
|
||||
call $function-types/doAddWithFn<i32>
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 5
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 23
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
call $function-types/doAdd<i32>
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 7
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 29
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
i32.const 4
|
||||
call $function-types/doAddWithFn<i32>
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 9
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 35
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
i32.const 0
|
||||
call $function-types/makeAndAdd<i32>|trampoline
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 41
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $function-types/makeAdder<i32>
|
||||
call $function-types/makeAndAdd<i32>
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 42
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
return
|
||||
end
|
||||
i32.const 80
|
||||
i32.const 24
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
global.get $function-types/i32Adder
|
||||
call_indirect (type $FUNCSIG$iii)
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $function-types/makeAdder<i64>
|
||||
global.set $function-types/i64Adder
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i64.const 10
|
||||
i64.const 20
|
||||
global.get $function-types/i64Adder
|
||||
call_indirect (type $FUNCSIG$jjj)
|
||||
i64.const 30
|
||||
i64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 15
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
f64.const 1.5
|
||||
f64.const 2.5
|
||||
call $function-types/makeAdder<f64>
|
||||
call_indirect (type $FUNCSIG$ddd)
|
||||
f64.const 4
|
||||
f64.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 17
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
i32.const 3
|
||||
global.get $function-types/i32Adder
|
||||
call $function-types/doAddWithFn<i32>
|
||||
i32.const 5
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 23
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
call $function-types/doAdd<i32>
|
||||
i32.const 7
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 29
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 4
|
||||
i32.const 5
|
||||
i32.const 4
|
||||
call $function-types/doAddWithFn<i32>
|
||||
i32.const 9
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 35
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 2
|
||||
global.set $~lib/argc
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
i32.const 0
|
||||
call $function-types/makeAndAdd<i32>|trampoline
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 41
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
i32.const 2
|
||||
call $function-types/makeAdder<i32>
|
||||
call $function-types/makeAndAdd<i32>
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 42
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $start (; 13 ;) (type $FUNCSIG$v)
|
||||
call $start:function-types
|
||||
|
@ -17,6 +17,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $function/_ (; 0 ;) (type $FUNCSIG$v)
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 2 funcref)
|
||||
(elem (i32.const 0) $null $getter-call/C#get:x~anonymous|0)
|
||||
(global $~lib/error i32 (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
@ -75,11 +76,17 @@
|
||||
i32.const 42
|
||||
)
|
||||
(func $getter-call/test (; 2 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
call $~lib/rt/stub/__alloc
|
||||
drop
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
call $getter-call/C#get:x~anonymous|0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $start (; 3 ;) (type $FUNCSIG$v)
|
||||
i32.const 16
|
||||
|
@ -7,6 +7,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 2 funcref)
|
||||
(elem (i32.const 0) $null $getter-call/C#get:x~anonymous|0)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
@ -142,6 +143,13 @@
|
||||
call $getter-call/C#get:x
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.set $1
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $1
|
||||
|
@ -8,6 +8,7 @@
|
||||
(data (i32.const 8) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00g\00e\00t\00t\00e\00r\00-\00s\00e\00t\00t\00e\00r\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $getter-setter/Foo._bar (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
|
@ -6,6 +6,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $../../lib/i64/assembly/i64/lo (mut i32) (i32.const 0))
|
||||
(global $../../lib/i64/assembly/i64/hi (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
|
@ -2,10 +2,16 @@
|
||||
(type $FUNCSIG$ii (func (param i32) (result i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00i\00f\00.\00t\00s")
|
||||
(data (i32.const 40) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00e\00r\00r\00o\00r")
|
||||
(data (i32.const 40) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 76) "\01\00\00\00\01")
|
||||
(data (i32.const 88) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00e\00r\00r\00o\00r")
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "ifThenElse" (func $if/ifThenElse))
|
||||
(export "ifThen" (func $if/ifThen))
|
||||
@ -94,23 +100,95 @@
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $if/ifAlwaysReturns (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/stub/__alloc (; 4 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
global.get $~lib/rt/stub/offset
|
||||
i32.const 16
|
||||
i32.add
|
||||
local.tee $1
|
||||
i32.const 27
|
||||
i32.add
|
||||
i32.const -16
|
||||
i32.and
|
||||
local.tee $0
|
||||
memory.size
|
||||
local.tee $2
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
if
|
||||
local.get $2
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const -65536
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.tee $3
|
||||
local.get $2
|
||||
local.get $3
|
||||
i32.gt_s
|
||||
select
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $3
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $0
|
||||
global.set $~lib/rt/stub/offset
|
||||
local.get $1
|
||||
i32.const 16
|
||||
i32.sub
|
||||
local.tee $0
|
||||
i32.const 3
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
i32.const 12
|
||||
i32.store offset=12
|
||||
local.get $1
|
||||
)
|
||||
(func $if/ifAlwaysReturns (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
call $~lib/rt/stub/__alloc
|
||||
local.tee $0
|
||||
i32.const 56
|
||||
i32.const 24
|
||||
i32.const 37
|
||||
i32.const 4
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 88
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
i32.const 104
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
end
|
||||
)
|
||||
(func $start (; 5 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 6 ;) (type $FUNCSIG$v)
|
||||
call $start:if
|
||||
i32.const 128
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
)
|
||||
(func $null (; 6 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 7 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -2,12 +2,20 @@
|
||||
(type $FUNCSIG$ii (func (param i32) (result i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00i\00f\00.\00t\00s\00")
|
||||
(data (i32.const 40) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00e\00r\00r\00o\00r\00")
|
||||
(data (i32.const 40) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 72) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 88) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00e\00r\00r\00o\00r\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 116))
|
||||
(export "memory" (memory $0))
|
||||
(export "ifThenElse" (func $if/ifThenElse))
|
||||
(export "ifThen" (func $if/ifThen))
|
||||
@ -124,24 +132,160 @@
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $if/ifAlwaysReturns (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/stub/__retain (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/rt/stub/__alloc (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
(local $6 i32)
|
||||
(local $7 i32)
|
||||
(local $8 i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.gt_u
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/rt/stub/offset
|
||||
i32.const 16
|
||||
i32.add
|
||||
local.set $2
|
||||
local.get $2
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.gt_u
|
||||
select
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.set $5
|
||||
memory.size
|
||||
local.set $6
|
||||
local.get $5
|
||||
local.get $6
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
if
|
||||
local.get $5
|
||||
local.get $2
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const 65535
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.set $3
|
||||
local.get $6
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.tee $7
|
||||
local.get $4
|
||||
local.get $7
|
||||
i32.gt_s
|
||||
select
|
||||
local.set $4
|
||||
local.get $4
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $3
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $5
|
||||
global.set $~lib/rt/stub/offset
|
||||
local.get $2
|
||||
i32.const 16
|
||||
i32.sub
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $8
|
||||
local.get $0
|
||||
i32.store offset=12
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/rt/stub/__release (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
nop
|
||||
)
|
||||
(func $~lib/error/Error#constructor (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/stub/__alloc
|
||||
call $~lib/rt/stub/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 56
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 88
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $if/ifAlwaysReturns (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
if
|
||||
i32.const 1
|
||||
return
|
||||
else
|
||||
i32.const 56
|
||||
i32.const 24
|
||||
i32.const 37
|
||||
i32.const 4
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 104
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $start (; 6 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 10 ;) (type $FUNCSIG$v)
|
||||
call $start:if
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
)
|
||||
(func $null (; 7 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 11 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $export/a i32 (i32.const 1))
|
||||
(global $export/b i32 (i32.const 2))
|
||||
(global $export/c i32 (i32.const 3))
|
||||
|
@ -10,6 +10,7 @@
|
||||
(data (i32.const 8) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00i\00n\00f\00e\00r\00-\00t\00y\00p\00e\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $infer-type/i i32 (i32.const 10))
|
||||
(global $infer-type/I i64 (i64.const 4294967296))
|
||||
(global $infer-type/F f64 (f64.const 1.5))
|
||||
|
@ -6,6 +6,7 @@
|
||||
(data (i32.const 8) ".\00\00\00\01\00\00\00\01\00\00\00.\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00-\00b\00l\00o\00c\00k\00l\00o\00c\00a\00l\00s\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $inlining-blocklocals/b (mut i32) (i32.const 2))
|
||||
(global $inlining-blocklocals/theCall_a (mut i32) (i32.const 0))
|
||||
(global $inlining-blocklocals/theCall_b (mut i32) (i32.const 0))
|
||||
|
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "foo" (func $inlining-recursive/foo))
|
||||
(export "bar" (func $inlining-recursive/bar))
|
||||
|
@ -7,8 +7,10 @@
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s")
|
||||
(data (i32.const 48) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r")
|
||||
(table $0 2 funcref)
|
||||
(elem (i32.const 0) $null $inlining/func_fe~anonymous|0)
|
||||
(global $~lib/error i32 (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
@ -22,10 +24,15 @@
|
||||
local.get $0
|
||||
)
|
||||
(func $inlining/test_funcs (; 3 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
i32.const 2
|
||||
call $inlining/func_fe~anonymous|0
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
i32.const 2
|
||||
i32.ne
|
||||
if
|
||||
@ -191,15 +198,29 @@
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $start (; 6 ;) (type $FUNCSIG$v)
|
||||
(func $start:inlining (; 6 ;) (type $FUNCSIG$v)
|
||||
call $inlining/test_funcs
|
||||
i32.const 48
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
call $inlining/test_ctor
|
||||
global.get $~lib/error
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 96
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
call $inlining/test_ctor
|
||||
return
|
||||
end
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 1
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $null (; 7 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 7 ;) (type $FUNCSIG$v)
|
||||
call $start:inlining
|
||||
)
|
||||
(func $null (; 8 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -8,13 +8,15 @@
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00i\00n\00l\00i\00n\00i\00n\00g\00.\00t\00s\00")
|
||||
(data (i32.const 48) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r\00")
|
||||
(table $0 2 funcref)
|
||||
(elem (i32.const 0) $null $inlining/func_fe~anonymous|0)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $inlining/constantGlobal i32 (i32.const 1))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 48))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 92))
|
||||
(export "memory" (memory $0))
|
||||
(export "test" (func $inlining/test))
|
||||
(start $start)
|
||||
@ -218,6 +220,12 @@
|
||||
i32.const 2
|
||||
i32.const 1
|
||||
call_indirect (type $FUNCSIG$ii)
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
i32.const 2
|
||||
i32.eq
|
||||
i32.eqz
|
||||
@ -476,30 +484,43 @@
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $start:inlining (; 8 ;) (type $FUNCSIG$v)
|
||||
call $inlining/test
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 10
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
block $uncaughtError
|
||||
call $inlining/test
|
||||
i32.const 3
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 10
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $inlining/test_funcs
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
call $inlining/test_ctor
|
||||
return
|
||||
end
|
||||
call $inlining/test_funcs
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
call $inlining/test_ctor
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 1
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $start (; 9 ;) (type $FUNCSIG$v)
|
||||
call $start:inlining
|
||||
|
@ -9,6 +9,7 @@
|
||||
(data (i32.const 8) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00i\00n\00s\00t\00a\00n\00c\00e\00o\00f\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $instanceof/a (mut i32) (i32.const 0))
|
||||
(global $instanceof/b (mut i32) (i32.const 0))
|
||||
(global $instanceof/i (mut i32) (i32.const 0))
|
||||
|
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128))
|
||||
(global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127))
|
||||
(global $~lib/builtins/i16.MIN_VALUE i32 (i32.const -32768))
|
||||
|
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $start:literals (; 0 ;) (type $FUNCSIG$v)
|
||||
|
@ -6,6 +6,7 @@
|
||||
(data (i32.const 8) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00l\00o\00g\00i\00c\00a\00l\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $logical/i (mut i32) (i32.const 0))
|
||||
(global $logical/I (mut i64) (i64.const 0))
|
||||
(global $logical/f (mut f32) (f32.const 0))
|
||||
|
@ -6,24 +6,105 @@
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s")
|
||||
(data (i32.const 48) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m")
|
||||
(data (i32.const 48) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 84) "\01\00\00\00\01")
|
||||
(data (i32.const 96) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m")
|
||||
(data (i32.const 120) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r")
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "whileReturn" (func $loop-flow/whileReturn))
|
||||
(export "whileThrow" (func $loop-flow/whileThrow))
|
||||
(export "whileContinue" (func $loop-flow/whileContinue))
|
||||
(export "whileAny" (func $loop-flow/whileAny))
|
||||
(export "forReturn" (func $loop-flow/whileReturn))
|
||||
(export "forThrow" (func $loop-flow/forThrow))
|
||||
(export "forThrow" (func $loop-flow/whileThrow))
|
||||
(export "forContinue" (func $loop-flow/whileContinue))
|
||||
(export "forAny" (func $loop-flow/forAny))
|
||||
(export "doReturn" (func $loop-flow/whileReturn))
|
||||
(export "doThrow" (func $loop-flow/doThrow))
|
||||
(export "doAny" (func $loop-flow/doAny))
|
||||
(export "doThrow" (func $loop-flow/whileThrow))
|
||||
(export "doAny" (func $loop-flow/whileAny))
|
||||
(start $start)
|
||||
(func $loop-flow/whileReturn (; 1 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 1
|
||||
)
|
||||
(func $loop-flow/whileAny (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/stub/__alloc (; 2 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
global.get $~lib/rt/stub/offset
|
||||
i32.const 16
|
||||
i32.add
|
||||
local.tee $1
|
||||
i32.const 27
|
||||
i32.add
|
||||
i32.const -16
|
||||
i32.and
|
||||
local.tee $0
|
||||
memory.size
|
||||
local.tee $2
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
if
|
||||
local.get $2
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const -65536
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.tee $3
|
||||
local.get $2
|
||||
local.get $3
|
||||
i32.gt_s
|
||||
select
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $3
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $0
|
||||
global.set $~lib/rt/stub/offset
|
||||
local.get $1
|
||||
i32.const 16
|
||||
i32.sub
|
||||
local.tee $0
|
||||
i32.const 3
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
i32.const 12
|
||||
i32.store offset=12
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/error/Error#constructor (; 3 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
call $~lib/rt/stub/__alloc
|
||||
local.tee $0
|
||||
i32.const 64
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 96
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
i32.const 112
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
)
|
||||
(func $loop-flow/whileAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
loop $continue|0 (result i32)
|
||||
local.get $0
|
||||
i32.const 1
|
||||
@ -35,16 +116,13 @@
|
||||
i32.const 2
|
||||
i32.ne
|
||||
br_if $continue|0
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 24
|
||||
i32.const 21
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $loop-flow/forAny (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $loop-flow/forAny (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
loop $loop|0 (result i32)
|
||||
local.get $0
|
||||
i32.const 1
|
||||
@ -56,110 +134,90 @@
|
||||
i32.const 2
|
||||
i32.eq
|
||||
if
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 54
|
||||
i32.const 21
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
br $loop|0
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $loop-flow/doAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
loop $continue|0 (result i32)
|
||||
(func $start:loop-flow (; 6 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
i32.const 176
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
i32.const 1
|
||||
call $loop-flow/whileAny
|
||||
local.set $0
|
||||
block $uncaughtError
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.eq
|
||||
if (result i32)
|
||||
i32.const 1
|
||||
else
|
||||
local.get $0
|
||||
i32.const 2
|
||||
i32.ne
|
||||
br_if $continue|0
|
||||
i32.const 64
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 78
|
||||
i32.const 21
|
||||
i32.const 29
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
call $loop-flow/forAny
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 59
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
call $loop-flow/whileAny
|
||||
global.get $~lib/error
|
||||
br_if $uncaughtError
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 83
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $start:loop-flow (; 5 ;) (type $FUNCSIG$v)
|
||||
i32.const 1
|
||||
call $loop-flow/whileAny
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 29
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
call $loop-flow/forAny
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 59
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
call $loop-flow/doAny
|
||||
i32.const 1
|
||||
i32.ne
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 83
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $loop-flow/whileThrow (; 6 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 64
|
||||
i32.const 136
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 4
|
||||
i32.const 1
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $loop-flow/whileContinue (; 7 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $loop-flow/whileThrow (; 7 ;) (type $FUNCSIG$i) (result i32)
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
)
|
||||
(func $loop-flow/whileContinue (; 8 ;) (type $FUNCSIG$i) (result i32)
|
||||
loop $continue|0
|
||||
br $continue|0
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $loop-flow/forThrow (; 8 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 41
|
||||
i32.const 4
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $loop-flow/doThrow (; 9 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 71
|
||||
i32.const 4
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $start (; 10 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 9 ;) (type $FUNCSIG$v)
|
||||
call $start:loop-flow
|
||||
)
|
||||
(func $null (; 11 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 10 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -2,13 +2,22 @@
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$ii (func (param i32) (result i32)))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00l\00o\00o\00p\00-\00f\00l\00o\00w\00.\00t\00s\00")
|
||||
(data (i32.const 48) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m\00")
|
||||
(data (i32.const 48) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 80) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 96) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00e\00r\00m\00")
|
||||
(data (i32.const 120) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00u\00n\00c\00a\00u\00g\00h\00t\00 \00e\00r\00r\00o\00r\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 164))
|
||||
(export "memory" (memory $0))
|
||||
(export "whileReturn" (func $loop-flow/whileReturn))
|
||||
(export "whileThrow" (func $loop-flow/whileThrow))
|
||||
@ -26,7 +35,133 @@
|
||||
i32.const 1
|
||||
return
|
||||
)
|
||||
(func $loop-flow/whileAny (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/stub/__retain (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/rt/stub/__alloc (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
(local $6 i32)
|
||||
(local $7 i32)
|
||||
(local $8 i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.gt_u
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/rt/stub/offset
|
||||
i32.const 16
|
||||
i32.add
|
||||
local.set $2
|
||||
local.get $2
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.gt_u
|
||||
select
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.set $5
|
||||
memory.size
|
||||
local.set $6
|
||||
local.get $5
|
||||
local.get $6
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
if
|
||||
local.get $5
|
||||
local.get $2
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const 65535
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.set $3
|
||||
local.get $6
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.tee $7
|
||||
local.get $4
|
||||
local.get $7
|
||||
i32.gt_s
|
||||
select
|
||||
local.set $4
|
||||
local.get $4
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $3
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $5
|
||||
global.set $~lib/rt/stub/offset
|
||||
local.get $2
|
||||
i32.const 16
|
||||
i32.sub
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $8
|
||||
local.get $0
|
||||
i32.store offset=12
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/rt/stub/__release (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
nop
|
||||
)
|
||||
(func $~lib/error/Error#constructor (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/stub/__alloc
|
||||
call $~lib/rt/stub/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 64
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 96
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $loop-flow/whileAny (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
loop $continue|0
|
||||
local.get $0
|
||||
i32.const 1
|
||||
@ -39,12 +174,12 @@
|
||||
i32.const 2
|
||||
i32.eq
|
||||
if
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 24
|
||||
i32.const 21
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 112
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
else
|
||||
br $continue|0
|
||||
end
|
||||
@ -54,11 +189,11 @@
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $loop-flow/forReturn (; 3 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $loop-flow/forReturn (; 7 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 1
|
||||
return
|
||||
)
|
||||
(func $loop-flow/forAny (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $loop-flow/forAny (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
loop $loop|0
|
||||
block $continue|0
|
||||
local.get $0
|
||||
@ -72,12 +207,12 @@
|
||||
i32.const 2
|
||||
i32.eq
|
||||
if
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 54
|
||||
i32.const 21
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 112
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
else
|
||||
br $continue|0
|
||||
end
|
||||
@ -89,11 +224,11 @@
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $loop-flow/doReturn (; 5 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $loop-flow/doReturn (; 9 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 1
|
||||
return
|
||||
)
|
||||
(func $loop-flow/doAny (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $loop-flow/doAny (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
loop $continue|0
|
||||
local.get $0
|
||||
i32.const 1
|
||||
@ -106,12 +241,12 @@
|
||||
i32.const 2
|
||||
i32.eq
|
||||
if
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 78
|
||||
i32.const 21
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 112
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
else
|
||||
br $continue|0
|
||||
end
|
||||
@ -121,122 +256,160 @@
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $start:loop-flow (; 7 ;) (type $FUNCSIG$v)
|
||||
call $loop-flow/whileReturn
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 7
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
(func $start:loop-flow (; 11 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
block $uncaughtError
|
||||
call $loop-flow/whileReturn
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 7
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
i32.const 1
|
||||
call $loop-flow/whileAny
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 29
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $loop-flow/forReturn
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 37
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
call $loop-flow/forAny
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 59
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $loop-flow/doReturn
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 67
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
call $loop-flow/doAny
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
br $uncaughtError
|
||||
end
|
||||
local.get $0
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 83
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
return
|
||||
end
|
||||
i32.const 1
|
||||
call $loop-flow/whileAny
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 29
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $loop-flow/forReturn
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 37
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
call $loop-flow/forAny
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 59
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
call $loop-flow/doReturn
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 67
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
i32.const 1
|
||||
call $loop-flow/doAny
|
||||
i32.const 1
|
||||
i32.eq
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 24
|
||||
i32.const 83
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $loop-flow/whileThrow (; 8 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 64
|
||||
i32.const 136
|
||||
i32.const 24
|
||||
i32.const 11
|
||||
i32.const 4
|
||||
i32.const 1
|
||||
i32.const 0
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
)
|
||||
(func $loop-flow/whileContinue (; 9 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $loop-flow/whileThrow (; 12 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 0
|
||||
i32.const 112
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
)
|
||||
(func $loop-flow/whileContinue (; 13 ;) (type $FUNCSIG$i) (result i32)
|
||||
loop $continue|0
|
||||
br $continue|0
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $loop-flow/forThrow (; 10 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 41
|
||||
i32.const 4
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
(func $loop-flow/forThrow (; 14 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 0
|
||||
i32.const 112
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
)
|
||||
(func $loop-flow/forContinue (; 11 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $loop-flow/forContinue (; 15 ;) (type $FUNCSIG$i) (result i32)
|
||||
loop $loop|0
|
||||
br $loop|0
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $loop-flow/doThrow (; 12 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 64
|
||||
i32.const 24
|
||||
i32.const 71
|
||||
i32.const 4
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
(func $loop-flow/doThrow (; 16 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 0
|
||||
i32.const 112
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
)
|
||||
(func $start (; 13 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 17 ;) (type $FUNCSIG$v)
|
||||
call $start:loop-flow
|
||||
)
|
||||
(func $null (; 14 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 18 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
@ -5,6 +5,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $../../examples/mandelbrot/assembly/index/NUM_COLORS i32 (i32.const 2048))
|
||||
(export "memory" (memory $0))
|
||||
(export "computeLine" (func $../../examples/mandelbrot/assembly/index/computeLine))
|
||||
|
@ -7,6 +7,7 @@
|
||||
(data (i32.const 8) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00m\00a\00n\00y\00-\00l\00o\00c\00a\00l\00s\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "testI32" (func $many-locals/testI32))
|
||||
(export "testI8" (func $many-locals/testI8))
|
||||
|
@ -7,6 +7,7 @@
|
||||
(data (i32.const 8) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00m\00e\00m\00c\00p\00y\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $memcpy/base i32 (i32.const 8))
|
||||
(global $memcpy/dest (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
|
@ -7,6 +7,7 @@
|
||||
(data (i32.const 8) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00m\00e\00m\00m\00o\00v\00e\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $memmove/base i32 (i32.const 8))
|
||||
(global $memmove/dest (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
|
@ -7,6 +7,7 @@
|
||||
(data (i32.const 8) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00m\00e\00m\00s\00e\00t\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $memset/dest (mut i32) (i32.const 0))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 44))
|
||||
(export "memory" (memory $0))
|
||||
|
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $merge/globalType i32 (i32.const 2))
|
||||
(global $merge/globalType_test (mut i32) (i32.const 0))
|
||||
(global $merge/typeGlobal i32 (i32.const 3))
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "default" (func $named-export-default/get3))
|
||||
(func $named-export-default/get3 (; 0 ;) (type $FUNCSIG$i) (result i32)
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "getValue" (func $named-import-default/getValue))
|
||||
(func $named-export-default/get3 (; 0 ;) (type $FUNCSIG$i) (result i32)
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $namespace/Outer.Inner.aVar (mut i32) (i32.const 0))
|
||||
(global $namespace/Outer.Inner.anEnum.ONE i32 (i32.const 1))
|
||||
(global $namespace/Outer.Inner.anEnum.TWO i32 (i32.const 2))
|
||||
|
@ -40,6 +40,7 @@
|
||||
(data (i32.const 1880) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $number/a (mut i32) (i32.const 1))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
|
@ -7,6 +7,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $optional-typeparameters/tConcrete (mut i32) (i32.const 0))
|
||||
|
@ -6,6 +6,7 @@
|
||||
(data (i32.const 8) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00o\00v\00e\00r\00f\00l\00o\00w\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $start:overflow (; 1 ;) (type $FUNCSIG$v)
|
||||
|
@ -6,6 +6,7 @@
|
||||
(data (i32.const 8) ".\00\00\00\01\00\00\00\01\00\00\00.\00\00\00p\00o\00r\00t\00a\00b\00l\00e\00-\00c\00o\00n\00v\00e\00r\00s\00i\00o\00n\00s\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $portable-conversions/i (mut i32) (i32.const 1))
|
||||
(global $portable-conversions/I (mut i64) (i64.const 1))
|
||||
(global $portable-conversions/f (mut f32) (f32.const 1))
|
||||
|
@ -6,6 +6,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "testTrue" (func $possibly-null/testTrue))
|
||||
(export "testFalseElse" (func $possibly-null/testFalseElse))
|
||||
|
@ -3,8 +3,8 @@
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32)))
|
||||
@ -15,10 +15,11 @@
|
||||
(data (i32.const 12) "\01\00\00\00\01")
|
||||
(data (i32.const 24) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
|
||||
(data (i32.const 72) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s")
|
||||
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
|
||||
(data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
|
||||
(data (i32.const 272) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
|
||||
(data (i32.const 120) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
|
||||
(data (i32.const 176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 264) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $rc/global-init/a (mut i32) (i32.const 0))
|
||||
(global $rc/global-init/b (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
@ -557,27 +558,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/rtrace/onfree
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 272
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 136
|
||||
i32.const 192
|
||||
i32.const 22
|
||||
i32.const 27
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.shl
|
||||
i32.const 276
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/rt/tlsf/addMemory (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/addMemory (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $2
|
||||
@ -691,7 +672,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/insertBlock
|
||||
)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 12 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 11 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
i32.const 1
|
||||
@ -774,17 +755,16 @@
|
||||
i32.const 304
|
||||
global.set $~lib/rt/tlsf/ROOT
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 232
|
||||
i32.const 88
|
||||
i32.const 447
|
||||
i32.const 29
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 136
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 15
|
||||
@ -798,7 +778,7 @@
|
||||
i32.gt_u
|
||||
select
|
||||
)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
local.get $1
|
||||
i32.const 256
|
||||
@ -929,7 +909,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/growMemory (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/tlsf/growMemory (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
memory.size
|
||||
local.tee $2
|
||||
@ -966,7 +946,7 @@
|
||||
i32.shl
|
||||
call $~lib/rt/tlsf/addMemory
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
@ -1042,13 +1022,19 @@
|
||||
i32.store
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/prepareSize
|
||||
local.tee $3
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.tee $2
|
||||
i32.eqz
|
||||
@ -1101,27 +1087,75 @@
|
||||
call $~lib/rt/rtrace/onalloc
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/rt/tlsf/__alloc (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(func $~lib/rt/tlsf/__alloc (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.tee $1
|
||||
i32.eqz
|
||||
if
|
||||
local.tee $2
|
||||
if (result i32)
|
||||
local.get $2
|
||||
else
|
||||
call $~lib/rt/tlsf/initializeRoot
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.set $1
|
||||
end
|
||||
local.get $1
|
||||
local.get $0
|
||||
call $~lib/rt/tlsf/allocateBlock
|
||||
local.tee $0
|
||||
i32.const 0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/error/Error#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__retain
|
||||
drop
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.tee $1
|
||||
i32.const 192
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store
|
||||
local.get $1
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store offset=4
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__release
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 264
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.shl
|
||||
i32.const 268
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
block $~lib/util/memory/memmove|inlined.0
|
||||
@ -1296,7 +1330,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/__free (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
i32.eqz
|
||||
if
|
||||
@ -1329,7 +1363,7 @@
|
||||
i32.sub
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
)
|
||||
(func $~lib/rt/pure/growRoots (; 21 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -1348,8 +1382,14 @@
|
||||
i32.gt_u
|
||||
select
|
||||
local.tee $3
|
||||
i32.const 0
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
local.tee $0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.sub
|
||||
call $~lib/rt/rtrace/onfree
|
||||
@ -1377,7 +1417,7 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/END
|
||||
)
|
||||
(func $~lib/rt/pure/appendRoot (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.tee $1
|
||||
@ -1385,6 +1425,10 @@
|
||||
i32.ge_u
|
||||
if
|
||||
call $~lib/rt/pure/growRoots
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
end
|
||||
@ -1396,9 +1440,10 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/CUR
|
||||
)
|
||||
(func $~lib/rt/pure/decrement (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
@ -1455,6 +1500,10 @@
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
call $~lib/rt/__typeinfo
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
i32.const 16
|
||||
i32.and
|
||||
if
|
||||
@ -1486,7 +1535,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__release (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
i32.const 300
|
||||
i32.gt_u
|
||||
@ -1497,7 +1546,7 @@
|
||||
call $~lib/rt/pure/decrement
|
||||
end
|
||||
)
|
||||
(func $start:rc/global-init (; 25 ;) (type $FUNCSIG$v)
|
||||
(func $start:rc/global-init (; 26 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
@ -1528,10 +1577,10 @@
|
||||
i32.const 0
|
||||
global.set $rc/global-init/b
|
||||
)
|
||||
(func $start (; 26 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 27 ;) (type $FUNCSIG$v)
|
||||
call $start:rc/global-init
|
||||
)
|
||||
(func $~lib/rt/pure/markGray (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/markGray (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1555,7 +1604,7 @@
|
||||
call $~lib/rt/__visit_members
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/scanBlack (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scanBlack (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1568,7 +1617,7 @@
|
||||
i32.const 4
|
||||
call $~lib/rt/__visit_members
|
||||
)
|
||||
(func $~lib/rt/pure/scan (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scan (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1602,7 +1651,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/collectWhite (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/collectWhite (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1635,7 +1684,7 @@
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__visit (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/pure/__visit (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
local.get $0
|
||||
i32.const 300
|
||||
i32.lt_u
|
||||
@ -1670,6 +1719,10 @@
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
br $break|0
|
||||
end
|
||||
local.get $0
|
||||
@ -1745,20 +1798,48 @@
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/__visit_members (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/__visit_members (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
block $switch$1$default
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
block $switch$1$case$5
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$default
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $0
|
||||
if
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
local.tee $0
|
||||
if
|
||||
local.get $0
|
||||
@ -1769,7 +1850,7 @@
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $null (; 33 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 34 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -4,8 +4,8 @@
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
@ -17,12 +17,13 @@
|
||||
(data (i32.const 8) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 24) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
|
||||
(data (i32.const 72) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00")
|
||||
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
|
||||
(data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00")
|
||||
(data (i32.const 272) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
|
||||
(data (i32.const 120) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00")
|
||||
(data (i32.const 176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 264) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $rc/global-init/a (mut i32) (i32.const 0))
|
||||
(global $rc/global-init/b (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
@ -30,7 +31,7 @@
|
||||
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
|
||||
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
|
||||
(global $~lib/rt/__rtti_base i32 (i32.const 272))
|
||||
(global $~lib/rt/__rtti_base i32 (i32.const 264))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 300))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
@ -688,32 +689,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/rtrace/onfree
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/__rtti_base
|
||||
local.set $1
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 136
|
||||
i32.const 192
|
||||
i32.const 22
|
||||
i32.const 27
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $1
|
||||
i32.const 4
|
||||
i32.add
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.mul
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/rt/tlsf/addMemory (; 12 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/addMemory (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -861,7 +837,7 @@
|
||||
call $~lib/rt/tlsf/insertBlock
|
||||
i32.const 1
|
||||
)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 13 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 12 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -1006,19 +982,19 @@
|
||||
local.get $3
|
||||
global.set $~lib/rt/tlsf/ROOT
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 232
|
||||
i32.const 88
|
||||
i32.const 447
|
||||
i32.const 29
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 136
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 15
|
||||
@ -1035,7 +1011,7 @@
|
||||
i32.gt_u
|
||||
select
|
||||
)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -1218,7 +1194,7 @@
|
||||
end
|
||||
local.get $7
|
||||
)
|
||||
(func $~lib/rt/tlsf/growMemory (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/tlsf/growMemory (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -1271,7 +1247,7 @@
|
||||
call $~lib/rt/tlsf/addMemory
|
||||
drop
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 17 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -1366,27 +1342,35 @@
|
||||
i32.store
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/prepareSize
|
||||
local.set $2
|
||||
local.get $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $3
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.eqz
|
||||
if
|
||||
local.get $0
|
||||
local.get $2
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/growMemory
|
||||
local.get $0
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $3
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -1397,13 +1381,13 @@
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.load
|
||||
i32.const 3
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.get $2
|
||||
local.get $3
|
||||
i32.ge_u
|
||||
i32.eqz
|
||||
if
|
||||
@ -1414,26 +1398,27 @@
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.const 0
|
||||
i32.store offset=4
|
||||
local.get $3
|
||||
local.get $4
|
||||
local.get $1
|
||||
i32.store offset=12
|
||||
local.get $0
|
||||
local.get $3
|
||||
local.get $4
|
||||
call $~lib/rt/tlsf/removeBlock
|
||||
local.get $0
|
||||
local.get $4
|
||||
local.get $3
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/prepareBlock
|
||||
local.get $3
|
||||
local.get $4
|
||||
call $~lib/rt/rtrace/onalloc
|
||||
local.get $3
|
||||
local.get $4
|
||||
)
|
||||
(func $~lib/rt/tlsf/__alloc (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/__alloc (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.set $2
|
||||
local.get $2
|
||||
@ -1447,14 +1432,74 @@
|
||||
local.get $0
|
||||
call $~lib/rt/tlsf/allocateBlock
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
local.set $4
|
||||
local.get $4
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.const 16
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/error/Error#constructor (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__retain
|
||||
drop
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 192
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/__rtti_base
|
||||
local.set $1
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
i32.const 4
|
||||
i32.add
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.mul
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2482,7 +2527,7 @@
|
||||
i32.store8
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/memory/memory.copy (; 22 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2707,7 +2752,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/__free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/tlsf/__free (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
i32.eqz
|
||||
if
|
||||
@ -2744,7 +2789,7 @@
|
||||
i32.sub
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
)
|
||||
(func $~lib/rt/pure/growRoots (; 23 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/pure/growRoots (; 24 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -2773,6 +2818,12 @@
|
||||
local.get $4
|
||||
i32.const 0
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
local.set $5
|
||||
local.get $5
|
||||
i32.const 16
|
||||
@ -2802,7 +2853,7 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/END
|
||||
)
|
||||
(func $~lib/rt/pure/appendRoot (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/appendRoot (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
@ -2811,6 +2862,10 @@
|
||||
i32.ge_u
|
||||
if
|
||||
call $~lib/rt/pure/growRoots
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
end
|
||||
@ -2822,9 +2877,10 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/CUR
|
||||
)
|
||||
(func $~lib/rt/pure/decrement (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/decrement (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.set $1
|
||||
@ -2890,6 +2946,12 @@
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
call $~lib/rt/__typeinfo
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
i32.const 16
|
||||
i32.and
|
||||
i32.eqz
|
||||
@ -2910,6 +2972,10 @@
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/rt/pure/appendRoot
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
local.get $0
|
||||
@ -2926,7 +2992,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/__release (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.gt_u
|
||||
@ -2935,9 +3001,13 @@
|
||||
i32.const 16
|
||||
i32.sub
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $start:rc/global-init (; 27 ;) (type $FUNCSIG$v)
|
||||
(func $start:rc/global-init (; 28 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
call $rc/global-init/getRef
|
||||
@ -2973,10 +3043,10 @@
|
||||
local.get $1
|
||||
global.set $rc/global-init/b
|
||||
)
|
||||
(func $start (; 28 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 29 ;) (type $FUNCSIG$v)
|
||||
call $start:rc/global-init
|
||||
)
|
||||
(func $~lib/rt/pure/markGray (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/markGray (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3003,7 +3073,7 @@
|
||||
call $~lib/rt/__visit_members
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/scanBlack (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scanBlack (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3020,7 +3090,7 @@
|
||||
i32.const 4
|
||||
call $~lib/rt/__visit_members
|
||||
)
|
||||
(func $~lib/rt/pure/scan (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scan (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3057,7 +3127,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/collectWhite (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/collectWhite (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3095,7 +3165,7 @@
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__visit (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/pure/__visit (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
@ -3141,6 +3211,10 @@
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
br $break|0
|
||||
end
|
||||
local.get $2
|
||||
@ -3229,16 +3303,27 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/__visit_members (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/__visit_members (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
block $switch$1$default
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$default
|
||||
block $switch$1$case$5
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$default
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
@ -3250,10 +3335,26 @@
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $null (; 35 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 36 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
@ -3,8 +3,8 @@
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32)))
|
||||
@ -15,10 +15,11 @@
|
||||
(data (i32.const 12) "\01\00\00\00\01")
|
||||
(data (i32.const 24) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s")
|
||||
(data (i32.const 72) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s")
|
||||
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s")
|
||||
(data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
|
||||
(data (i32.const 272) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
|
||||
(data (i32.const 120) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e")
|
||||
(data (i32.const 176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 264) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10")
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
|
||||
@ -555,27 +556,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/rtrace/onfree
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 272
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 136
|
||||
i32.const 192
|
||||
i32.const 22
|
||||
i32.const 27
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.shl
|
||||
i32.const 276
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/rt/tlsf/addMemory (; 11 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/addMemory (; 10 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $2
|
||||
@ -689,7 +670,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/insertBlock
|
||||
)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 12 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 11 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
i32.const 1
|
||||
@ -772,17 +753,16 @@
|
||||
i32.const 320
|
||||
global.set $~lib/rt/tlsf/ROOT
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 232
|
||||
i32.const 88
|
||||
i32.const 447
|
||||
i32.const 29
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 136
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 15
|
||||
@ -796,7 +776,7 @@
|
||||
i32.gt_u
|
||||
select
|
||||
)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
local.get $1
|
||||
i32.const 256
|
||||
@ -927,7 +907,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/growMemory (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/tlsf/growMemory (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
memory.size
|
||||
local.tee $2
|
||||
@ -964,7 +944,7 @@
|
||||
i32.shl
|
||||
call $~lib/rt/tlsf/addMemory
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
@ -1040,13 +1020,19 @@
|
||||
i32.store
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/prepareSize
|
||||
local.tee $3
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.tee $2
|
||||
i32.eqz
|
||||
@ -1099,7 +1085,7 @@
|
||||
call $~lib/rt/rtrace/onalloc
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/rt/tlsf/__alloc (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/__alloc (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.tee $2
|
||||
@ -1111,14 +1097,63 @@
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/rt/tlsf/allocateBlock
|
||||
local.tee $0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/error/Error#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__retain
|
||||
drop
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.tee $1
|
||||
i32.const 192
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store
|
||||
local.get $1
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store offset=4
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__release
|
||||
local.get $1
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 264
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 3
|
||||
i32.shl
|
||||
i32.const 268
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
block $~lib/util/memory/memmove|inlined.0
|
||||
@ -1293,7 +1328,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/__free (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
i32.eqz
|
||||
if
|
||||
@ -1326,7 +1361,7 @@
|
||||
i32.sub
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
)
|
||||
(func $~lib/rt/pure/growRoots (; 21 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -1347,7 +1382,12 @@
|
||||
local.tee $3
|
||||
i32.const 0
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
local.tee $0
|
||||
local.set $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.sub
|
||||
call $~lib/rt/rtrace/onfree
|
||||
@ -1375,7 +1415,7 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/END
|
||||
)
|
||||
(func $~lib/rt/pure/appendRoot (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.tee $1
|
||||
@ -1383,6 +1423,10 @@
|
||||
i32.ge_u
|
||||
if
|
||||
call $~lib/rt/pure/growRoots
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
end
|
||||
@ -1394,9 +1438,10 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/CUR
|
||||
)
|
||||
(func $~lib/rt/pure/decrement (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
@ -1453,6 +1498,10 @@
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
call $~lib/rt/__typeinfo
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
i32.const 16
|
||||
i32.and
|
||||
if
|
||||
@ -1484,7 +1533,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__release (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
i32.const 308
|
||||
i32.gt_u
|
||||
@ -1495,7 +1544,7 @@
|
||||
call $~lib/rt/pure/decrement
|
||||
end
|
||||
)
|
||||
(func $start (; 25 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 26 ;) (type $FUNCSIG$v)
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
call $~lib/rt/pure/__release
|
||||
@ -1503,12 +1552,12 @@
|
||||
call $~lib/rt/pure/__retain
|
||||
call $~lib/rt/pure/__release
|
||||
i32.const 0
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
call $~lib/rt/pure/__release
|
||||
)
|
||||
(func $~lib/rt/pure/markGray (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/markGray (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1532,7 +1581,7 @@
|
||||
call $~lib/rt/__visit_members
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/scanBlack (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scanBlack (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1545,7 +1594,7 @@
|
||||
i32.const 4
|
||||
call $~lib/rt/__visit_members
|
||||
)
|
||||
(func $~lib/rt/pure/scan (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scan (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1579,7 +1628,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/collectWhite (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/collectWhite (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -1612,7 +1661,7 @@
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__visit (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/pure/__visit (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
local.get $0
|
||||
i32.const 308
|
||||
i32.lt_u
|
||||
@ -1647,6 +1696,10 @@
|
||||
end
|
||||
local.get $0
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
br $break|0
|
||||
end
|
||||
local.get $0
|
||||
@ -1722,20 +1775,48 @@
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/__visit_members (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/__visit_members (; 32 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
block $switch$1$default
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
block $switch$1$case$5
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$2 $switch$1$default
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $0
|
||||
if
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
local.tee $0
|
||||
if
|
||||
local.get $0
|
||||
@ -1746,7 +1827,7 @@
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $null (; 32 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 33 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -3,8 +3,8 @@
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$vii (func (param i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
|
||||
(type $FUNCSIG$viii (func (param i32 i32 i32)))
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
@ -17,18 +17,19 @@
|
||||
(data (i32.const 8) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 24) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00p\00u\00r\00e\00.\00t\00s\00")
|
||||
(data (i32.const 72) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00")
|
||||
(data (i32.const 120) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 176) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00")
|
||||
(data (i32.const 216) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00")
|
||||
(data (i32.const 272) "\04\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
|
||||
(data (i32.const 120) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00a\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00")
|
||||
(data (i32.const 176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 264) "\05\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
|
||||
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
|
||||
(global $~lib/rt/__rtti_base i32 (i32.const 272))
|
||||
(global $~lib/rt/__rtti_base i32 (i32.const 264))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 308))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
@ -682,32 +683,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/rtrace/onfree
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/__rtti_base
|
||||
local.set $1
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 136
|
||||
i32.const 192
|
||||
i32.const 22
|
||||
i32.const 27
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $1
|
||||
i32.const 4
|
||||
i32.add
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.mul
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/rt/tlsf/addMemory (; 11 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/addMemory (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -855,7 +831,7 @@
|
||||
call $~lib/rt/tlsf/insertBlock
|
||||
i32.const 1
|
||||
)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 12 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/tlsf/initializeRoot (; 11 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -1000,19 +976,19 @@
|
||||
local.get $3
|
||||
global.set $~lib/rt/tlsf/ROOT
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/prepareSize (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 232
|
||||
i32.const 88
|
||||
i32.const 447
|
||||
i32.const 29
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 136
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.const 15
|
||||
@ -1029,7 +1005,7 @@
|
||||
i32.gt_u
|
||||
select
|
||||
)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/searchBlock (; 13 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -1212,7 +1188,7 @@
|
||||
end
|
||||
local.get $7
|
||||
)
|
||||
(func $~lib/rt/tlsf/growMemory (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/tlsf/growMemory (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -1265,7 +1241,7 @@
|
||||
call $~lib/rt/tlsf/addMemory
|
||||
drop
|
||||
)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/rt/tlsf/prepareBlock (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -1360,27 +1336,35 @@
|
||||
i32.store
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/allocateBlock (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
local.get $1
|
||||
call $~lib/rt/tlsf/prepareSize
|
||||
local.set $2
|
||||
local.get $0
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $3
|
||||
local.get $0
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.eqz
|
||||
if
|
||||
local.get $0
|
||||
local.get $2
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/growMemory
|
||||
local.get $0
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $3
|
||||
local.get $3
|
||||
call $~lib/rt/tlsf/searchBlock
|
||||
local.set $4
|
||||
local.get $4
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
@ -1391,13 +1375,13 @@
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.load
|
||||
i32.const 3
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.get $2
|
||||
local.get $3
|
||||
i32.ge_u
|
||||
i32.eqz
|
||||
if
|
||||
@ -1408,26 +1392,27 @@
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
end
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.const 0
|
||||
i32.store offset=4
|
||||
local.get $3
|
||||
local.get $4
|
||||
local.get $1
|
||||
i32.store offset=12
|
||||
local.get $0
|
||||
local.get $3
|
||||
local.get $4
|
||||
call $~lib/rt/tlsf/removeBlock
|
||||
local.get $0
|
||||
local.get $4
|
||||
local.get $3
|
||||
local.get $2
|
||||
call $~lib/rt/tlsf/prepareBlock
|
||||
local.get $3
|
||||
local.get $4
|
||||
call $~lib/rt/rtrace/onalloc
|
||||
local.get $3
|
||||
local.get $4
|
||||
)
|
||||
(func $~lib/rt/tlsf/__alloc (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/tlsf/__alloc (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
local.set $2
|
||||
local.get $2
|
||||
@ -1441,14 +1426,74 @@
|
||||
local.get $0
|
||||
call $~lib/rt/tlsf/allocateBlock
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
local.set $4
|
||||
local.get $4
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.const 16
|
||||
i32.add
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/error/Error#constructor (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__retain
|
||||
drop
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 3
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 192
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/__rtti_base
|
||||
local.set $1
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.load
|
||||
i32.gt_u
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
i32.const 4
|
||||
i32.add
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.mul
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/util/memory/memcpy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2476,7 +2521,7 @@
|
||||
i32.store8
|
||||
end
|
||||
)
|
||||
(func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(func $~lib/memory/memory.copy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -2701,7 +2746,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/tlsf/__free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
global.get $~lib/rt/tlsf/ROOT
|
||||
i32.eqz
|
||||
if
|
||||
@ -2738,7 +2783,7 @@
|
||||
i32.sub
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
)
|
||||
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
|
||||
(func $~lib/rt/pure/growRoots (; 23 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -2767,6 +2812,12 @@
|
||||
local.get $4
|
||||
i32.const 0
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
local.set $5
|
||||
local.get $5
|
||||
i32.const 16
|
||||
@ -2796,7 +2847,7 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/END
|
||||
)
|
||||
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/appendRoot (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
@ -2805,6 +2856,10 @@
|
||||
i32.ge_u
|
||||
if
|
||||
call $~lib/rt/pure/growRoots
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
global.get $~lib/rt/pure/CUR
|
||||
local.set $1
|
||||
end
|
||||
@ -2816,9 +2871,10 @@
|
||||
i32.add
|
||||
global.set $~lib/rt/pure/CUR
|
||||
)
|
||||
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/decrement (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.set $1
|
||||
@ -2884,6 +2940,12 @@
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
call $~lib/rt/__typeinfo
|
||||
local.set $3
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $3
|
||||
i32.const 16
|
||||
i32.and
|
||||
i32.eqz
|
||||
@ -2904,6 +2966,10 @@
|
||||
if
|
||||
local.get $0
|
||||
call $~lib/rt/pure/appendRoot
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
local.get $0
|
||||
@ -2920,7 +2986,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.gt_u
|
||||
@ -2929,25 +2995,29 @@
|
||||
i32.const 16
|
||||
i32.sub
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $rc/local-init/getRef (; 26 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $rc/local-init/getRef (; 27 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
)
|
||||
(func $rc/local-init/Ref#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $rc/local-init/Ref#constructor (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 0
|
||||
i32.const 3
|
||||
i32.const 4
|
||||
call $~lib/rt/tlsf/__alloc
|
||||
call $~lib/rt/pure/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $start:rc/local-init (; 28 ;) (type $FUNCSIG$v)
|
||||
(func $start:rc/local-init (; 29 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
i32.const 24
|
||||
call $~lib/rt/pure/__retain
|
||||
@ -2964,10 +3034,10 @@
|
||||
local.get $0
|
||||
call $~lib/rt/pure/__release
|
||||
)
|
||||
(func $start (; 29 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 30 ;) (type $FUNCSIG$v)
|
||||
call $start:rc/local-init
|
||||
)
|
||||
(func $~lib/rt/pure/markGray (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/markGray (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -2994,7 +3064,7 @@
|
||||
call $~lib/rt/__visit_members
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/scanBlack (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scanBlack (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3011,7 +3081,7 @@
|
||||
i32.const 4
|
||||
call $~lib/rt/__visit_members
|
||||
)
|
||||
(func $~lib/rt/pure/scan (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/scan (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3048,7 +3118,7 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/collectWhite (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/pure/collectWhite (; 34 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -3086,7 +3156,7 @@
|
||||
call $~lib/rt/tlsf/freeBlock
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/pure/__visit (; 34 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/pure/__visit (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $0
|
||||
@ -3132,6 +3202,10 @@
|
||||
end
|
||||
local.get $2
|
||||
call $~lib/rt/pure/decrement
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
br $break|0
|
||||
end
|
||||
local.get $2
|
||||
@ -3220,16 +3294,27 @@
|
||||
end
|
||||
end
|
||||
)
|
||||
(func $~lib/rt/__visit_members (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(func $~lib/rt/__visit_members (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
|
||||
(local $2 i32)
|
||||
block $switch$1$default
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$2 $switch$1$default
|
||||
block $switch$1$case$5
|
||||
block $switch$1$case$4
|
||||
block $switch$1$case$2
|
||||
local.get $0
|
||||
i32.const 8
|
||||
i32.sub
|
||||
i32.load
|
||||
br_table $switch$1$case$2 $switch$1$case$2 $switch$1$case$4 $switch$1$case$5 $switch$1$case$2 $switch$1$default
|
||||
end
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
@ -3241,10 +3326,26 @@
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
local.tee $2
|
||||
if
|
||||
local.get $2
|
||||
local.get $1
|
||||
call $~lib/rt/pure/__visit
|
||||
end
|
||||
return
|
||||
end
|
||||
unreachable
|
||||
)
|
||||
(func $null (; 36 ;) (type $FUNCSIG$v)
|
||||
(func $null (; 37 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "fib" (func $recursive/fib))
|
||||
(func $recursive/fib (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $export/a i32 (i32.const 1))
|
||||
(global $export/b i32 (i32.const 2))
|
||||
(global $export/c i32 (i32.const 3))
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $export/a i32 (i32.const 1))
|
||||
(global $export/b i32 (i32.const 2))
|
||||
(global $export/c i32 (i32.const 3))
|
||||
|
@ -8,6 +8,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $resolve-nested/Outer.Inner.a (mut i32) (i32.const 0))
|
||||
(global $resolve-nested/Outer.Inner.b (mut i32) (i32.const 0))
|
||||
(global $resolve-nested/Outer.Inner.c (mut i32) (i32.const 0))
|
||||
|
@ -7,6 +7,7 @@
|
||||
(data (i32.const 8) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00r\00e\00t\00a\00i\00n\00-\00i\003\002\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/builtins/i8.MAX_VALUE i32 (i32.const 127))
|
||||
(global $~lib/builtins/i8.MIN_VALUE i32 (i32.const -128))
|
||||
(global $~lib/builtins/u8.MAX_VALUE i32 (i32.const 255))
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -4,13 +4,13 @@
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00e\00r\00r\00o\00r")
|
||||
(data (i32.const 40) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00r\00e\00t\00a\00i\00n\00-\00r\00e\00l\00e\00a\00s\00e\00.\00t\00s")
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 44) "\01\00\00\00\01")
|
||||
(data (i32.const 56) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00e\00r\00r\00o\00r")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $retain-release/receiveRef)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $retain-release/REF (mut i32) (i32.const 0))
|
||||
@ -54,7 +54,7 @@
|
||||
(export "provideRefIndirect" (func $retain-release/provideRefIndirect))
|
||||
(export "receiveRefIndirect" (func $retain-release/receiveRefIndirect))
|
||||
(export "receiveRefIndirectDrop" (func $retain-release/receiveRefIndirect))
|
||||
(func $~lib/rt/stub/__alloc (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/stub/__alloc (; 0 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -128,33 +128,33 @@
|
||||
i32.store offset=12
|
||||
local.get $3
|
||||
)
|
||||
(func $retain-release/Ref#constructor (; 2 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $retain-release/Ref#constructor (; 1 ;) (type $FUNCSIG$i) (result i32)
|
||||
i32.const 0
|
||||
i32.const 3
|
||||
call $~lib/rt/stub/__alloc
|
||||
)
|
||||
(func $retain-release/returnRef (; 3 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $retain-release/returnRef (; 2 ;) (type $FUNCSIG$i) (result i32)
|
||||
global.get $retain-release/REF
|
||||
)
|
||||
(func $retain-release/receiveRef (; 4 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/receiveRef (; 3 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
(func $retain-release/takeRef (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/takeRef (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
nop
|
||||
)
|
||||
(func $retain-release/takeReturnRef (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $retain-release/takeReturnRef (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
)
|
||||
(func $retain-release/newRef (; 7 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/newRef (; 6 ;) (type $FUNCSIG$v)
|
||||
call $retain-release/Ref#constructor
|
||||
drop
|
||||
)
|
||||
(func $retain-release/assignGlobal (; 8 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/assignGlobal (; 7 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
global.get $retain-release/REF
|
||||
global.set $retain-release/glo
|
||||
)
|
||||
(func $retain-release/assignField (; 9 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/assignField (; 8 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $retain-release/REF
|
||||
@ -168,42 +168,50 @@
|
||||
local.get $0
|
||||
i32.store
|
||||
)
|
||||
(func $retain-release/scopeBlockToConditional (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeBlockToConditional (; 9 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
nop
|
||||
)
|
||||
(func $retain-release/scopeThrow (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeThrow (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 5
|
||||
call $~lib/rt/stub/__alloc
|
||||
local.tee $0
|
||||
i32.const 24
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 56
|
||||
i32.const 313
|
||||
i32.const 4
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
i32.const 72
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
global.set $~lib/error
|
||||
end
|
||||
)
|
||||
(func $retain-release/scopeUnreachable (; 12 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeUnreachable (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $retain-release/provideRefIndirect (; 13 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/provideRefIndirect (; 12 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
i32.const 1
|
||||
global.set $~lib/argc
|
||||
global.get $retain-release/REF
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$vi)
|
||||
)
|
||||
(func $retain-release/receiveRefIndirect (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/receiveRefIndirect (; 13 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
drop
|
||||
)
|
||||
(func $start (; 15 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 14 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
global.get $~lib/started
|
||||
if
|
||||
|
@ -4,13 +4,13 @@
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00e\00r\00r\00o\00r\00")
|
||||
(data (i32.const 40) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\00r\00e\00t\00a\00i\00n\00-\00r\00e\00l\00e\00a\00s\00e\00.\00t\00s\00")
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 40) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 56) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00e\00r\00r\00o\00r\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $retain-release/REF (mut i32) (i32.const 0))
|
||||
@ -18,7 +18,7 @@
|
||||
(global $retain-release/TARGET (mut i32) (i32.const 0))
|
||||
(global $~lib/argc (mut i32) (i32.const 0))
|
||||
(global $~lib/started (mut i32) (i32.const 0))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 92))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 84))
|
||||
(export "__start" (func $start))
|
||||
(export "memory" (memory $0))
|
||||
(export "returnRef" (func $retain-release/returnRef))
|
||||
@ -55,7 +55,7 @@
|
||||
(export "provideRefIndirect" (func $retain-release/provideRefIndirect))
|
||||
(export "receiveRefIndirect" (func $retain-release/receiveRefIndirect))
|
||||
(export "receiveRefIndirectDrop" (func $retain-release/receiveRefIndirectDrop))
|
||||
(func $~lib/rt/stub/__alloc (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/stub/__alloc (; 0 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
@ -147,10 +147,10 @@
|
||||
i32.store offset=12
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/rt/stub/__retain (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/rt/stub/__retain (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
)
|
||||
(func $retain-release/Ref#constructor (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $retain-release/Ref#constructor (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
@ -162,7 +162,7 @@
|
||||
end
|
||||
local.get $0
|
||||
)
|
||||
(func $retain-release/Target#constructor (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $retain-release/Target#constructor (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
@ -177,7 +177,7 @@
|
||||
i32.store
|
||||
local.get $0
|
||||
)
|
||||
(func $start:retain-release (; 5 ;) (type $FUNCSIG$v)
|
||||
(func $start:retain-release (; 4 ;) (type $FUNCSIG$v)
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.const 15
|
||||
i32.add
|
||||
@ -195,14 +195,14 @@
|
||||
call $retain-release/Target#constructor
|
||||
global.set $retain-release/TARGET
|
||||
)
|
||||
(func $retain-release/returnRef (; 6 ;) (type $FUNCSIG$i) (result i32)
|
||||
(func $retain-release/returnRef (; 5 ;) (type $FUNCSIG$i) (result i32)
|
||||
global.get $retain-release/REF
|
||||
call $~lib/rt/stub/__retain
|
||||
)
|
||||
(func $~lib/rt/stub/__release (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $~lib/rt/stub/__release (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
nop
|
||||
)
|
||||
(func $retain-release/receiveRef (; 8 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/receiveRef (; 7 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
call $retain-release/returnRef
|
||||
local.tee $0
|
||||
@ -211,35 +211,35 @@
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/receiveRefDrop (; 9 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/receiveRefDrop (; 8 ;) (type $FUNCSIG$v)
|
||||
call $retain-release/returnRef
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/receiveRefRetain (; 10 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/receiveRefRetain (; 9 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
call $retain-release/returnRef
|
||||
local.set $0
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/takeRef (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/takeRef (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/provideRef (; 12 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/provideRef (; 11 ;) (type $FUNCSIG$v)
|
||||
global.get $retain-release/REF
|
||||
call $retain-release/takeRef
|
||||
)
|
||||
(func $retain-release/takeReturnRef (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $retain-release/takeReturnRef (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $0
|
||||
)
|
||||
(func $retain-release/provideReceiveRef (; 14 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/provideReceiveRef (; 13 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
global.get $retain-release/REF
|
||||
call $retain-release/takeReturnRef
|
||||
@ -249,12 +249,12 @@
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/newRef (; 15 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/newRef (; 14 ;) (type $FUNCSIG$v)
|
||||
i32.const 0
|
||||
call $retain-release/Ref#constructor
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/assignGlobal (; 16 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/assignGlobal (; 15 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $retain-release/REF
|
||||
@ -272,7 +272,7 @@
|
||||
local.get $0
|
||||
global.set $retain-release/glo
|
||||
)
|
||||
(func $retain-release/assignField (; 17 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/assignField (; 16 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
global.get $retain-release/TARGET
|
||||
@ -293,7 +293,7 @@
|
||||
local.get $1
|
||||
i32.store
|
||||
)
|
||||
(func $retain-release/scopeBlock (; 18 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/scopeBlock (; 17 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
global.get $retain-release/REF
|
||||
call $~lib/rt/stub/__retain
|
||||
@ -301,7 +301,7 @@
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/scopeBlockToUninitialized (; 19 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/scopeBlockToUninitialized (; 18 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -330,7 +330,7 @@
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/scopeBlockToInitialized (; 20 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/scopeBlockToInitialized (; 19 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
@ -360,7 +360,7 @@
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/scopeBlockToConditional (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeBlockToConditional (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -406,14 +406,14 @@
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/scopeTopLevelUninitialized (; 22 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/scopeTopLevelUninitialized (; 21 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
i32.const 0
|
||||
local.set $0
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/scopeTopLevelInitialized (; 23 ;) (type $FUNCSIG$v)
|
||||
(func $retain-release/scopeTopLevelInitialized (; 22 ;) (type $FUNCSIG$v)
|
||||
(local $0 i32)
|
||||
global.get $retain-release/REF
|
||||
call $~lib/rt/stub/__retain
|
||||
@ -421,7 +421,7 @@
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/scopeTopLevelConditional (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeTopLevelConditional (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -447,7 +447,7 @@
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/scopeIf (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeIf (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
if
|
||||
@ -458,7 +458,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
end
|
||||
)
|
||||
(func $retain-release/scopeIfElse (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeIfElse (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
local.get $0
|
||||
if
|
||||
@ -475,7 +475,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
end
|
||||
)
|
||||
(func $retain-release/scopeWhile (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeWhile (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
block $break|0
|
||||
loop $continue|0
|
||||
@ -492,7 +492,7 @@
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $retain-release/scopeDo (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeDo (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
loop $continue|0
|
||||
global.get $retain-release/REF
|
||||
@ -502,7 +502,7 @@
|
||||
br_if $continue|0
|
||||
end
|
||||
)
|
||||
(func $retain-release/scopeFor (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeFor (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
block $break|0
|
||||
loop $loop|0
|
||||
@ -519,7 +519,7 @@
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $retain-release/scopeBreak (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeBreak (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
block $break|0
|
||||
local.get $0
|
||||
@ -533,7 +533,7 @@
|
||||
br $break|0
|
||||
end
|
||||
)
|
||||
(func $retain-release/scopeContinue (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(func $retain-release/scopeContinue (; 30 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
block $break|0
|
||||
loop $continue|0
|
||||
@ -550,6 +550,34 @@
|
||||
unreachable
|
||||
end
|
||||
)
|
||||
(func $~lib/error/Error#constructor (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 5
|
||||
call $~lib/rt/stub/__alloc
|
||||
call $~lib/rt/stub/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 24
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 56
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $retain-release/scopeThrow (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
block $break|0
|
||||
@ -559,14 +587,13 @@
|
||||
global.get $retain-release/REF
|
||||
call $~lib/rt/stub/__retain
|
||||
local.set $1
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
i32.const 24
|
||||
i32.const 56
|
||||
i32.const 313
|
||||
i32.const 4
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $retain-release/scopeUnreachable (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
@ -621,6 +648,10 @@
|
||||
global.get $retain-release/REF
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$vi)
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $retain-release/receiveRefIndirect (; 39 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
@ -628,6 +659,12 @@
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
i32.eqz
|
||||
drop
|
||||
@ -635,10 +672,17 @@
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $retain-release/receiveRefIndirectDrop (; 40 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
(local $1 i32)
|
||||
i32.const 0
|
||||
global.set $~lib/argc
|
||||
local.get $0
|
||||
call_indirect (type $FUNCSIG$i)
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
)
|
||||
(func $start (; 41 ;) (type $FUNCSIG$v)
|
||||
|
@ -6,6 +6,7 @@
|
||||
(data (i32.const 8) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00r\00t\00/\00i\00d\00s\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
(func $start:rt/ids (; 1 ;) (type $FUNCSIG$v)
|
||||
|
@ -10,6 +10,7 @@
|
||||
(data (i32.const 56) "\06\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\10\00\00\00\04\00\00\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $rt/instanceof/animal (mut i32) (i32.const 0))
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(func $null (; 0 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
|
@ -3,6 +3,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(func $null (; 0 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
|
@ -7,6 +7,7 @@
|
||||
(data (i32.const 8) "\03\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/__rtti_base i32 (i32.const 8))
|
||||
|
@ -4,6 +4,7 @@
|
||||
(memory $0 0)
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $scoped/aGlobal (mut i32) (i32.const 1))
|
||||
(global $scoped/aConstant i32 (i32.const 3))
|
||||
(global $scoped/aStartFunctionLocal (mut i32) (i32.const 2))
|
||||
|
@ -7,6 +7,7 @@
|
||||
(data (i32.const 8) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00s\00t\00a\00t\00i\00c\00-\00t\00h\00i\00s\00.\00t\00s\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $static-this/Foo.bar (mut i32) (i32.const 42))
|
||||
(export "memory" (memory $0))
|
||||
(start $start)
|
||||
|
@ -1,34 +1,133 @@
|
||||
(module
|
||||
(type $FUNCSIG$ii (func (param i32) (result i32)))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(type $FUNCSIG$i (func (result i32)))
|
||||
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y")
|
||||
(data (i32.const 120) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
|
||||
(data (i32.const 168) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 228) "\01\00\00\00\01")
|
||||
(data (i32.const 240) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l")
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 44) "\01\00\00\00\01")
|
||||
(data (i32.const 56) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y")
|
||||
(data (i32.const 168) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00R\00a\00n\00g\00e\00E\00r\00r\00o\00r")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e")
|
||||
(data (i32.const 264) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l")
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(export "memory" (memory $0))
|
||||
(export "i32ArrayArrayElementAccess" (func $std/array-access/i32ArrayArrayElementAccess))
|
||||
(export "stringArrayPropertyAccess" (func $std/array-access/stringArrayPropertyAccess))
|
||||
(export "stringArrayMethodCall" (func $std/array-access/stringArrayMethodCall))
|
||||
(export "stringArrayArrayPropertyAccess" (func $std/array-access/stringArrayArrayPropertyAccess))
|
||||
(export "stringArrayArrayMethodCall" (func $std/array-access/stringArrayArrayMethodCall))
|
||||
(func $~lib/array/Array<~lib/array/Array<i32>>#__get (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(start $start)
|
||||
(func $~lib/rt/stub/__alloc (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
global.get $~lib/rt/stub/offset
|
||||
i32.const 16
|
||||
i32.add
|
||||
local.tee $2
|
||||
i32.const 27
|
||||
i32.add
|
||||
i32.const -16
|
||||
i32.and
|
||||
local.tee $1
|
||||
memory.size
|
||||
local.tee $3
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
if
|
||||
local.get $3
|
||||
local.get $1
|
||||
local.get $2
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const -65536
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.gt_s
|
||||
select
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $4
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $1
|
||||
global.set $~lib/rt/stub/offset
|
||||
local.get $2
|
||||
i32.const 16
|
||||
i32.sub
|
||||
local.tee $1
|
||||
local.get $0
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
i32.const 12
|
||||
i32.store offset=12
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/error/Error#constructor (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 5
|
||||
call $~lib/rt/stub/__alloc
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 24
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 56
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/error/RangeError#constructor (; 2 ;) (type $FUNCSIG$i) (result i32)
|
||||
(local $0 i32)
|
||||
(local $1 i32)
|
||||
i32.const 6
|
||||
call $~lib/rt/stub/__alloc
|
||||
i32.const 224
|
||||
call $~lib/error/Error#constructor
|
||||
local.tee $0
|
||||
local.get $0
|
||||
i32.load
|
||||
drop
|
||||
i32.const 184
|
||||
i32.store
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/array/Array<~lib/array/Array<i32>>#__get (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.load offset=12
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 24
|
||||
i32.const 136
|
||||
i32.const 106
|
||||
i32.const 45
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.get $0
|
||||
@ -37,12 +136,10 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -52,7 +149,7 @@
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/array/Array<i32>#__get (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/array/Array<i32>#__get (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
i32.const 1
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
@ -60,12 +157,10 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
@ -73,13 +168,23 @@
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $std/array-access/i32ArrayArrayElementAccess (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/i32ArrayArrayElementAccess (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/array/Array<i32>>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
call $~lib/array/Array<i32>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
)
|
||||
(func $~lib/string/String#get:length (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/string/String#get:length (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.sub
|
||||
@ -87,16 +192,21 @@
|
||||
i32.const 1
|
||||
i32.shr_u
|
||||
)
|
||||
(func $std/array-access/stringArrayPropertyAccess (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/stringArrayPropertyAccess (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/array/Array<i32>>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
call $~lib/string/String#get:length
|
||||
)
|
||||
(func $~lib/util/string/compareImpl (; 6 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/util/string/compareImpl (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
i32.const 240
|
||||
i32.const 56
|
||||
local.set $3
|
||||
local.get $1
|
||||
i32.const 1
|
||||
@ -135,7 +245,7 @@
|
||||
end
|
||||
local.get $4
|
||||
)
|
||||
(func $~lib/string/String#startsWith (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/string/String#startsWith (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -148,7 +258,7 @@
|
||||
i32.lt_s
|
||||
select
|
||||
local.tee $2
|
||||
i32.const 240
|
||||
i32.const 56
|
||||
call $~lib/string/String#get:length
|
||||
local.tee $3
|
||||
i32.add
|
||||
@ -164,29 +274,60 @@
|
||||
call $~lib/util/string/compareImpl
|
||||
i32.eqz
|
||||
)
|
||||
(func $std/array-access/stringArrayMethodCall (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/stringArrayMethodCall (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/array/Array<i32>>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
call $~lib/string/String#startsWith
|
||||
)
|
||||
(func $std/array-access/stringArrayArrayPropertyAccess (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/stringArrayArrayPropertyAccess (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/array/Array<i32>>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
i32.const 1
|
||||
call $~lib/array/Array<~lib/array/Array<i32>>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
call $~lib/string/String#get:length
|
||||
)
|
||||
(func $std/array-access/stringArrayArrayMethodCall (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/stringArrayArrayMethodCall (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/array/Array<i32>>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
i32.const 1
|
||||
call $~lib/array/Array<~lib/array/Array<i32>>#__get
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
call $~lib/string/String#startsWith
|
||||
)
|
||||
(func $null (; 11 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 13 ;) (type $FUNCSIG$v)
|
||||
i32.const 288
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
)
|
||||
(func $null (; 14 ;) (type $FUNCSIG$v)
|
||||
nop
|
||||
)
|
||||
)
|
||||
|
@ -1,30 +1,196 @@
|
||||
(module
|
||||
(type $FUNCSIG$ii (func (param i32) (result i32)))
|
||||
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
|
||||
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
|
||||
(type $FUNCSIG$vi (func (param i32)))
|
||||
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
|
||||
(type $FUNCSIG$iiiiii (func (param i32 i32 i32 i32 i32) (result i32)))
|
||||
(type $FUNCSIG$v (func))
|
||||
(import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32)))
|
||||
(memory $0 1)
|
||||
(data (i32.const 8) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00")
|
||||
(data (i32.const 120) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00")
|
||||
(data (i32.const 168) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 224) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 240) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00")
|
||||
(data (i32.const 8) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 40) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00")
|
||||
(data (i32.const 56) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00")
|
||||
(data (i32.const 168) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00R\00a\00n\00g\00e\00E\00r\00r\00o\00r\00")
|
||||
(data (i32.const 208) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00")
|
||||
(data (i32.const 264) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00")
|
||||
(table $0 1 funcref)
|
||||
(elem (i32.const 0) $null)
|
||||
(global $~lib/error (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/startOffset (mut i32) (i32.const 0))
|
||||
(global $~lib/rt/stub/offset (mut i32) (i32.const 0))
|
||||
(global $~lib/heap/__heap_base i32 (i32.const 288))
|
||||
(export "memory" (memory $0))
|
||||
(export "i32ArrayArrayElementAccess" (func $std/array-access/i32ArrayArrayElementAccess))
|
||||
(export "stringArrayPropertyAccess" (func $std/array-access/stringArrayPropertyAccess))
|
||||
(export "stringArrayMethodCall" (func $std/array-access/stringArrayMethodCall))
|
||||
(export "stringArrayArrayPropertyAccess" (func $std/array-access/stringArrayArrayPropertyAccess))
|
||||
(export "stringArrayArrayMethodCall" (func $std/array-access/stringArrayArrayMethodCall))
|
||||
(func $~lib/rt/stub/__retain (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(start $start)
|
||||
(func $~lib/rt/stub/__retain (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/array/Array<~lib/array/Array<i32>>#__unchecked_get (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/rt/stub/__alloc (; 1 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
(local $6 i32)
|
||||
(local $7 i32)
|
||||
(local $8 i32)
|
||||
local.get $0
|
||||
i32.const 1073741808
|
||||
i32.gt_u
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
global.get $~lib/rt/stub/offset
|
||||
i32.const 16
|
||||
i32.add
|
||||
local.set $2
|
||||
local.get $2
|
||||
local.get $0
|
||||
local.tee $3
|
||||
i32.const 1
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.get $4
|
||||
i32.gt_u
|
||||
select
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
local.set $5
|
||||
memory.size
|
||||
local.set $6
|
||||
local.get $5
|
||||
local.get $6
|
||||
i32.const 16
|
||||
i32.shl
|
||||
i32.gt_u
|
||||
if
|
||||
local.get $5
|
||||
local.get $2
|
||||
i32.sub
|
||||
i32.const 65535
|
||||
i32.add
|
||||
i32.const 65535
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
i32.const 16
|
||||
i32.shr_u
|
||||
local.set $3
|
||||
local.get $6
|
||||
local.tee $4
|
||||
local.get $3
|
||||
local.tee $7
|
||||
local.get $4
|
||||
local.get $7
|
||||
i32.gt_s
|
||||
select
|
||||
local.set $4
|
||||
local.get $4
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
local.get $3
|
||||
memory.grow
|
||||
i32.const 0
|
||||
i32.lt_s
|
||||
if
|
||||
unreachable
|
||||
end
|
||||
end
|
||||
end
|
||||
local.get $5
|
||||
global.set $~lib/rt/stub/offset
|
||||
local.get $2
|
||||
i32.const 16
|
||||
i32.sub
|
||||
local.set $8
|
||||
local.get $8
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $8
|
||||
local.get $0
|
||||
i32.store offset=12
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/rt/stub/__release (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
nop
|
||||
)
|
||||
(func $~lib/error/Error#constructor (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $0
|
||||
i32.eqz
|
||||
if
|
||||
i32.const 12
|
||||
i32.const 5
|
||||
call $~lib/rt/stub/__alloc
|
||||
call $~lib/rt/stub/__retain
|
||||
local.set $0
|
||||
end
|
||||
local.get $0
|
||||
i32.const 24
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store
|
||||
local.get $0
|
||||
i32.const 56
|
||||
call $~lib/rt/stub/__retain
|
||||
i32.store offset=4
|
||||
local.get $0
|
||||
local.get $1
|
||||
i32.store offset=8
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/error/RangeError#constructor (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $0
|
||||
if (result i32)
|
||||
local.get $0
|
||||
else
|
||||
i32.const 12
|
||||
i32.const 6
|
||||
call $~lib/rt/stub/__alloc
|
||||
call $~lib/rt/stub/__retain
|
||||
end
|
||||
local.get $1
|
||||
call $~lib/error/Error#constructor
|
||||
local.set $0
|
||||
local.get $0
|
||||
local.tee $2
|
||||
i32.const 184
|
||||
local.tee $3
|
||||
local.get $2
|
||||
i32.load
|
||||
local.tee $2
|
||||
i32.ne
|
||||
if
|
||||
local.get $3
|
||||
call $~lib/rt/stub/__retain
|
||||
drop
|
||||
local.get $2
|
||||
call $~lib/rt/stub/__release
|
||||
end
|
||||
local.get $3
|
||||
i32.store
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $0
|
||||
)
|
||||
(func $~lib/array/Array<~lib/array/Array<i32>>#__unchecked_get (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.get $1
|
||||
@ -34,18 +200,18 @@
|
||||
i32.load
|
||||
call $~lib/rt/stub/__retain
|
||||
)
|
||||
(func $~lib/array/Array<~lib/array/Array<i32>>#__get (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<~lib/array/Array<i32>>#__get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.load offset=12
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 24
|
||||
i32.const 136
|
||||
i32.const 106
|
||||
i32.const 45
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.get $0
|
||||
@ -54,18 +220,18 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/array/Array<~lib/array/Array<i32>>#__unchecked_get
|
||||
)
|
||||
(func $~lib/array/Array<i32>#__unchecked_get (; 4 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<i32>#__unchecked_get (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.get $1
|
||||
@ -74,7 +240,7 @@
|
||||
i32.add
|
||||
i32.load
|
||||
)
|
||||
(func $~lib/array/Array<i32>#__get (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<i32>#__get (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.load offset=8
|
||||
@ -82,21 +248,18 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/array/Array<i32>#__unchecked_get
|
||||
)
|
||||
(func $~lib/rt/stub/__release (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
|
||||
nop
|
||||
)
|
||||
(func $std/array-access/i32ArrayArrayElementAccess (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/i32ArrayArrayElementAccess (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
@ -105,17 +268,31 @@
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/array/Array<i32>>#__get
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
i32.const 1
|
||||
call $~lib/array/Array<i32>#__get
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
local.set $2
|
||||
local.get $1
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $0
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.get $1
|
||||
@ -125,18 +302,18 @@
|
||||
i32.load
|
||||
call $~lib/rt/stub/__retain
|
||||
)
|
||||
(func $~lib/array/Array<~lib/string/String>#__get (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<~lib/string/String>#__get (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.load offset=12
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 24
|
||||
i32.const 136
|
||||
i32.const 106
|
||||
i32.const 45
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.get $0
|
||||
@ -145,18 +322,18 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/array/Array<~lib/string/String>#__unchecked_get
|
||||
)
|
||||
(func $~lib/string/String#get:length (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $~lib/string/String#get:length (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
local.get $0
|
||||
i32.const 16
|
||||
i32.sub
|
||||
@ -164,7 +341,7 @@
|
||||
i32.const 1
|
||||
i32.shr_u
|
||||
)
|
||||
(func $std/array-access/stringArrayPropertyAccess (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/stringArrayPropertyAccess (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
@ -173,6 +350,13 @@
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/string/String>#__get
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
call $~lib/string/String#get:length
|
||||
local.set $2
|
||||
@ -182,7 +366,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/util/string/compareImpl (; 12 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32)
|
||||
(func $~lib/util/string/compareImpl (; 14 ;) (type $FUNCSIG$iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32)
|
||||
(local $5 i32)
|
||||
(local $6 i32)
|
||||
(local $7 i32)
|
||||
@ -247,7 +431,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $8
|
||||
)
|
||||
(func $~lib/string/String#startsWith (; 13 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(func $~lib/string/String#startsWith (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
|
||||
(local $3 i32)
|
||||
(local $4 i32)
|
||||
(local $5 i32)
|
||||
@ -260,7 +444,7 @@
|
||||
i32.const 0
|
||||
i32.eq
|
||||
if
|
||||
i32.const 256
|
||||
i32.const 280
|
||||
local.tee $3
|
||||
local.get $1
|
||||
local.tee $4
|
||||
@ -322,7 +506,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $3
|
||||
)
|
||||
(func $std/array-access/stringArrayMethodCall (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/stringArrayMethodCall (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
local.get $0
|
||||
@ -331,8 +515,15 @@
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/string/String>#__get
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
i32.const 240
|
||||
i32.const 56
|
||||
i32.const 0
|
||||
call $~lib/string/String#startsWith
|
||||
local.set $2
|
||||
@ -342,7 +533,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $2
|
||||
)
|
||||
(func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__unchecked_get (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__unchecked_get (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $0
|
||||
i32.load offset=4
|
||||
local.get $1
|
||||
@ -352,18 +543,18 @@
|
||||
i32.load
|
||||
call $~lib/rt/stub/__retain
|
||||
)
|
||||
(func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
(func $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
|
||||
local.get $1
|
||||
local.get $0
|
||||
i32.load offset=12
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 24
|
||||
i32.const 136
|
||||
i32.const 106
|
||||
i32.const 45
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 72
|
||||
call $~lib/error/Error#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.get $0
|
||||
@ -372,18 +563,18 @@
|
||||
i32.shr_u
|
||||
i32.ge_u
|
||||
if
|
||||
i32.const 184
|
||||
i32.const 136
|
||||
i32.const 109
|
||||
i32.const 61
|
||||
call $~lib/builtins/abort
|
||||
unreachable
|
||||
i32.const 0
|
||||
i32.const 224
|
||||
call $~lib/error/RangeError#constructor
|
||||
global.set $~lib/error
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $0
|
||||
local.get $1
|
||||
call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__unchecked_get
|
||||
)
|
||||
(func $std/array-access/stringArrayArrayPropertyAccess (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/stringArrayArrayPropertyAccess (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -393,9 +584,23 @@
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
i32.const 1
|
||||
call $~lib/array/Array<~lib/string/String>#__get
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
local.tee $2
|
||||
call $~lib/string/String#get:length
|
||||
local.set $3
|
||||
@ -407,7 +612,7 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $3
|
||||
)
|
||||
(func $std/array-access/stringArrayArrayMethodCall (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(func $std/array-access/stringArrayArrayMethodCall (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
|
||||
(local $1 i32)
|
||||
(local $2 i32)
|
||||
(local $3 i32)
|
||||
@ -417,11 +622,25 @@
|
||||
local.get $0
|
||||
i32.const 0
|
||||
call $~lib/array/Array<~lib/array/Array<~lib/string/String>>#__get
|
||||
local.set $1
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $1
|
||||
local.tee $1
|
||||
i32.const 1
|
||||
call $~lib/array/Array<~lib/string/String>#__get
|
||||
local.set $2
|
||||
global.get $~lib/error
|
||||
if
|
||||
i32.const 0
|
||||
return
|
||||
end
|
||||
local.get $2
|
||||
local.tee $2
|
||||
i32.const 240
|
||||
i32.const 56
|
||||
i32.const 0
|
||||
call $~lib/string/String#startsWith
|
||||
local.set $3
|
||||
@ -433,6 +652,18 @@
|
||||
call $~lib/rt/stub/__release
|
||||
local.get $3
|
||||
)
|
||||
(func $null (; 19 ;) (type $FUNCSIG$v)
|
||||
(func $start (; 21 ;) (type $FUNCSIG$v)
|
||||
global.get $~lib/heap/__heap_base
|
||||
i32.const 15
|
||||
i32.add
|
||||
i32.const 15
|
||||
i32.const -1
|
||||
i32.xor
|
||||
i32.and
|
||||
global.set $~lib/rt/stub/startOffset
|
||||
global.get $~lib/rt/stub/startOffset
|
||||
global.set $~lib/rt/stub/offset
|
||||
)
|
||||
(func $null (; 22 ;) (type $FUNCSIG$v)
|
||||
)
|
||||
)
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user