Investigate custom try-catch support

This commit is contained in:
dcode
2019-06-13 15:33:43 +02:00
parent 9cc5608e5e
commit 40dd9252b3
148 changed files with 129001 additions and 96080 deletions

View File

@ -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))

View File

@ -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))

View File

@ -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
)
)

View File

@ -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)
)
)

View File

@ -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)

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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))

View File

@ -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)

View File

@ -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)

View File

@ -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))

View File

@ -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)
)

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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))

View File

@ -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)
)

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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))

View File

@ -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
)
)

View File

@ -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)
)
)

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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
)
)

View File

@ -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

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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))

View File

@ -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
)
)

View File

@ -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)
)
)

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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)

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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))

View File

@ -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))

View File

@ -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
)
)

View File

@ -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)
)
)

View File

@ -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
)
)

View File

@ -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

View File

@ -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)

View File

@ -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))

View File

@ -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))

View File

@ -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))

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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

View File

@ -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)
)

View File

@ -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)
)

View File

@ -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))

View File

@ -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))

View File

@ -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)

View File

@ -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
)
)

View File

@ -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