directize

This commit is contained in:
dcode
2019-04-02 10:12:57 +02:00
parent 1ada854830
commit 3bcd32f3ba
91 changed files with 4225 additions and 4615 deletions

View File

@ -58,7 +58,7 @@
if
i32.const 0
i32.const 16
i32.const 95
i32.const 96
i32.const 45
call $~lib/env/abort
unreachable
@ -72,7 +72,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -100,7 +100,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable

View File

@ -74,7 +74,7 @@
if
i32.const 0
i32.const 16
i32.const 95
i32.const 96
i32.const 45
call $~lib/env/abort
unreachable
@ -88,7 +88,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -128,7 +128,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable

View File

@ -106,7 +106,7 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -121,7 +121,7 @@
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -9,10 +9,10 @@
(data (i32.const 48) "\02\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/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 84))
(export "memory" (memory $0))
@ -22,7 +22,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -121,13 +121,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -139,24 +139,24 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -1,18 +1,18 @@
(module
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00\10")
(data (i32.const 24) "c\00l\00a\00s\00s\00.\00t\00s")
(table $0 2 funcref)
(elem (i32.const 0) $start $~lib/string/String~iterate)
(elem (i32.const 0) $start $~lib/string/String~traverse)
(global $~lib/capabilities i32 (i32.const 2))
(export "memory" (memory $0))
(export "table" (table $0))
(export "test" (func $class/test))
(export ".capabilities" (global $~lib/capabilities))
(func $~lib/string/String~iterate (; 0 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/string/String~traverse (; 0 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $class/test (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)

View File

@ -1,7 +1,6 @@
(module
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$fff (func (param f32 f32) (result f32)))
(type $FUNCSIG$v (func))
@ -12,7 +11,7 @@
(memory $0 1)
(data (i32.const 8) "\01\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00c\00l\00a\00s\00s\00.\00t\00s\00")
(table $0 2 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate)
(elem (i32.const 0) $null $~lib/string/String~traverse)
(global $class/Animal.ONE (mut i32) (i32.const 1))
(global $~lib/memory/HEAP_BASE i32 (i32.const 40))
(global $~lib/capabilities i32 (i32.const 2))
@ -21,8 +20,8 @@
(export "test" (func $class/test))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $class/Animal.add (; 2 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0

View File

@ -7,19 +7,15 @@
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$i (func (result i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00,")
(data (i32.const 24) "~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s")
(data (i32.const 72) "\01\00\00\00\1e")
(data (i32.const 88) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 120) "\01\00\00\00\12")
(data (i32.const 136) " \00 \00 \00 \00 \00i\00t\00e\00r")
(table $0 14 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $~lib/string/String~iterate $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1 $~lib/collector/itcm/step~anonymous|0 $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/string/String~iterate)
(table $0 11 funcref)
(elem (i32.const 0) $null $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/string/String~traverse)
(global $~lib/allocator/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/collector/itcm/state (mut i32) (i32.const 0))
(global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0))
@ -42,10 +38,10 @@
(export "table" (table $0))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/allocator/tlsf/Root#setSLMap (; 3 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/allocator/tlsf/Root#setSLMap (; 2 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
i32.const 22
i32.ge_u
@ -65,7 +61,7 @@
local.get $2
i32.store offset=4
)
(func $~lib/allocator/tlsf/Root#setHead (; 4 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/allocator/tlsf/Root#setHead (; 3 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
local.get $1
i32.const 22
i32.ge_u
@ -100,7 +96,7 @@
local.get $3
i32.store offset=96
)
(func $~lib/allocator/tlsf/Block#get:right (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Block#get:right (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
i32.const -4
@ -134,7 +130,7 @@
end
local.get $0
)
(func $~lib/allocator/tlsf/fls<usize> (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/fls<usize> (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -150,7 +146,7 @@
i32.clz
i32.sub
)
(func $~lib/allocator/tlsf/Root#getHead (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#getHead (; 6 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 22
i32.ge_u
@ -184,7 +180,7 @@
i32.add
i32.load offset=96
)
(func $~lib/allocator/tlsf/Root#getSLMap (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/allocator/tlsf/Root#getSLMap (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
i32.const 22
i32.ge_u
@ -203,7 +199,7 @@
i32.add
i32.load offset=4
)
(func $~lib/allocator/tlsf/Root#remove (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#remove (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -332,7 +328,7 @@
end
end
)
(func $~lib/allocator/tlsf/Block#get:left (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Block#get:left (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
i32.const 2
@ -362,7 +358,7 @@
end
local.get $0
)
(func $~lib/allocator/tlsf/Root#setJump (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#setJump (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.load
i32.const 1
@ -407,7 +403,7 @@
local.get $0
i32.store
)
(func $~lib/allocator/tlsf/Root#insert (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#insert (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -637,7 +633,7 @@
i32.or
call $~lib/allocator/tlsf/Root#setSLMap
)
(func $~lib/allocator/tlsf/Root#addMemory (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/allocator/tlsf/Root#addMemory (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
local.get $1
@ -760,7 +756,7 @@
local.get $1
call $~lib/allocator/tlsf/Root#insert
)
(func $~lib/allocator/tlsf/ffs<usize> (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/ffs<usize> (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -774,7 +770,7 @@
local.get $0
i32.ctz
)
(func $~lib/allocator/tlsf/Root#search (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/allocator/tlsf/Root#search (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $1
@ -886,7 +882,7 @@
end
end
)
(func $~lib/allocator/tlsf/Root#use (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#use (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
local.get $1
@ -997,7 +993,7 @@
i32.const 8
i32.add
)
(func $~lib/allocator/tlsf/__mem_allocate (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/__mem_allocate (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -1023,14 +1019,14 @@
if
unreachable
end
i32.const 160
i32.const 120
local.set $2
i32.const 160
i32.const 120
global.set $~lib/allocator/tlsf/ROOT
i32.const 2912
i32.const 0
i32.store
i32.const 160
i32.const 120
i32.const 0
i32.store
i32.const 0
@ -1040,7 +1036,7 @@
i32.const 22
i32.lt_u
if
i32.const 160
i32.const 120
local.get $1
i32.const 0
call $~lib/allocator/tlsf/Root#setSLMap
@ -1051,7 +1047,7 @@
i32.const 32
i32.lt_u
if
i32.const 160
i32.const 120
local.get $1
local.get $3
i32.const 0
@ -1070,8 +1066,8 @@
br $repeat|0
end
end
i32.const 160
i32.const 3080
i32.const 120
i32.const 3040
current_memory
i32.const 16
i32.shl
@ -1167,7 +1163,7 @@
local.get $1
call $~lib/allocator/tlsf/Root#use
)
(func $~lib/runtime/runtime.allocate (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/runtime.allocate (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 1
i32.const 32
@ -1194,114 +1190,7 @@
i32.const 16
i32.add
)
(func $~lib/collector/itcm/ManagedObjectList#push (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load offset=12
local.set $2
local.get $1
local.get $1
i32.load offset=8
i32.const 3
i32.and
local.get $0
i32.or
i32.store offset=8
local.get $1
local.get $2
i32.store offset=12
local.get $2
local.get $2
i32.load offset=8
i32.const 3
i32.and
local.get $1
i32.or
i32.store offset=8
local.get $0
local.get $1
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
global.get $~lib/collector/itcm/iter
local.get $0
i32.eq
if
local.get $0
i32.load offset=12
global.set $~lib/collector/itcm/iter
end
local.get $0
i32.load offset=8
i32.const -4
i32.and
local.tee $2
local.get $0
i32.load offset=12
local.tee $1
i32.store offset=12
local.get $1
local.get $1
i32.load offset=8
i32.const 3
i32.and
local.get $2
i32.or
i32.store offset=8
global.get $~lib/collector/itcm/toSpace
local.get $0
call $~lib/collector/itcm/ManagedObjectList#push
local.get $0
local.get $0
i32.load offset=8
i32.const -4
i32.and
i32.const 2
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/step~anonymous|0 (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/collector/itcm/white
local.get $0
i32.const 16
i32.sub
local.tee $0
i32.load offset=8
i32.const 3
i32.and
i32.eq
if
local.get $0
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/collector/itcm/step~anonymous|1 (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 136
i32.const 1
local.get $0
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $~lib/collector/itcm/white
local.get $0
i32.const 16
i32.sub
local.tee $0
i32.load offset=8
i32.const 3
i32.and
i32.eq
if
local.get $0
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/allocator/tlsf/__mem_free (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/allocator/tlsf/__mem_free (; 18 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -1339,7 +1228,7 @@
end
end
)
(func $~lib/collector/itcm/step (; 24 ;) (type $FUNCSIG$v)
(func $~lib/collector/itcm/step (; 19 ;) (type $FUNCSIG$v)
(local $0 i32)
block $break|0
block $case3|0
@ -1390,8 +1279,7 @@
i32.const 1
global.set $~lib/collector/itcm/state
end
i32.const 3
call $~iterateRoots
call $~lib/gc/__gc_mark_roots
i32.const 2
global.set $~lib/collector/itcm/state
br $break|0
@ -1418,13 +1306,11 @@
local.get $0
i32.const 16
i32.add
i32.const 4
local.get $0
i32.load
call_indirect (type $FUNCSIG$vii)
call_indirect (type $FUNCSIG$vi)
else
i32.const 5
call $~iterateRoots
call $~lib/gc/__gc_mark_roots
global.get $~lib/collector/itcm/toSpace
global.get $~lib/collector/itcm/iter
i32.load offset=8
@ -1463,7 +1349,7 @@
i32.and
global.set $~lib/collector/itcm/iter
local.get $0
i32.const 156
i32.const 120
i32.ge_u
if
local.get $0
@ -1482,7 +1368,35 @@
end
end
)
(func $~lib/collector/itcm/__ref_register (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObjectList#push (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load offset=12
local.set $2
local.get $1
local.get $1
i32.load offset=8
i32.const 3
i32.and
local.get $0
i32.or
i32.store offset=8
local.get $1
local.get $2
i32.store offset=12
local.get $2
local.get $2
i32.load offset=8
i32.const 3
i32.and
local.get $1
i32.or
i32.store offset=8
local.get $0
local.get $1
i32.store offset=12
)
(func $~lib/collector/itcm/__ref_register (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
call $~lib/collector/itcm/step
local.get $0
i32.const 16
@ -1499,15 +1413,15 @@
local.get $0
call $~lib/collector/itcm/ManagedObjectList#push
)
(func $~lib/runtime/runtime.register (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/runtime.register (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 156
i32.const 120
i32.le_u
if
i32.const 0
i32.const 88
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -1522,7 +1436,7 @@
if
i32.const 0
i32.const 88
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -1536,14 +1450,14 @@
end
local.get $0
)
(func $constructor/CtorConditionallyAllocates#constructor (; 27 ;) (type $FUNCSIG$i) (result i32)
(func $constructor/CtorConditionallyAllocates#constructor (; 23 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
block (result i32)
global.get $constructor/b
if
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 13
i32.const 10
call $~lib/runtime/runtime.register
local.set $0
end
@ -1553,13 +1467,13 @@
if
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 13
i32.const 10
call $~lib/runtime/runtime.register
local.set $0
end
local.get $0
)
(func $start:constructor (; 28 ;) (type $FUNCSIG$v)
(func $start:constructor (; 24 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 0
call $~lib/runtime/runtime.allocate
@ -1568,7 +1482,7 @@
global.set $constructor/emptyCtor
i32.const 4
call $~lib/runtime/runtime.allocate
i32.const 6
i32.const 3
call $~lib/runtime/runtime.register
local.tee $0
i32.const 1
@ -1577,7 +1491,7 @@
global.set $constructor/emptyCtorWithFieldInit
i32.const 4
call $~lib/runtime/runtime.allocate
i32.const 7
i32.const 4
call $~lib/runtime/runtime.register
local.tee $0
i32.const 0
@ -1586,12 +1500,12 @@
global.set $constructor/emptyCtorWithFieldNoInit
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 8
i32.const 5
call $~lib/runtime/runtime.register
global.set $constructor/none
i32.const 4
call $~lib/runtime/runtime.allocate
i32.const 9
i32.const 6
call $~lib/runtime/runtime.register
local.tee $0
i32.const 1
@ -1600,7 +1514,7 @@
global.set $constructor/justFieldInit
i32.const 4
call $~lib/runtime/runtime.allocate
i32.const 10
i32.const 7
call $~lib/runtime/runtime.register
local.tee $0
i32.const 0
@ -1619,95 +1533,140 @@
end
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 11
i32.const 8
call $~lib/runtime/runtime.register
end
global.set $constructor/ctorConditionallyReturns
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 12
i32.const 9
call $~lib/runtime/runtime.register
global.set $constructor/ctorAllocates
call $constructor/CtorConditionallyAllocates#constructor
global.set $constructor/ctorConditionallyAllocates
)
(func $start (; 29 ;) (type $FUNCSIG$v)
(func $start (; 25 ;) (type $FUNCSIG$v)
call $start:constructor
)
(func $null (; 30 ;) (type $FUNCSIG$v)
(func $null (; 26 ;) (type $FUNCSIG$v)
nop
)
(func $~iterateRoots (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $constructor/emptyCtor
local.tee $1
(local $2 i32)
global.get $~lib/collector/itcm/iter
local.get $0
i32.eq
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
i32.load offset=12
global.set $~lib/collector/itcm/iter
end
local.get $0
i32.load offset=8
i32.const -4
i32.and
local.tee $2
local.get $0
i32.load offset=12
local.tee $1
i32.store offset=12
local.get $1
local.get $1
i32.load offset=8
i32.const 3
i32.and
local.get $2
i32.or
i32.store offset=8
global.get $~lib/collector/itcm/toSpace
local.get $0
call $~lib/collector/itcm/ManagedObjectList#push
local.get $0
local.get $0
i32.load offset=8
i32.const -4
i32.and
i32.const 2
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/__ref_mark (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/collector/itcm/white
local.get $0
i32.const 16
i32.sub
local.tee $0
i32.load offset=8
i32.const 3
i32.and
i32.eq
if
local.get $0
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/gc/__gc_mark_roots (; 29 ;) (type $FUNCSIG$v)
(local $0 i32)
global.get $constructor/emptyCtor
local.tee $0
if
local.get $0
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/emptyCtorWithFieldInit
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/emptyCtorWithFieldNoInit
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/none
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/justFieldInit
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/justFieldNoInit
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/ctorReturns
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/ctorConditionallyReturns
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/ctorAllocates
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/ctorConditionallyAllocates
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
)
)

View File

@ -7,16 +7,13 @@
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(import "env" "trace" (func $~lib/env/trace (param i32 i32 f64 f64 f64 f64 f64)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00,\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s\00")
(data (i32.const 72) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 120) "\01\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00 \00 \00 \00 \00 \00i\00t\00e\00r\00")
(table $0 14 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $constructor/EmptyCtor~iterate $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1 $~lib/collector/itcm/step~anonymous|2 $constructor/EmptyCtorWithFieldInit~iterate $constructor/EmptyCtorWithFieldNoInit~iterate $constructor/None~iterate $constructor/JustFieldInit~iterate $constructor/JustFieldNoInit~iterate $constructor/CtorConditionallyReturns~iterate $constructor/CtorAllocates~iterate $constructor/CtorConditionallyAllocates~iterate)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(table $0 11 funcref)
(elem (i32.const 0) $null $~lib/string/String~traverse $constructor/EmptyCtor~traverse $constructor/EmptyCtorWithFieldInit~traverse $constructor/EmptyCtorWithFieldNoInit~traverse $constructor/None~traverse $constructor/JustFieldInit~traverse $constructor/JustFieldNoInit~traverse $constructor/CtorConditionallyReturns~traverse $constructor/CtorAllocates~traverse $constructor/CtorConditionallyAllocates~traverse)
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/allocator/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/allocator/tlsf/Root.SL_START i32 (i32.const 4))
(global $~lib/allocator/tlsf/SL_BITS i32 (i32.const 5))
@ -34,7 +31,7 @@
(global $~lib/allocator/tlsf/TAGS i32 (i32.const 3))
(global $~lib/allocator/tlsf/Block.MAX_SIZE i32 (i32.const 1073741824))
(global $~lib/allocator/tlsf/SB_SIZE i32 (i32.const 256))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/collector/itcm/state (mut i32) (i32.const 0))
(global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0))
@ -52,17 +49,17 @@
(global $constructor/ctorConditionallyReturns (mut i32) (i32.const 0))
(global $constructor/ctorAllocates (mut i32) (i32.const 0))
(global $constructor/ctorConditionallyAllocates (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 156))
(global $~lib/memory/HEAP_BASE i32 (i32.const 120))
(global $~lib/capabilities i32 (i32.const 2))
(export "memory" (memory $0))
(export "table" (table $0))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/runtime/runtime.adjust (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/runtime.adjust (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -70,15 +67,15 @@
i32.sub
i32.shl
)
(func $~lib/allocator/tlsf/Root#set:tailRef (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#set:tailRef (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 0
local.get $1
i32.store offset=2912
)
(func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/string/String~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $~lib/allocator/tlsf/Root#setSLMap (; 5 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/allocator/tlsf/Root#setSLMap (; 4 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
global.get $~lib/allocator/tlsf/FL_BITS
i32.lt_u
@ -99,7 +96,7 @@
local.get $2
i32.store offset=4
)
(func $~lib/allocator/tlsf/Root#setHead (; 6 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/allocator/tlsf/Root#setHead (; 5 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
local.get $1
global.get $~lib/allocator/tlsf/FL_BITS
i32.lt_u
@ -136,11 +133,11 @@
local.get $3
i32.store offset=96
)
(func $~lib/allocator/tlsf/Root#get:tailRef (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Root#get:tailRef (; 6 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
i32.load offset=2912
)
(func $~lib/allocator/tlsf/Block#get:right (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Block#get:right (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.load
@ -180,7 +177,7 @@
local.get $1
end
)
(func $~lib/allocator/tlsf/fls<usize> (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/fls<usize> (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 0
i32.ne
@ -198,7 +195,7 @@
i32.clz
i32.sub
)
(func $~lib/allocator/tlsf/Root#getHead (; 10 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#getHead (; 9 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
global.get $~lib/allocator/tlsf/FL_BITS
i32.lt_u
@ -234,7 +231,7 @@
i32.add
i32.load offset=96
)
(func $~lib/allocator/tlsf/Root#getSLMap (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/allocator/tlsf/Root#getSLMap (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
global.get $~lib/allocator/tlsf/FL_BITS
i32.lt_u
@ -254,7 +251,7 @@
i32.add
i32.load offset=4
)
(func $~lib/allocator/tlsf/Root#remove (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#remove (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -399,7 +396,7 @@
end
end
)
(func $~lib/allocator/tlsf/Block#get:left (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/Block#get:left (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.load
@ -431,7 +428,7 @@
local.get $1
end
)
(func $~lib/allocator/tlsf/Root#setJump (; 14 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/allocator/tlsf/Root#setJump (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
i32.load
global.get $~lib/allocator/tlsf/FREE
@ -477,7 +474,7 @@
local.get $1
i32.store
)
(func $~lib/allocator/tlsf/Root#insert (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/allocator/tlsf/Root#insert (; 14 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -743,7 +740,7 @@
i32.or
call $~lib/allocator/tlsf/Root#setSLMap
)
(func $~lib/allocator/tlsf/Root#addMemory (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#addMemory (; 15 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -896,7 +893,7 @@
call $~lib/allocator/tlsf/Root#insert
i32.const 1
)
(func $~lib/allocator/tlsf/ffs<usize> (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/ffs<usize> (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 0
i32.ne
@ -912,7 +909,7 @@
local.get $0
i32.ctz
)
(func $~lib/allocator/tlsf/ffs<u32> (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/ffs<u32> (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 0
i32.ne
@ -928,7 +925,7 @@
local.get $0
i32.ctz
)
(func $~lib/allocator/tlsf/Root#search (; 19 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/allocator/tlsf/Root#search (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1069,7 +1066,7 @@
end
local.get $6
)
(func $~lib/allocator/tlsf/Root#use (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/allocator/tlsf/Root#use (; 19 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1197,7 +1194,7 @@
global.get $~lib/allocator/tlsf/Block.INFO
i32.add
)
(func $~lib/allocator/tlsf/__mem_allocate (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/tlsf/__mem_allocate (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -1433,19 +1430,19 @@
local.get $0
call $~lib/allocator/tlsf/Root#use
)
(func $~lib/memory/memory.allocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 21 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/tlsf/__mem_allocate
return
)
(func $~lib/runtime/runtime.allocate (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/runtime.allocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/runtime.adjust
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -1457,13 +1454,13 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $constructor/EmptyCtor~iterate (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $constructor/EmptyCtor~traverse (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $~lib/collector/itcm/ManagedObjectList#clear (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObjectList#clear (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
local.get $0
i32.store offset=8
@ -1471,13 +1468,7 @@
local.get $0
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#get:color (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
i32.const 3
i32.and
)
(func $~lib/collector/itcm/ManagedObject#get:next (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/collector/itcm/ManagedObject#get:next (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
i32.const 3
@ -1485,96 +1476,7 @@
i32.xor
i32.and
)
(func $~lib/collector/itcm/ManagedObject#set:next (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $1
local.get $0
i32.load offset=8
i32.const 3
i32.and
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/ManagedObject#unlink (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
call $~lib/collector/itcm/ManagedObject#get:next
local.set $1
local.get $0
i32.load offset=12
local.set $2
local.get $1
local.get $2
i32.store offset=12
local.get $2
local.get $1
call $~lib/collector/itcm/ManagedObject#set:next
)
(func $~lib/collector/itcm/ManagedObjectList#push (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load offset=12
local.set $2
local.get $1
local.get $0
call $~lib/collector/itcm/ManagedObject#set:next
local.get $1
local.get $2
i32.store offset=12
local.get $2
local.get $1
call $~lib/collector/itcm/ManagedObject#set:next
local.get $0
local.get $1
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 31 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/collector/itcm/iter
i32.eq
if
local.get $0
i32.load offset=12
global.set $~lib/collector/itcm/iter
end
local.get $0
call $~lib/collector/itcm/ManagedObject#unlink
global.get $~lib/collector/itcm/toSpace
local.get $0
call $~lib/collector/itcm/ManagedObjectList#push
local.get $0
local.get $0
i32.load offset=8
i32.const 3
i32.const -1
i32.xor
i32.and
i32.const 2
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/step~anonymous|0 (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
block $~lib/collector/itcm/refToObj|inlined.0 (result i32)
local.get $0
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_SIZE
i32.sub
end
local.set $2
local.get $2
call $~lib/collector/itcm/ManagedObject#get:color
global.get $~lib/collector/itcm/white
i32.eq
if
local.get $2
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/collector/itcm/ManagedObject#set:color (; 33 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/itcm/ManagedObject#set:color (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $0
i32.load offset=8
@ -1586,56 +1488,7 @@
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/step~anonymous|1 (; 34 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
i32.const 136
i32.const 1
local.get $0
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
block $~lib/collector/itcm/refToObj|inlined.1 (result i32)
local.get $0
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_SIZE
i32.sub
end
local.set $2
local.get $2
call $~lib/collector/itcm/ManagedObject#get:color
global.get $~lib/collector/itcm/white
i32.eq
if
local.get $2
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/collector/itcm/step~anonymous|2 (; 35 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
block $~lib/collector/itcm/refToObj|inlined.2 (result i32)
local.get $0
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_SIZE
i32.sub
end
local.set $2
local.get $2
call $~lib/collector/itcm/ManagedObject#get:color
global.get $~lib/collector/itcm/white
i32.eq
if
local.get $2
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/allocator/tlsf/__mem_free (; 36 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/allocator/tlsf/__mem_free (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -1678,11 +1531,11 @@
end
end
)
(func $~lib/memory/memory.free (; 37 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.free (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
call $~lib/allocator/tlsf/__mem_free
)
(func $~lib/collector/itcm/step (; 38 ;) (type $FUNCSIG$v)
(func $~lib/collector/itcm/step (; 29 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
block $break|0
@ -1711,7 +1564,7 @@
br $break|0
end
block
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
call $~lib/memory/memory.allocate
global.set $~lib/collector/itcm/fromSpace
global.get $~lib/collector/itcm/fromSpace
@ -1722,7 +1575,7 @@
i32.store offset=4
global.get $~lib/collector/itcm/fromSpace
call $~lib/collector/itcm/ManagedObjectList#clear
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
call $~lib/memory/memory.allocate
global.set $~lib/collector/itcm/toSpace
global.get $~lib/collector/itcm/toSpace
@ -1740,8 +1593,7 @@
end
end
block
i32.const 3
call $~iterateRoots
call $~lib/gc/__gc_mark_roots
i32.const 2
global.set $~lib/collector/itcm/state
br $break|0
@ -1767,16 +1619,14 @@
local.get $0
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
end
i32.const 4
local.get $0
i32.load
call_indirect (type $FUNCSIG$vii)
call_indirect (type $FUNCSIG$vi)
else
i32.const 5
call $~iterateRoots
call $~lib/gc/__gc_mark_roots
global.get $~lib/collector/itcm/iter
call $~lib/collector/itcm/ManagedObject#get:next
local.set $0
@ -1834,15 +1684,43 @@
unreachable
end
)
(func $~lib/collector/itcm/__ref_register (; 39 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObject#set:next (; 30 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
local.get $1
local.get $0
i32.load offset=8
i32.const 3
i32.and
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/ManagedObjectList#push (; 31 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load offset=12
local.set $2
local.get $1
local.get $0
call $~lib/collector/itcm/ManagedObject#set:next
local.get $1
local.get $2
i32.store offset=12
local.get $2
local.get $1
call $~lib/collector/itcm/ManagedObject#set:next
local.get $0
local.get $1
i32.store offset=12
)
(func $~lib/collector/itcm/__ref_register (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
call $~lib/collector/itcm/step
block $~lib/collector/itcm/refToObj|inlined.3 (result i32)
block $~lib/collector/itcm/refToObj|inlined.0 (result i32)
local.get $0
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
end
local.set $2
@ -1853,7 +1731,7 @@
local.get $2
call $~lib/collector/itcm/ManagedObjectList#push
)
(func $~lib/runtime/runtime.register (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/runtime.register (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -1862,24 +1740,24 @@
if
i32.const 0
i32.const 88
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 88
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -1891,7 +1769,7 @@
call $~lib/collector/itcm/__ref_register
local.get $0
)
(func $constructor/EmptyCtor#constructor (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/EmptyCtor#constructor (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -1903,10 +1781,60 @@
end
local.get $0
)
(func $constructor/EmptyCtorWithFieldInit~iterate (; 42 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $constructor/EmptyCtorWithFieldInit~traverse (; 35 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $constructor/EmptyCtorWithFieldInit#constructor (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/EmptyCtorWithFieldInit#constructor (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/runtime.allocate
i32.const 3
call $~lib/runtime/runtime.register
local.set $0
end
local.get $0
i32.const 1
i32.store
local.get $0
)
(func $constructor/EmptyCtorWithFieldNoInit~traverse (; 37 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $constructor/EmptyCtorWithFieldNoInit#constructor (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/runtime.allocate
i32.const 4
call $~lib/runtime/runtime.register
local.set $0
end
local.get $0
i32.const 0
i32.store
local.get $0
)
(func $constructor/None~traverse (; 39 ;) (type $FUNCSIG$vi) (param $0 i32)
)
(func $constructor/None#constructor (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 5
call $~lib/runtime/runtime.register
local.set $0
end
local.get $0
)
(func $constructor/JustFieldInit~traverse (; 41 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $constructor/JustFieldInit#constructor (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -1921,10 +1849,10 @@
i32.store
local.get $0
)
(func $constructor/EmptyCtorWithFieldNoInit~iterate (; 44 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $constructor/JustFieldNoInit~traverse (; 43 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $constructor/EmptyCtorWithFieldNoInit#constructor (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/JustFieldNoInit#constructor (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -1939,64 +1867,14 @@
i32.store
local.get $0
)
(func $constructor/None~iterate (; 46 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
)
(func $constructor/None#constructor (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 8
call $~lib/runtime/runtime.register
local.set $0
end
local.get $0
)
(func $constructor/JustFieldInit~iterate (; 48 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $constructor/JustFieldInit#constructor (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/runtime.allocate
i32.const 9
call $~lib/runtime/runtime.register
local.set $0
end
local.get $0
i32.const 1
i32.store
local.get $0
)
(func $constructor/JustFieldNoInit~iterate (; 50 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
)
(func $constructor/JustFieldNoInit#constructor (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
i32.const 4
call $~lib/runtime/runtime.allocate
i32.const 10
call $~lib/runtime/runtime.register
local.set $0
end
local.get $0
i32.const 0
i32.store
local.get $0
)
(func $constructor/CtorReturns#constructor (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/CtorReturns#constructor (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
call $~lib/memory/memory.allocate
)
(func $constructor/CtorConditionallyReturns~iterate (; 53 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $constructor/CtorConditionallyReturns~traverse (; 46 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $constructor/CtorConditionallyReturns#constructor (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/CtorConditionallyReturns#constructor (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
global.get $constructor/b
if
i32.const 0
@ -2008,23 +1886,23 @@
if
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 11
i32.const 8
call $~lib/runtime/runtime.register
local.set $0
end
local.get $0
)
(func $constructor/CtorAllocates~iterate (; 55 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $constructor/CtorAllocates~traverse (; 48 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $constructor/CtorAllocates#constructor (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/CtorAllocates#constructor (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
block (result i32)
local.get $0
i32.eqz
if
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 12
i32.const 9
call $~lib/runtime/runtime.register
local.set $0
end
@ -2033,10 +1911,10 @@
drop
local.get $0
)
(func $constructor/CtorConditionallyAllocates~iterate (; 57 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $constructor/CtorConditionallyAllocates~traverse (; 50 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $constructor/CtorConditionallyAllocates#constructor (; 58 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $constructor/CtorConditionallyAllocates#constructor (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
global.get $constructor/b
if
block (result i32)
@ -2045,7 +1923,7 @@
if
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 13
i32.const 10
call $~lib/runtime/runtime.register
local.set $0
end
@ -2058,13 +1936,13 @@
if
i32.const 0
call $~lib/runtime/runtime.allocate
i32.const 13
i32.const 10
call $~lib/runtime/runtime.register
local.set $0
end
local.get $0
)
(func $start:constructor (; 59 ;) (type $FUNCSIG$v)
(func $start:constructor (; 52 ;) (type $FUNCSIG$v)
i32.const 0
call $constructor/EmptyCtor#constructor
global.set $constructor/emptyCtor
@ -2096,82 +1974,139 @@
call $constructor/CtorConditionallyAllocates#constructor
global.set $constructor/ctorConditionallyAllocates
)
(func $start (; 60 ;) (type $FUNCSIG$v)
(func $start (; 53 ;) (type $FUNCSIG$v)
call $start:constructor
)
(func $null (; 61 ;) (type $FUNCSIG$v)
(func $null (; 54 ;) (type $FUNCSIG$v)
)
(func $~iterateRoots (; 62 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/itcm/ManagedObject#get:color (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
i32.const 3
i32.and
)
(func $~lib/collector/itcm/ManagedObject#unlink (; 56 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $constructor/emptyCtor
local.tee $1
(local $2 i32)
local.get $0
call $~lib/collector/itcm/ManagedObject#get:next
local.set $1
local.get $0
i32.load offset=12
local.set $2
local.get $1
local.get $2
i32.store offset=12
local.get $2
local.get $1
call $~lib/collector/itcm/ManagedObject#set:next
)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 57 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/collector/itcm/iter
i32.eq
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
i32.load offset=12
global.set $~lib/collector/itcm/iter
end
local.get $0
call $~lib/collector/itcm/ManagedObject#unlink
global.get $~lib/collector/itcm/toSpace
local.get $0
call $~lib/collector/itcm/ManagedObjectList#push
local.get $0
local.get $0
i32.load offset=8
i32.const 3
i32.const -1
i32.xor
i32.and
i32.const 2
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/__ref_mark (; 58 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
block $~lib/collector/itcm/refToObj|inlined.1 (result i32)
local.get $0
local.set $1
local.get $1
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
end
local.set $2
local.get $2
call $~lib/collector/itcm/ManagedObject#get:color
global.get $~lib/collector/itcm/white
i32.eq
if
local.get $2
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/gc/__gc_mark_roots (; 59 ;) (type $FUNCSIG$v)
(local $0 i32)
global.get $constructor/emptyCtor
local.tee $0
if
local.get $0
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/emptyCtorWithFieldInit
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/emptyCtorWithFieldNoInit
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/none
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/justFieldInit
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/justFieldNoInit
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/ctorReturns
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/ctorConditionallyReturns
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/ctorAllocates
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
global.get $constructor/ctorConditionallyAllocates
local.tee $1
local.tee $0
if
local.get $1
local.get $0
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
)
)

View File

@ -146,7 +146,7 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -161,7 +161,7 @@
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -18,10 +18,10 @@
(global $exports/Car.TIRES i32 (i32.const 4))
(global $exports/vehicles.Car.TIRES i32 (i32.const 4))
(global $exports/outer.inner.a i32 (i32.const 42))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
(global $~lib/argc (mut i32) (i32.const 0))
@ -75,7 +75,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -174,13 +174,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/runtime.register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -192,24 +192,24 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -2,11 +2,11 @@
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$i (func (result i32)))
@ -19,16 +19,18 @@
(data (i32.const 72) "g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r")
(data (i32.const 96) "\02\00\00\00\n")
(data (i32.const 112) "g\00c\00.\00t\00s")
(data (i32.const 128) "\02\00\00\00&")
(data (i32.const 144) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
(data (i32.const 184) "\02\00\00\00\0e")
(data (i32.const 200) "g\00c\00.\00l\00i\00n\00k")
(data (i32.const 216) "\02\00\00\00\12")
(data (i32.const 232) "g\00c\00.\00u\00n\00l\00i\00n\00k")
(data (i32.const 256) "\02\00\00\00\14")
(data (i32.const 272) "g\00c\00.\00c\00o\00l\00l\00e\00c\00t")
(data (i32.const 128) "\02\00\00\00\0e")
(data (i32.const 144) "g\00c\00.\00m\00a\00r\00k")
(data (i32.const 160) "\02\00\00\00&")
(data (i32.const 176) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
(data (i32.const 216) "\02\00\00\00\0e")
(data (i32.const 232) "g\00c\00.\00l\00i\00n\00k")
(data (i32.const 248) "\02\00\00\00\12")
(data (i32.const 264) "g\00c\00.\00u\00n\00l\00i\00n\00k")
(data (i32.const 288) "\02\00\00\00\14")
(data (i32.const 304) "g\00c\00.\00c\00o\00l\00l\00e\00c\00t")
(table $0 6 funcref)
(elem (i32.const 0) $null $gc/Ref~iterate $gc/Ref~iterate $~lib/set/Set<usize>~iterate $~lib/set/Set<usize>~iterate $gc/Ref~iterate)
(elem (i32.const 0) $null $gc/Ref~traverse $gc/Ref~traverse $~lib/set/Set<usize>~traverse $~lib/set/Set<usize>~traverse $gc/Ref~traverse)
(global $gc/_dummy/collect_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
@ -38,18 +40,18 @@
(global $gc/_dummy/unlink_count (mut i32) (i32.const 0))
(global $gc/_dummy/unlink_ref (mut i32) (i32.const 0))
(global $gc/_dummy/unlink_parentRef (mut i32) (i32.const 0))
(global $gc/_dummy/mark_count (mut i32) (i32.const 0))
(global $gc/_dummy/mark_ref (mut i32) (i32.const 0))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/gc/gc.implemented i32 (i32.const 1))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808))
(global $~lib/gc/GC_ROOT (mut i32) (i32.const 0))
(global $~lib/gc/ROOT (mut i32) (i32.const 0))
(global $~lib/started (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
(export "memory" (memory $0))
(export "table" (table $0))
(export "main" (func $gc/main))
(export "runtime.MAX_BYTELENGTH" (global $~lib/runtime/runtime.MAX_BYTELENGTH))
(export "runtime.adjust" (func $~lib/runtime/runtime.adjust))
(export "runtime.allocate" (func $~lib/runtime/runtime.allocate))
(export "runtime.reallocate" (func $~lib/runtime/runtime.reallocate))
@ -161,7 +163,7 @@
i32.const 16
i32.add
)
(func $gc/Ref~iterate (; 5 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/Ref~traverse (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $gc/_dummy/__ref_register (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
@ -184,12 +186,12 @@
(func $~lib/runtime/runtime.register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 292
i32.const 324
i32.le_u
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -204,7 +206,7 @@
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -216,23 +218,32 @@
call $gc/_dummy/__ref_register
local.get $0
)
(func $~lib/set/Set<usize>~iterate (; 8 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/_dummy/__ref_mark (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 144
i32.const 1
global.set $~lib/argc
local.get $0
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $gc/_dummy/mark_count
i32.const 1
i32.add
global.set $gc/_dummy/mark_count
local.get $0
global.set $gc/_dummy/mark_ref
)
(func $~lib/set/Set<usize>~traverse (; 9 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $gc/_dummy/__ref_mark
local.get $0
i32.load offset=8
local.set $0
i32.const 1
global.set $~lib/argc
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
call $gc/_dummy/__ref_mark
)
(func $~lib/memory/memory.fill (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/memory/memory.fill (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $~lib/util/memory/memset|inlined.0
local.get $1
@ -443,16 +454,16 @@
end
end
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 1073741808
i32.gt_u
if
i32.const 0
i32.const 144
i32.const 53
i32.const 51
i32.const 176
i32.const 54
i32.const 43
call $~lib/env/abort
unreachable
end
@ -465,8 +476,8 @@
i32.const 5
call $~lib/runtime/runtime.register
)
(func $gc/_dummy/__ref_link (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 200
(func $gc/_dummy/__ref_link (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 232
i32.const 2
local.get $0
f64.convert_i32_u
@ -485,8 +496,8 @@
local.get $0
global.set $gc/_dummy/link_parentRef
)
(func $gc/_dummy/__ref_unlink (; 12 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 232
(func $gc/_dummy/__ref_unlink (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 264
i32.const 2
local.get $0
f64.convert_i32_u
@ -505,7 +516,7 @@
local.get $1
global.set $gc/_dummy/unlink_parentRef
)
(func $~lib/set/Set<usize>#clear (; 13 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/set/Set<usize>#clear (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -568,7 +579,7 @@
i32.const 0
i32.store offset=20
)
(func $~lib/set/Set<usize>#constructor (; 14 ;) (type $FUNCSIG$i) (result i32)
(func $~lib/set/Set<usize>#constructor (; 15 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 24
call $~lib/runtime/runtime.allocate
@ -596,7 +607,7 @@
call $~lib/set/Set<usize>#clear
local.get $0
)
(func $~lib/util/hash/hash32 (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hash32 (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 255
i32.and
@ -627,7 +638,7 @@
i32.const 16777619
i32.mul
)
(func $~lib/set/Set<usize>#find (; 16 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/set/Set<usize>#find (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $0
i32.load
local.get $0
@ -670,7 +681,7 @@
end
i32.const 0
)
(func $~lib/set/Set<usize>#has (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<usize>#has (; 18 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
local.get $1
@ -679,7 +690,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<usize>#rehash (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#rehash (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -814,7 +825,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<usize>#add (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#add (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -897,9 +908,9 @@
i32.store
end
)
(func $~lib/gc/gc.retain (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/gc/gc.retain (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/gc/GC_ROOT
global.get $~lib/gc/ROOT
local.tee $1
local.get $0
call $~lib/set/Set<usize>#has
@ -913,7 +924,7 @@
call $gc/_dummy/__ref_link
end
)
(func $~lib/set/Set<usize>#delete (; 21 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#delete (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
local.get $1
@ -973,9 +984,9 @@
call $~lib/set/Set<usize>#rehash
end
)
(func $~lib/gc/gc.release (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/gc/gc.release (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/gc/GC_ROOT
global.get $~lib/gc/ROOT
local.tee $1
local.get $0
call $~lib/set/Set<usize>#has
@ -988,8 +999,8 @@
call $gc/_dummy/__ref_unlink
end
)
(func $~lib/gc/gc.collect (; 23 ;) (type $FUNCSIG$v)
i32.const 272
(func $~lib/gc/gc.collect (; 24 ;) (type $FUNCSIG$v)
i32.const 304
i32.const 0
f64.const 0
f64.const 0
@ -1002,7 +1013,7 @@
i32.add
global.set $gc/_dummy/collect_count
)
(func $gc/main (; 24 ;) (type $FUNCSIG$v)
(func $gc/main (; 25 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1010,12 +1021,12 @@
global.get $~lib/started
i32.eqz
if
i32.const 296
i32.const 328
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
call $~lib/set/Set<usize>#constructor
global.set $~lib/gc/GC_ROOT
global.set $~lib/gc/ROOT
i32.const 1
global.set $~lib/started
end
@ -1153,7 +1164,7 @@
unreachable
end
)
(func $~lib/util/memory/memcpy (; 25 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2000,7 +2011,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 27 ;) (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
@ -2194,7 +2205,7 @@
end
end
)
(func $~lib/runtime/runtime.reallocate (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/runtime.reallocate (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -2228,7 +2239,7 @@
i32.shl
i32.const 0
local.get $0
i32.const 292
i32.const 324
i32.gt_u
select
local.get $3
@ -2266,12 +2277,12 @@
i32.eq
if
local.get $0
i32.const 292
i32.const 324
i32.le_u
if
i32.const 0
i32.const 24
i32.const 107
i32.const 64
i32.const 10
call $~lib/env/abort
unreachable
@ -2299,14 +2310,14 @@
i32.store offset=4
local.get $0
)
(func $~lib/runtime/runtime.discard (; 28 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/runtime/runtime.discard (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 292
i32.const 324
i32.le_u
if
i32.const 0
i32.const 24
i32.const 132
i32.const 89
i32.const 6
call $~lib/env/abort
unreachable
@ -2320,13 +2331,13 @@
if
i32.const 0
i32.const 24
i32.const 134
i32.const 91
i32.const 6
call $~lib/env/abort
unreachable
end
)
(func $~lib/runtime/runtime.makeArray (; 29 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/runtime/runtime.makeArray (; 30 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -2382,10 +2393,10 @@
end
local.get $4
)
(func $null (; 30 ;) (type $FUNCSIG$v)
(func $null (; 31 ;) (type $FUNCSIG$v)
nop
)
(func $~lib/runtime/runtime.makeArray|trampoline (; 31 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/runtime/runtime.makeArray|trampoline (; 32 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
block $1of1
block $0of1
block $outOfRange
@ -2405,7 +2416,7 @@
local.get $3
call $~lib/runtime/runtime.makeArray
)
(func $~lib/setargc (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/setargc (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.set $~lib/argc
)

View File

@ -2,11 +2,11 @@
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
@ -15,12 +15,13 @@
(data (i32.const 8) "\02\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 56) "\02\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r\00")
(data (i32.const 96) "\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00t\00s\00")
(data (i32.const 128) "\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00")
(data (i32.const 184) "\02\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00l\00i\00n\00k\00")
(data (i32.const 216) "\02\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00u\00n\00l\00i\00n\00k\00")
(data (i32.const 256) "\02\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00c\00o\00l\00l\00e\00c\00t\00")
(data (i32.const 128) "\02\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00m\00a\00r\00k\00")
(data (i32.const 160) "\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00")
(data (i32.const 216) "\02\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00l\00i\00n\00k\00")
(data (i32.const 248) "\02\00\00\00\12\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00u\00n\00l\00i\00n\00k\00")
(data (i32.const 288) "\02\00\00\00\14\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00c\00o\00l\00l\00e\00c\00t\00")
(table $0 6 funcref)
(elem (i32.const 0) $null $gc/Ref~iterate $~lib/string/String~iterate $~lib/set/Set<usize>~iterate $~lib/set/Set<usize>~iterate $~lib/arraybuffer/ArrayBuffer~iterate)
(elem (i32.const 0) $null $gc/Ref~traverse $~lib/string/String~traverse $~lib/set/Set<usize>~traverse $~lib/set/Set<usize>~traverse $~lib/arraybuffer/ArrayBuffer~traverse)
(global $gc/_dummy/collect_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
@ -30,22 +31,23 @@
(global $gc/_dummy/unlink_count (mut i32) (i32.const 0))
(global $gc/_dummy/unlink_ref (mut i32) (i32.const 0))
(global $gc/_dummy/unlink_parentRef (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $gc/_dummy/mark_count (mut i32) (i32.const 0))
(global $gc/_dummy/mark_ref (mut i32) (i32.const 0))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/gc/gc.implemented i32 (i32.const 1))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808))
(global $~lib/gc/GC_ROOT (mut i32) (i32.const 0))
(global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808))
(global $~lib/gc/ROOT (mut i32) (i32.const 0))
(global $~lib/started (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 292))
(global $~lib/memory/HEAP_BASE i32 (i32.const 324))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
(export "memory" (memory $0))
(export "table" (table $0))
(export "main" (func $gc/main))
(export "runtime.MAX_BYTELENGTH" (global $~lib/runtime/runtime.MAX_BYTELENGTH))
(export "runtime.adjust" (func $~lib/runtime/runtime.adjust))
(export "runtime.allocate" (func $~lib/runtime/runtime.allocate))
(export "runtime.reallocate" (func $~lib/runtime/runtime.reallocate))
@ -62,7 +64,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -161,7 +163,7 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -173,13 +175,13 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $gc/Ref~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/Ref~traverse (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
)
(func $~lib/string/String~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/string/String~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $gc/_dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 72
@ -207,24 +209,24 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -248,24 +250,35 @@
end
local.get $0
)
(func $~lib/set/Set<usize>~iterate (; 11 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $gc/_dummy/__ref_mark (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 144
i32.const 1
global.set $~lib/argc
local.get $0
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $gc/_dummy/mark_count
i32.const 1
i32.add
global.set $gc/_dummy/mark_count
local.get $0
global.set $gc/_dummy/mark_ref
)
(func $~lib/set/Set<usize>~traverse (; 12 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $gc/_dummy/__ref_mark
local.get $0
i32.load offset=8
local.set $2
i32.const 1
global.set $~lib/argc
local.get $2
local.set $1
local.get $1
call_indirect (type $FUNCSIG$vi)
call $gc/_dummy/__ref_mark
)
(func $~lib/memory/memory.fill (; 12 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.fill (; 13 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -522,19 +535,19 @@
end
end
)
(func $~lib/arraybuffer/ArrayBuffer~iterate (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/arraybuffer/ArrayBuffer~traverse (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
i32.gt_u
if
i32.const 0
i32.const 144
i32.const 53
i32.const 51
i32.const 176
i32.const 54
i32.const 43
call $~lib/env/abort
unreachable
end
@ -549,8 +562,8 @@
i32.const 5
call $~lib/runtime/runtime.register
)
(func $gc/_dummy/__ref_link (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 200
(func $gc/_dummy/__ref_link (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 232
i32.const 2
local.get $0
f64.convert_i32_u
@ -569,8 +582,8 @@
local.get $0
global.set $gc/_dummy/link_parentRef
)
(func $gc/_dummy/__ref_unlink (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 232
(func $gc/_dummy/__ref_unlink (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 264
i32.const 2
local.get $0
f64.convert_i32_u
@ -589,7 +602,7 @@
local.get $1
global.set $gc/_dummy/unlink_parentRef
)
(func $~lib/set/Set<usize>#clear (; 17 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/set/Set<usize>#clear (; 18 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -658,7 +671,7 @@
i32.const 0
i32.store offset=20
)
(func $~lib/set/Set<usize>#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/set/Set<usize>#constructor (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
block (result i32)
local.get $0
i32.eqz
@ -692,7 +705,7 @@
call $~lib/set/Set<usize>#clear
local.get $0
)
(func $~lib/util/hash/hash32 (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/hash/hash32 (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const -2128831035
local.set $1
@ -734,7 +747,7 @@
local.set $1
local.get $1
)
(func $~lib/set/Set<usize>#find (; 20 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/set/Set<usize>#find (; 21 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
local.get $0
@ -785,7 +798,7 @@
end
i32.const 0
)
(func $~lib/set/Set<usize>#has (; 21 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<usize>#has (; 22 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
local.get $1
@ -800,7 +813,7 @@
i32.const 0
i32.ne
)
(func $~lib/set/Set<usize>#rehash (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#rehash (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -970,7 +983,7 @@
i32.load offset=20
i32.store offset=16
)
(func $~lib/set/Set<usize>#add (; 23 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/set/Set<usize>#add (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1068,9 +1081,9 @@
i32.store
end
)
(func $~lib/gc/gc.retain (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/gc/gc.retain (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/gc/GC_ROOT
global.get $~lib/gc/ROOT
local.set $1
local.get $1
local.get $0
@ -1085,7 +1098,7 @@
call $gc/_dummy/__ref_link
end
)
(func $~lib/set/Set<usize>#delete (; 25 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/set/Set<usize>#delete (; 26 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1158,9 +1171,9 @@
end
i32.const 1
)
(func $~lib/gc/gc.release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/gc/gc.release (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/gc/GC_ROOT
global.get $~lib/gc/ROOT
local.set $1
local.get $1
local.get $0
@ -1175,8 +1188,8 @@
call $gc/_dummy/__ref_unlink
end
)
(func $gc/_dummy/__ref_collect (; 27 ;) (type $FUNCSIG$v)
i32.const 272
(func $gc/_dummy/__ref_collect (; 28 ;) (type $FUNCSIG$v)
i32.const 304
i32.const 0
f64.const 0
f64.const 0
@ -1189,10 +1202,10 @@
i32.add
global.set $gc/_dummy/collect_count
)
(func $~lib/gc/gc.collect (; 28 ;) (type $FUNCSIG$v)
(func $~lib/gc/gc.collect (; 29 ;) (type $FUNCSIG$v)
call $gc/_dummy/__ref_collect
)
(func $gc/main (; 29 ;) (type $FUNCSIG$v)
(func $gc/main (; 30 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1355,7 +1368,7 @@
unreachable
end
)
(func $~lib/util/memory/memcpy (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2556,7 +2569,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 32 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2787,21 +2800,21 @@
end
end
)
(func $~lib/allocator/arena/__mem_free (; 32 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/allocator/arena/__mem_free (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/memory/memory.free (; 33 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.free (; 34 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
call $~lib/allocator/arena/__mem_free
)
(func $~lib/runtime/runtime.reallocate (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/runtime.reallocate (; 35 ;) (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.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
@ -2838,7 +2851,7 @@
i32.const 0
i32.store offset=12
local.get $5
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
local.set $6
local.get $6
@ -2855,7 +2868,7 @@
call $~lib/memory/memory.fill
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
if
local.get $0
@ -2865,7 +2878,7 @@
if
i32.const 0
i32.const 24
i32.const 107
i32.const 64
i32.const 10
call $~lib/env/abort
unreachable
@ -2898,7 +2911,7 @@
i32.store offset=4
local.get $0
)
(func $~lib/runtime/runtime.discard (; 35 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/runtime/runtime.discard (; 36 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -2907,24 +2920,24 @@
if
i32.const 0
i32.const 24
i32.const 132
i32.const 89
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $1
local.get $1
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 134
i32.const 91
i32.const 6
call $~lib/env/abort
unreachable
@ -2932,7 +2945,7 @@
local.get $1
call $~lib/memory/memory.free
)
(func $~lib/runtime/runtime.makeArray (; 36 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/runtime/runtime.makeArray (; 37 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -2996,7 +3009,7 @@
end
local.get $4
)
(func $start (; 37 ;) (type $FUNCSIG$v)
(func $start (; 38 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -3009,11 +3022,11 @@
global.set $~lib/allocator/arena/offset
i32.const 0
call $~lib/set/Set<usize>#constructor
global.set $~lib/gc/GC_ROOT
global.set $~lib/gc/ROOT
)
(func $null (; 38 ;) (type $FUNCSIG$v)
(func $null (; 39 ;) (type $FUNCSIG$v)
)
(func $~lib/runtime/runtime.makeArray|trampoline (; 39 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/runtime/runtime.makeArray|trampoline (; 40 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
block $1of1
block $0of1
block $outOfRange
@ -3033,7 +3046,7 @@
local.get $3
call $~lib/runtime/runtime.makeArray
)
(func $~lib/setargc (; 40 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/setargc (; 41 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.set $~lib/argc
)

View File

@ -45,3 +45,14 @@ function __ref_unlink(ref: usize, parentRef: usize): void {
unlink_ref = ref;
unlink_parentRef = parentRef;
}
export var mark_count = 0;
export var mark_ref: usize = 0;
// @ts-ignore: decorator
@global @unsafe
function __ref_mark(ref: usize): void {
trace("gc.mark", 1, ref);
mark_count++;
mark_ref = ref;
}

View File

@ -1,7 +1,6 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$v (func))
@ -16,7 +15,7 @@
(data (i32.const 96) "\02\00\00\00&")
(data (i32.const 112) "g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00a\00s\00s\00i\00g\00n\00.\00t\00s")
(table $0 3 funcref)
(elem (i32.const 0) $null $gc/global-assign/Ref~iterate $gc/global-assign/Ref~iterate)
(elem (i32.const 0) $null $gc/global-assign/Ref~traverse $gc/global-assign/Ref~traverse)
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
(global $gc/_dummy/link_count (mut i32) (i32.const 0))
@ -113,7 +112,7 @@
i32.const 16
i32.add
)
(func $gc/global-assign/Ref~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/global-assign/Ref~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $gc/_dummy/__ref_register (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
@ -141,7 +140,7 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -156,7 +155,7 @@
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -1,7 +1,6 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
@ -13,7 +12,7 @@
(data (i32.const 56) "\02\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r\00")
(data (i32.const 96) "\02\00\00\00&\00\00\00\00\00\00\00\00\00\00\00g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00a\00s\00s\00i\00g\00n\00.\00t\00s\00")
(table $0 3 funcref)
(elem (i32.const 0) $null $gc/global-assign/Ref~iterate $~lib/string/String~iterate)
(elem (i32.const 0) $null $gc/global-assign/Ref~traverse $~lib/string/String~traverse)
(global $gc/_dummy/collect_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
@ -23,10 +22,12 @@
(global $gc/_dummy/unlink_count (mut i32) (i32.const 0))
(global $gc/_dummy/unlink_ref (mut i32) (i32.const 0))
(global $gc/_dummy/unlink_parentRef (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $gc/_dummy/mark_count (mut i32) (i32.const 0))
(global $gc/_dummy/mark_ref (mut i32) (i32.const 0))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $gc/global-assign/global (mut i32) (i32.const 0))
(global $gc/global-assign/globalRef (mut i32) (i32.const 0))
@ -41,7 +42,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -140,7 +141,7 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -152,13 +153,13 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $gc/global-assign/Ref~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/global-assign/Ref~traverse (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
)
(func $~lib/string/String~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/string/String~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $gc/_dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 72
@ -186,24 +187,24 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -1,7 +1,6 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$v (func))
@ -16,7 +15,7 @@
(data (i32.const 96) "\02\00\00\00\"")
(data (i32.const 112) "g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00i\00n\00i\00t\00.\00t\00s")
(table $0 3 funcref)
(elem (i32.const 0) $null $gc/global-init/Ref~iterate $gc/global-init/Ref~iterate)
(elem (i32.const 0) $null $gc/global-init/Ref~traverse $gc/global-init/Ref~traverse)
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
(global $gc/_dummy/link_count (mut i32) (i32.const 0))
@ -112,7 +111,7 @@
i32.const 16
i32.add
)
(func $gc/global-init/Ref~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/global-init/Ref~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $gc/_dummy/__ref_register (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
@ -140,7 +139,7 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -155,7 +154,7 @@
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -1,7 +1,6 @@
(module
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
@ -13,7 +12,7 @@
(data (i32.const 56) "\02\00\00\00\16\00\00\00\00\00\00\00\00\00\00\00g\00c\00.\00r\00e\00g\00i\00s\00t\00e\00r\00")
(data (i32.const 96) "\02\00\00\00\"\00\00\00\00\00\00\00\00\00\00\00g\00c\00/\00g\00l\00o\00b\00a\00l\00-\00i\00n\00i\00t\00.\00t\00s\00")
(table $0 3 funcref)
(elem (i32.const 0) $null $gc/global-init/Ref~iterate $~lib/string/String~iterate)
(elem (i32.const 0) $null $gc/global-init/Ref~traverse $~lib/string/String~traverse)
(global $gc/_dummy/collect_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_count (mut i32) (i32.const 0))
(global $gc/_dummy/register_ref (mut i32) (i32.const 0))
@ -23,10 +22,12 @@
(global $gc/_dummy/unlink_count (mut i32) (i32.const 0))
(global $gc/_dummy/unlink_ref (mut i32) (i32.const 0))
(global $gc/_dummy/unlink_parentRef (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $gc/_dummy/mark_count (mut i32) (i32.const 0))
(global $gc/_dummy/mark_ref (mut i32) (i32.const 0))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $gc/global-init/global (mut i32) (i32.const 0))
(global $~lib/started (mut i32) (i32.const 0))
@ -40,7 +41,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -139,7 +140,7 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -151,13 +152,13 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $gc/global-init/Ref~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $gc/global-init/Ref~traverse (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
)
(func $~lib/string/String~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/string/String~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $gc/_dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 72
@ -185,24 +186,24 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -1,10 +1,10 @@
(module
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$v (func))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
@ -26,46 +26,46 @@
(data (i32.const 296) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00I\00D\00L\00E")
(data (i32.const 336) "\01\00\00\00\1c")
(data (i32.const 352) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00I\00D\00L\00E")
(data (i32.const 384) "\01\00\00\00\1a")
(data (i32.const 400) " \00 \00 \00 \00 \00m\00a\00k\00e\00G\00r\00a\00y")
(data (i32.const 432) "\01\00\00\00:")
(data (i32.const 448) " \00 \00 \00 \00 \00u\00n\00l\00i\00n\00k\00 \00[\00p\00r\00e\00f\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]")
(data (i32.const 512) "\01\00\00\006")
(data (i32.const 528) " \00 \00 \00 \00 \00p\00u\00s\00h\00 \00[\00p\00r\00e\00v\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]")
(data (i32.const 584) "\01\00\00\00\"")
(data (i32.const 600) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00M\00A\00R\00K")
(data (i32.const 640) "\01\00\00\00,")
(data (i32.const 656) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00i\00t\00e\00r\00a\00t\00e")
(data (i32.const 704) "\01\00\00\00\12")
(data (i32.const 720) " \00 \00 \00 \00 \00i\00t\00e\00r")
(data (i32.const 744) "\01\00\00\00*")
(data (i32.const 760) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h")
(data (i32.const 808) "\01\00\00\00$")
(data (i32.const 824) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P")
(data (i32.const 864) "\01\00\00\00(")
(data (i32.const 880) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e")
(data (i32.const 920) "\01\00\00\00,")
(data (i32.const 936) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h")
(data (i32.const 984) "\01\00\00\00\"")
(data (i32.const 1000) "#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)")
(data (i32.const 1040) "\01\00\00\00\1e")
(data (i32.const 1056) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 1088) "\01\00\00\00\1a")
(data (i32.const 1104) "i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r")
(data (i32.const 1136) "\01\00\00\00(")
(data (i32.const 1152) "#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)")
(data (i32.const 1192) "\01\00\00\00&")
(data (i32.const 1208) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
(data (i32.const 1248) "\01\00\00\00\12")
(data (i32.const 1264) "i\00t\00c\00m\00.\00l\00i\00n\00k")
(data (i32.const 1288) "\01\00\00\00\1c")
(data (i32.const 1304) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f")
(data (i32.const 1336) "\01\00\00\00\1a")
(data (i32.const 1352) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 1384) "\01\00\00\00\1e")
(data (i32.const 1400) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l")
(table $0 10 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $~lib/collector/itcm/step~anonymous|0 $~lib/collector/itcm/step~anonymous|1 $~lib/collector/itcm/step~anonymous|0 $gc/itcm/trace/Ref~iterate $~lib/string/String~iterate $~lib/arraybuffer/ArrayBufferView~iterate $~lib/array/Array<gc/itcm/trace/Ref | null>~iterate $~lib/array/Array<gc/itcm/trace/Ref | null>~iterate)
(data (i32.const 384) "\01\00\00\00\"")
(data (i32.const 400) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00M\00A\00R\00K")
(data (i32.const 440) "\01\00\00\00\1c")
(data (i32.const 456) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K")
(data (i32.const 488) "\01\00\00\00*")
(data (i32.const 504) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00M\00A\00R\00K\00 \00f\00i\00n\00i\00s\00h")
(data (i32.const 552) "\01\00\00\00$")
(data (i32.const 568) "i\00t\00c\00m\00~\00s\00t\00a\00t\00e\00 \00=\00 \00S\00W\00E\00E\00P")
(data (i32.const 608) "\01\00\00\00(")
(data (i32.const 624) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00r\00e\00e")
(data (i32.const 664) "\01\00\00\00,")
(data (i32.const 680) "i\00t\00c\00m\00~\00s\00t\00e\00p\00/\00S\00W\00E\00E\00P\00 \00f\00i\00n\00i\00s\00h")
(data (i32.const 728) "\01\00\00\00\"")
(data (i32.const 744) "#\00 \00r\00e\00f\00 \00=\00 \00n\00e\00w\00 \00R\00e\00f\00(\00)")
(data (i32.const 784) "\01\00\00\00\12")
(data (i32.const 800) "i\00t\00c\00m\00.\00m\00a\00r\00k")
(data (i32.const 824) "\01\00\00\00\1a")
(data (i32.const 840) " \00 \00 \00 \00 \00m\00a\00k\00e\00G\00r\00a\00y")
(data (i32.const 872) "\01\00\00\00:")
(data (i32.const 888) " \00 \00 \00 \00 \00u\00n\00l\00i\00n\00k\00 \00[\00p\00r\00e\00f\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]")
(data (i32.const 952) "\01\00\00\006")
(data (i32.const 968) " \00 \00 \00 \00 \00p\00u\00s\00h\00 \00[\00p\00r\00e\00v\00,\00 \00r\00e\00f\00,\00 \00n\00e\00x\00t\00]")
(data (i32.const 1024) "\01\00\00\00\1e")
(data (i32.const 1040) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(data (i32.const 1072) "\01\00\00\00\1a")
(data (i32.const 1088) "i\00t\00c\00m\00.\00r\00e\00g\00i\00s\00t\00e\00r")
(data (i32.const 1120) "\01\00\00\00(")
(data (i32.const 1136) "#\00 \00a\00r\00r\00 \00=\00 \00n\00e\00w\00 \00A\00r\00r\00a\00y\00(\001\00)")
(data (i32.const 1176) "\01\00\00\00&")
(data (i32.const 1192) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s")
(data (i32.const 1232) "\01\00\00\00\12")
(data (i32.const 1248) "i\00t\00c\00m\00.\00l\00i\00n\00k")
(data (i32.const 1272) "\01\00\00\00\1c")
(data (i32.const 1288) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00r\00e\00f")
(data (i32.const 1320) "\01\00\00\00\1a")
(data (i32.const 1336) "~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s")
(data (i32.const 1368) "\01\00\00\00\1e")
(data (i32.const 1384) "#\00 \00a\00r\00r\00[\000\00]\00 \00=\00 \00n\00u\00l\00l")
(table $0 7 funcref)
(elem (i32.const 0) $null $~lib/string/String~traverse $gc/itcm/trace/Ref~traverse $~lib/string/String~traverse $~lib/arraybuffer/ArrayBufferView~traverse $~lib/array/Array<gc/itcm/trace/Ref | null>~traverse $~lib/array/Array<gc/itcm/trace/Ref | null>~traverse)
(global $~lib/collector/itcm/state (mut i32) (i32.const 0))
(global $~lib/collector/itcm/fromSpace (mut i32) (i32.const 0))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -74,7 +74,6 @@
(global $~lib/collector/itcm/iter (mut i32) (i32.const 0))
(global $~lib/collector/itcm/white (mut i32) (i32.const 0))
(global $gc/itcm/trace/ref (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $gc/itcm/trace/arr (mut i32) (i32.const 0))
(global $~lib/started (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
@ -82,7 +81,7 @@
(export "table" (table $0))
(export "main" (func $gc/itcm/trace/main))
(export ".capabilities" (global $~lib/capabilities))
(func $~lib/string/String~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/string/String~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/allocator/arena/__mem_allocate (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
@ -166,161 +165,7 @@
local.get $0
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#unlink (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
i32.const 448
i32.const 3
local.get $0
i32.load offset=12
local.tee $1
i32.const 16
i32.add
f64.convert_i32_u
local.get $0
i32.const 16
i32.add
f64.convert_i32_u
local.get $0
i32.load offset=8
i32.const -4
i32.and
local.tee $0
i32.const 16
i32.add
f64.convert_i32_u
f64.const 0
f64.const 0
call $~lib/env/trace
local.get $0
local.get $1
i32.store offset=12
local.get $1
local.get $1
i32.load offset=8
i32.const 3
i32.and
local.get $0
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/ManagedObjectList#push (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
i32.const 528
i32.const 3
local.get $0
i32.load offset=12
local.tee $2
i32.const 16
i32.add
f64.convert_i32_u
local.get $1
i32.const 16
i32.add
f64.convert_i32_u
local.get $0
i32.const 16
i32.add
f64.convert_i32_u
f64.const 0
f64.const 0
call $~lib/env/trace
local.get $1
local.get $1
i32.load offset=8
i32.const 3
i32.and
local.get $0
i32.or
i32.store offset=8
local.get $1
local.get $2
i32.store offset=12
local.get $2
local.get $2
i32.load offset=8
i32.const 3
i32.and
local.get $1
i32.or
i32.store offset=8
local.get $0
local.get $1
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 400
i32.const 1
local.get $0
i32.const 16
i32.add
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $~lib/collector/itcm/iter
local.get $0
i32.eq
if
local.get $0
i32.load offset=12
global.set $~lib/collector/itcm/iter
end
local.get $0
call $~lib/collector/itcm/ManagedObject#unlink
global.get $~lib/collector/itcm/toSpace
local.get $0
call $~lib/collector/itcm/ManagedObjectList#push
local.get $0
local.get $0
i32.load offset=8
i32.const -4
i32.and
i32.const 2
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/step~anonymous|0 (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/collector/itcm/white
local.get $0
i32.const 16
i32.sub
local.tee $0
i32.load offset=8
i32.const 3
i32.and
i32.eq
if
local.get $0
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/collector/itcm/step~anonymous|1 (; 9 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 720
i32.const 1
local.get $0
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $~lib/collector/itcm/white
local.get $0
i32.const 16
i32.sub
local.tee $0
i32.load offset=8
i32.const 3
i32.and
i32.eq
if
local.get $0
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/collector/itcm/step (; 10 ;) (type $FUNCSIG$v)
(func $~lib/collector/itcm/step (; 5 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
block $break|0
@ -410,23 +255,10 @@
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $gc/itcm/trace/ref
local.tee $0
if
local.get $0
i32.const 2
call_indirect (type $FUNCSIG$vi)
end
global.get $gc/itcm/trace/arr
local.tee $0
if
local.get $0
i32.const 2
call_indirect (type $FUNCSIG$vi)
end
call $~lib/gc/__gc_mark_roots
i32.const 2
global.set $~lib/collector/itcm/state
i32.const 600
i32.const 400
i32.const 0
f64.const 0
f64.const 0
@ -444,7 +276,7 @@
global.get $~lib/collector/itcm/toSpace
i32.ne
if
i32.const 656
i32.const 456
i32.const 1
local.get $0
i32.const 16
@ -468,12 +300,12 @@
i32.or
i32.store offset=8
local.get $1
i32.const 3
local.get $0
i32.load
call_indirect (type $FUNCSIG$vii)
call_indirect (type $FUNCSIG$vi)
else
i32.const 760
call $~lib/gc/__gc_mark_roots
i32.const 504
i32.const 0
f64.const 0
f64.const 0
@ -481,20 +313,6 @@
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $gc/itcm/trace/ref
local.tee $0
if
local.get $0
i32.const 4
call_indirect (type $FUNCSIG$vi)
end
global.get $gc/itcm/trace/arr
local.tee $0
if
local.get $0
i32.const 4
call_indirect (type $FUNCSIG$vi)
end
global.get $~lib/collector/itcm/toSpace
global.get $~lib/collector/itcm/iter
i32.load offset=8
@ -518,7 +336,7 @@
global.set $~lib/collector/itcm/iter
i32.const 3
global.set $~lib/collector/itcm/state
i32.const 824
i32.const 568
i32.const 0
f64.const 0
f64.const 0
@ -535,7 +353,7 @@
global.get $~lib/collector/itcm/toSpace
i32.ne
if
i32.const 880
i32.const 624
i32.const 1
local.get $0
i32.const 16
@ -552,7 +370,7 @@
i32.and
global.set $~lib/collector/itcm/iter
else
i32.const 936
i32.const 680
i32.const 0
f64.const 0
f64.const 0
@ -575,7 +393,7 @@
end
end
)
(func $~lib/collector/itcm/__ref_collect (; 11 ;) (type $FUNCSIG$v)
(func $~lib/collector/itcm/__ref_collect (; 6 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 72
i32.const 0
@ -609,7 +427,7 @@
end
end
)
(func $~lib/runtime/runtime.allocate (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/runtime.allocate (; 7 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 1
i32.const 32
@ -636,21 +454,158 @@
i32.const 16
i32.add
)
(func $gc/itcm/trace/Ref~iterate (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/itcm/ManagedObject#unlink (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
i32.const 888
i32.const 3
local.get $0
i32.load offset=12
local.tee $1
i32.const 16
i32.add
f64.convert_i32_u
local.get $0
i32.const 16
i32.add
f64.convert_i32_u
local.get $0
i32.load offset=8
i32.const -4
i32.and
local.tee $0
i32.const 16
i32.add
f64.convert_i32_u
f64.const 0
f64.const 0
call $~lib/env/trace
local.get $0
local.get $1
i32.store offset=12
local.get $1
local.get $1
i32.load offset=8
i32.const 3
i32.and
local.get $0
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/ManagedObjectList#push (; 9 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
i32.const 968
i32.const 3
local.get $0
i32.load offset=12
local.tee $2
i32.const 16
i32.add
f64.convert_i32_u
local.get $1
i32.const 16
i32.add
f64.convert_i32_u
local.get $0
i32.const 16
i32.add
f64.convert_i32_u
f64.const 0
f64.const 0
call $~lib/env/trace
local.get $1
local.get $1
i32.load offset=8
i32.const 3
i32.and
local.get $0
i32.or
i32.store offset=8
local.get $1
local.get $2
i32.store offset=12
local.get $2
local.get $2
i32.load offset=8
i32.const 3
i32.and
local.get $1
i32.or
i32.store offset=8
local.get $0
local.get $1
i32.store offset=12
)
(func $~lib/collector/itcm/ManagedObject#makeGray (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 840
i32.const 1
local.get $0
i32.const 16
i32.add
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $~lib/collector/itcm/iter
local.get $0
i32.eq
if
local.get $0
i32.load offset=12
global.set $~lib/collector/itcm/iter
end
local.get $0
call $~lib/collector/itcm/ManagedObject#unlink
global.get $~lib/collector/itcm/toSpace
local.get $0
call $~lib/collector/itcm/ManagedObjectList#push
local.get $0
local.get $0
i32.load offset=8
i32.const -4
i32.and
i32.const 2
i32.or
i32.store offset=8
)
(func $~lib/collector/itcm/__ref_mark (; 11 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 800
i32.const 1
local.get $0
f64.convert_i32_u
f64.const 0
f64.const 0
f64.const 0
f64.const 0
call $~lib/env/trace
global.get $~lib/collector/itcm/white
local.get $0
i32.const 16
i32.sub
local.tee $0
i32.load offset=8
i32.const 3
i32.and
i32.eq
if
local.get $0
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $gc/itcm/trace/Ref~traverse (; 12 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.tee $0
if
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
local.get $0
local.get $1
call $gc/itcm/trace/Ref~iterate
call $gc/itcm/trace/Ref~traverse
end
)
(func $~lib/collector/itcm/__ref_register (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 1104
(func $~lib/collector/itcm/__ref_register (; 13 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 1088
i32.const 1
local.get $0
f64.convert_i32_u
@ -675,15 +630,15 @@
local.get $0
call $~lib/collector/itcm/ManagedObjectList#push
)
(func $~lib/runtime/runtime.register (; 15 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/runtime.register (; 14 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 1432
i32.const 1416
i32.le_u
if
i32.const 0
i32.const 1056
i32.const 145
i32.const 1040
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -697,8 +652,8 @@
i32.ne
if
i32.const 0
i32.const 1056
i32.const 147
i32.const 1040
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -710,7 +665,7 @@
call $~lib/collector/itcm/__ref_register
local.get $0
)
(func $~lib/memory/memory.fill (; 16 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/memory/memory.fill (; 15 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $~lib/util/memory/memset|inlined.0
local.get $1
@ -921,19 +876,18 @@
end
end
)
(func $~lib/arraybuffer/ArrayBufferView~iterate (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/arraybuffer/ArrayBufferView~traverse (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.tee $0
if
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
end
)
(func $~lib/collector/itcm/__ref_link (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/itcm/__ref_link (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
i32.const 1264
i32.const 1248
i32.const 2
local.get $0
f64.convert_i32_u
@ -971,7 +925,7 @@
call $~lib/collector/itcm/ManagedObject#makeGray
end
)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 4
call $~lib/runtime/runtime.allocate
@ -979,7 +933,7 @@
i32.const 4
call $~lib/memory/memory.fill
local.get $1
i32.const 6
i32.const 3
call $~lib/runtime/runtime.register
local.set $1
local.get $0
@ -987,7 +941,7 @@
if
i32.const 12
call $~lib/runtime/runtime.allocate
i32.const 7
i32.const 4
call $~lib/runtime/runtime.register
local.set $0
end
@ -1020,49 +974,42 @@
i32.store offset=8
local.get $0
)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>~iterate (; 20 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>~traverse (; 19 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
local.get $0
i32.load offset=4
local.tee $2
local.tee $1
local.get $0
i32.load offset=8
i32.add
local.set $3
local.set $2
loop $continue|0
local.get $1
local.get $2
local.get $3
i32.lt_u
if
local.get $2
local.get $1
i32.load
local.tee $0
if
i32.const 1
global.set $~lib/argc
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/itcm/__ref_mark
local.get $0
local.get $1
call $gc/itcm/trace/Ref~iterate
call $gc/itcm/trace/Ref~traverse
end
local.get $2
local.get $1
i32.const 4
i32.add
local.set $2
local.set $1
br $continue|0
end
end
)
(func $~lib/util/memory/memcpy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(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)
@ -1909,7 +1856,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 22 ;) (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)
block $~lib/util/memory/memmove|inlined.0
@ -2103,7 +2050,7 @@
end
end
)
(func $~lib/runtime/runtime.reallocate (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/runtime.reallocate (; 22 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -2127,7 +2074,7 @@
i32.shl
i32.const 0
local.get $0
i32.const 1432
i32.const 1416
i32.gt_u
select
i32.const 32
@ -2165,12 +2112,12 @@
i32.eq
if
local.get $0
i32.const 1432
i32.const 1416
i32.le_u
if
i32.const 0
i32.const 1056
i32.const 107
i32.const 1040
i32.const 64
i32.const 10
call $~lib/env/abort
unreachable
@ -2198,7 +2145,7 @@
i32.store offset=4
local.get $0
)
(func $~lib/array/ensureCapacity (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/array/ensureCapacity (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
i32.const 1
@ -2238,7 +2185,7 @@
i32.store offset=8
end
)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__unchecked_set (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__unchecked_set (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load offset=4
@ -2258,7 +2205,7 @@
end
end
)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__set (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<gc/itcm/trace/Ref | null>#__set (; 25 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load offset=12
@ -2277,14 +2224,14 @@
i32.store offset=12
end
)
(func $start:gc/itcm/trace (; 27 ;) (type $FUNCSIG$v)
(func $start:gc/itcm/trace (; 26 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 1432
i32.const 1416
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
global.set $~lib/allocator/arena/offset
call $~lib/collector/itcm/__ref_collect
i32.const 1000
i32.const 744
i32.const 0
f64.const 0
f64.const 0
@ -2294,14 +2241,14 @@
call $~lib/env/trace
i32.const 4
call $~lib/runtime/runtime.allocate
i32.const 5
i32.const 2
call $~lib/runtime/runtime.register
local.tee $0
i32.const 0
i32.store
local.get $0
global.set $gc/itcm/trace/ref
i32.const 1152
i32.const 1136
i32.const 0
f64.const 0
f64.const 0
@ -2311,7 +2258,7 @@
call $~lib/env/trace
i32.const 16
call $~lib/runtime/runtime.allocate
i32.const 8
i32.const 5
call $~lib/runtime/runtime.register
call $~lib/arraybuffer/ArrayBufferView#constructor
local.tee $0
@ -2322,7 +2269,7 @@
i32.store offset=12
local.get $0
global.set $gc/itcm/trace/arr
i32.const 1304
i32.const 1288
i32.const 0
f64.const 0
f64.const 0
@ -2333,7 +2280,7 @@
global.get $gc/itcm/trace/arr
global.get $gc/itcm/trace/ref
call $~lib/array/Array<gc/itcm/trace/Ref | null>#__set
i32.const 1400
i32.const 1384
i32.const 0
f64.const 0
f64.const 0
@ -2346,7 +2293,7 @@
call $~lib/array/Array<gc/itcm/trace/Ref | null>#__set
call $~lib/collector/itcm/__ref_collect
)
(func $gc/itcm/trace/main (; 28 ;) (type $FUNCSIG$v)
(func $gc/itcm/trace/main (; 27 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -2355,7 +2302,22 @@
global.set $~lib/started
end
)
(func $null (; 29 ;) (type $FUNCSIG$v)
(func $null (; 28 ;) (type $FUNCSIG$v)
nop
)
(func $~lib/gc/__gc_mark_roots (; 29 ;) (type $FUNCSIG$v)
(local $0 i32)
global.get $gc/itcm/trace/ref
local.tee $0
if
local.get $0
call $~lib/collector/itcm/__ref_mark
end
global.get $gc/itcm/trace/arr
local.tee $0
if
local.get $0
call $~lib/collector/itcm/__ref_mark
end
)
)

View File

@ -1,7 +1,7 @@
@global const GC_TRACE = true;
import "collector/itcm";
import { HEADER_SIZE } from "runtime";
import { HEADER_SIZE } from "util/runtime";
assert(HEADER_SIZE == 16);
assert(gc.implemented);

File diff suppressed because it is too large Load Diff

View File

@ -143,7 +143,7 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -158,7 +158,7 @@
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -22,10 +22,10 @@
(global $gc/rc/_dummy/retain_ref (mut i32) (i32.const 0))
(global $gc/rc/_dummy/release_count (mut i32) (i32.const 0))
(global $gc/rc/_dummy/release_ref (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $gc/rc/global-assign/global (mut i32) (i32.const 0))
(global $gc/rc/global-assign/globalRef (mut i32) (i32.const 0))
@ -40,7 +40,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -139,7 +139,7 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -151,7 +151,7 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $gc/rc/_dummy/__ref_register (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
@ -180,24 +180,24 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -139,7 +139,7 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -154,7 +154,7 @@
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -21,10 +21,10 @@
(global $gc/rc/_dummy/retain_ref (mut i32) (i32.const 0))
(global $gc/rc/_dummy/release_count (mut i32) (i32.const 0))
(global $gc/rc/_dummy/release_ref (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $gc/rc/global-init/global (mut i32) (i32.const 0))
(global $~lib/started (mut i32) (i32.const 0))
@ -38,7 +38,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -137,7 +137,7 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -149,7 +149,7 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $gc/rc/_dummy/__ref_register (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
@ -178,24 +178,24 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -85,7 +85,7 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -100,7 +100,7 @@
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -9,10 +9,10 @@
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 2 funcref)
(elem (i32.const 0) $null $getter-call/C#get:x~anonymous|0)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
@ -24,7 +24,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -123,13 +123,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -141,24 +141,24 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -131,7 +131,7 @@
if
i32.const 0
i32.const 48
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -146,7 +146,7 @@
if
i32.const 0
i32.const 48
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -12,10 +12,10 @@
(elem (i32.const 0) $null $inlining/func_fe~anonymous|0)
(global $inlining/constantGlobal i32 (i32.const 1))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 80))
(export "memory" (memory $0))
@ -288,7 +288,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -387,13 +387,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/runtime.register (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -405,24 +405,24 @@
if
i32.const 0
i32.const 48
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 48
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -303,7 +303,7 @@
if
i32.const 0
i32.const 464
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -318,7 +318,7 @@
if
i32.const 0
i32.const 464
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -2358,7 +2358,7 @@
if
i32.const 0
i32.const 1648
i32.const 190
i32.const 191
i32.const 4
call $~lib/env/abort
unreachable
@ -2451,7 +2451,7 @@
if
i32.const 0
i32.const 464
i32.const 132
i32.const 89
i32.const 6
call $~lib/env/abort
unreachable
@ -2465,7 +2465,7 @@
if
i32.const 0
i32.const 464
i32.const 134
i32.const 91
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -43,10 +43,10 @@
(elem (i32.const 0) $null)
(global $number/a (mut i32) (i32.const 1))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/util/number/_frc_plus (mut i64) (i64.const 0))
(global $~lib/util/number/_frc_minus (mut i64) (i64.const 0))
@ -139,7 +139,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -238,13 +238,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/util/number/utoa32_lut (; 6 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
@ -399,24 +399,24 @@
if
i32.const 0
i32.const 464
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 464
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -493,7 +493,7 @@
)
(func $~lib/string/String#get:length (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
i32.const 1
@ -3416,7 +3416,7 @@
if
i32.const 0
i32.const 1648
i32.const 190
i32.const 191
i32.const 4
call $~lib/env/abort
unreachable
@ -3534,24 +3534,24 @@
if
i32.const 0
i32.const 464
i32.const 132
i32.const 89
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $1
local.get $1
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 464
i32.const 134
i32.const 91
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -100,7 +100,7 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -115,7 +115,7 @@
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -10,10 +10,10 @@
(data (i32.const 8) "\02\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $optional-typeparameters/tConcrete (mut i32) (i32.const 0))
(global $optional-typeparameters/tDerived (mut i32) (i32.const 0))
@ -31,7 +31,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -130,13 +130,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/runtime.register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -148,24 +148,24 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -27,7 +27,7 @@
if
i32.const 0
i32.const 16
i32.const 95
i32.const 96
i32.const 45
call $~lib/env/abort
unreachable
@ -41,7 +41,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -64,7 +64,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -142,7 +142,7 @@
if
i32.const 0
i32.const 64
i32.const 165
i32.const 166
i32.const 4
call $~lib/env/abort
unreachable

View File

@ -13,7 +13,7 @@
(data (i32.const 96) "\01\00\00\00\08\00\00\00n\00u\00l\00l\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/memory/HEAP_BASE i32 (i32.const 112))
(export "memory" (memory $0))
(export "table" (table $0))
@ -39,7 +39,7 @@
if
i32.const 0
i32.const 16
i32.const 95
i32.const 96
i32.const 45
call $~lib/env/abort
unreachable
@ -53,7 +53,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -81,7 +81,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -114,7 +114,7 @@
if
i32.const 0
i32.const 16
i32.const 95
i32.const 96
i32.const 45
call $~lib/env/abort
unreachable
@ -128,7 +128,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -139,7 +139,7 @@
)
(func $~lib/string/String#get:length (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
i32.const 1
@ -218,7 +218,7 @@
if
i32.const 0
i32.const 64
i32.const 165
i32.const 166
i32.const 4
call $~lib/env/abort
unreachable
@ -296,7 +296,7 @@
if
i32.const 0
i32.const 16
i32.const 95
i32.const 96
i32.const 45
call $~lib/env/abort
unreachable
@ -310,7 +310,7 @@
if
i32.const 0
i32.const 16
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable

View File

@ -1,6 +1,5 @@
(module
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(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)))
@ -26,8 +25,7 @@
(data (i32.const 280) "\04\00\00\00\1e")
(data (i32.const 296) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 13 funcref)
(elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<i8>~iterate $~lib/array/Array<i8>~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<i8>~iterate $~lib/array/Array<i8>~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $~lib/array/Array<std/array-literal/Ref>~iterate)
(global $~lib/argc (mut i32) (i32.const 0))
(elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array<i8>~traverse $~lib/array/Array<i8>~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array<i8>~traverse $~lib/array/Array<i8>~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array<std/array-literal/Ref>~traverse $~lib/array/Array<std/array-literal/Ref>~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array<std/array-literal/Ref>~traverse $~lib/array/Array<std/array-literal/Ref>~traverse)
(global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 264))
(global $std/array-literal/i (mut i32) (i32.const 0))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -41,16 +39,13 @@
(export "table" (table $0))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/arraybuffer/ArrayBuffer~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/arraybuffer/ArrayBuffer~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/array/Array<i8>~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/array/Array<i8>~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
drop
)
(func $~lib/array/Array<i8>#__get (; 3 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
@ -60,7 +55,7 @@
if
i32.const 0
i32.const 136
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -81,7 +76,7 @@
if
i32.const 0
i32.const 136
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -191,7 +186,7 @@
if
i32.const 0
i32.const 296
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -206,7 +201,7 @@
if
i32.const 0
i32.const 296
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -257,39 +252,30 @@
i32.const 7
call $~lib/runtime/runtime.register
)
(func $~lib/array/Array<std/array-literal/Ref>~iterate (; 10 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/array/Array<std/array-literal/Ref>~traverse (; 10 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
drop
local.get $0
i32.load offset=4
local.tee $2
local.tee $1
local.get $0
i32.load offset=8
i32.add
local.set $0
loop $continue|0
local.get $2
local.get $1
local.get $0
i32.lt_u
if
local.get $2
i32.load
local.set $3
i32.const 1
global.set $~lib/argc
local.get $3
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $2
i32.load
drop
local.get $1
i32.const 4
i32.add
local.set $2
local.set $1
br $continue|0
end
end

View File

@ -1,10 +1,10 @@
(module
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(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$iiiii (func (param i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$v (func))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
@ -19,16 +19,15 @@
(data (i32.const 248) "\05\00\00\00\10\00\00\00\00\00\00\00\00\00\00\00\f8\00\00\00\f8\00\00\00\00\00\00\00\00\00\00\00")
(data (i32.const 280) "\04\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 13 funcref)
(elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<i8>~iterate $~lib/array/Array<i8>~iterate $~lib/string/String~iterate $~lib/array/Array<i32>~iterate $~lib/array/Array<i32>~iterate $std/array-literal/Ref~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $~lib/array/Array<std/array-literal/Ref>~iterate $std/array-literal/RefWithCtor~iterate $~lib/array/Array<std/array-literal/RefWithCtor>~iterate $~lib/array/Array<std/array-literal/RefWithCtor>~iterate)
(global $~lib/argc (mut i32) (i32.const 0))
(elem (i32.const 0) $null $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array<i8>~traverse $~lib/array/Array<i8>~traverse $~lib/string/String~traverse $~lib/array/Array<i32>~traverse $~lib/array/Array<i32>~traverse $std/array-literal/Ref~traverse $~lib/array/Array<std/array-literal/Ref>~traverse $~lib/array/Array<std/array-literal/Ref>~traverse $std/array-literal/RefWithCtor~traverse $~lib/array/Array<std/array-literal/RefWithCtor>~traverse $~lib/array/Array<std/array-literal/RefWithCtor>~traverse)
(global $std/array-literal/staticArrayI8 i32 (i32.const 48))
(global $std/array-literal/staticArrayI32 i32 (i32.const 216))
(global $std/array-literal/emptyArrayI32 (mut i32) (i32.const 264))
(global $std/array-literal/i (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $std/array-literal/dynamicArrayI8 (mut i32) (i32.const 0))
(global $std/array-literal/dynamicArrayI32 (mut i32) (i32.const 0))
@ -40,25 +39,25 @@
(export "table" (table $0))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/arraybuffer/ArrayBuffer~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/arraybuffer/ArrayBuffer~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $~lib/array/Array<i8>~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/collector/dummy/__ref_mark (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/array/Array<i8>~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/dummy/__ref_mark
)
(func $~lib/array/Array<i8>#get:length (; 3 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i8>#get:length (; 4 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/string/String~traverse (; 5 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $~lib/array/Array<i8>#__unchecked_get (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i8>#__unchecked_get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -67,7 +66,7 @@
i32.add
i32.load8_s
)
(func $~lib/array/Array<i8>#__get (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i8>#__get (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -77,7 +76,7 @@
if
i32.const 0
i32.const 136
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -86,19 +85,16 @@
local.get $1
call $~lib/array/Array<i8>#__unchecked_get
)
(func $~lib/array/Array<i32>~iterate (; 7 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/array/Array<i32>~traverse (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/dummy/__ref_mark
)
(func $~lib/array/Array<i32>#get:length (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i32>#get:length (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $~lib/array/Array<i32>#__unchecked_get (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#__unchecked_get (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -107,7 +103,7 @@
i32.add
i32.load
)
(func $~lib/array/Array<i32>#__get (; 10 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#__get (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -117,7 +113,7 @@
if
i32.const 0
i32.const 136
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -126,11 +122,11 @@
local.get $1
call $~lib/array/Array<i32>#__unchecked_get
)
(func $~lib/runtime/runtime.adjust (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/runtime.adjust (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -138,7 +134,7 @@
i32.sub
i32.shl
)
(func $~lib/allocator/arena/__mem_allocate (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/allocator/arena/__mem_allocate (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -217,19 +213,19 @@
global.set $~lib/allocator/arena/offset
local.get $1
)
(func $~lib/memory/memory.allocate (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/memory/memory.allocate (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/allocator/arena/__mem_allocate
return
)
(func $~lib/runtime/runtime.allocate (; 14 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/runtime/runtime.allocate (; 15 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/runtime/runtime.adjust
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -241,13 +237,13 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/collector/dummy/__ref_register (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/dummy/__ref_register (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/runtime/runtime.register (; 16 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/runtime.register (; 17 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -256,24 +252,24 @@
if
i32.const 0
i32.const 296
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 296
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -285,13 +281,13 @@
call $~lib/collector/dummy/__ref_register
local.get $0
)
(func $~lib/collector/dummy/__ref_link (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/dummy/__ref_link (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/collector/dummy/__ref_unlink (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/dummy/__ref_unlink (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/util/memory/memcpy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(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)
@ -1492,7 +1488,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)
@ -1723,7 +1719,7 @@
end
end
)
(func $~lib/runtime/runtime.makeArray (; 21 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/runtime/runtime.makeArray (; 22 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1787,9 +1783,9 @@
end
local.get $4
)
(func $std/array-literal/Ref~iterate (; 22 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $std/array-literal/Ref~traverse (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
)
(func $std/array-literal/Ref#constructor (; 23 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array-literal/Ref#constructor (; 24 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -1801,60 +1797,53 @@
end
local.get $0
)
(func $~lib/array/Array<std/array-literal/Ref>~iterate (; 24 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<std/array-literal/Ref>~traverse (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/dummy/__ref_mark
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.set $1
local.get $1
local.get $0
i32.load offset=8
i32.add
local.set $3
local.set $2
block $break|0
loop $continue|0
local.get $1
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
local.get $1
i32.load
local.set $4
i32.const 1
global.set $~lib/argc
local.get $4
local.set $3
local.get $3
call $~lib/collector/dummy/__ref_mark
local.get $3
call $std/array-literal/Ref~traverse
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $4
local.get $1
call $std/array-literal/Ref~iterate
local.get $2
i32.const 4
i32.add
local.set $2
local.set $1
end
br $continue|0
end
end
end
)
(func $~lib/array/Array<std/array-literal/Ref>#get:length (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<std/array-literal/Ref>#get:length (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $std/array-literal/RefWithCtor~iterate (; 26 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $std/array-literal/RefWithCtor~traverse (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $std/array-literal/RefWithCtor#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array-literal/RefWithCtor#constructor (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -1866,57 +1855,50 @@
end
local.get $0
)
(func $~lib/array/Array<std/array-literal/RefWithCtor>~iterate (; 28 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/array/Array<std/array-literal/RefWithCtor>~traverse (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/dummy/__ref_mark
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.set $1
local.get $1
local.get $0
i32.load offset=8
i32.add
local.set $3
local.set $2
block $break|0
loop $continue|0
local.get $1
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
local.get $1
i32.load
local.set $4
i32.const 1
global.set $~lib/argc
local.get $4
local.set $3
local.get $3
call $~lib/collector/dummy/__ref_mark
local.get $3
call $std/array-literal/RefWithCtor~traverse
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $4
local.get $1
call $std/array-literal/RefWithCtor~iterate
local.get $2
i32.const 4
i32.add
local.set $2
local.set $1
end
br $continue|0
end
end
end
)
(func $~lib/array/Array<std/array-literal/RefWithCtor>#get:length (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<std/array-literal/RefWithCtor>#get:length (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $start:std/array-literal (; 30 ;) (type $FUNCSIG$v)
(func $start:std/array-literal (; 31 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -2356,9 +2338,9 @@
unreachable
end
)
(func $start (; 31 ;) (type $FUNCSIG$v)
(func $start (; 32 ;) (type $FUNCSIG$v)
call $start:std/array-literal
)
(func $null (; 32 ;) (type $FUNCSIG$v)
(func $null (; 33 ;) (type $FUNCSIG$v)
)
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -21,6 +21,7 @@
(global $std/arraybuffer/buffer (mut i32) (i32.const 0))
(global $std/arraybuffer/sliced (mut i32) (i32.const 0))
(global $std/arraybuffer/arr8 (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
@ -326,7 +327,7 @@
if
i32.const 0
i32.const 64
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -341,7 +342,7 @@
if
i32.const 0
i32.const 64
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -359,8 +360,8 @@
if
i32.const 0
i32.const 16
i32.const 53
i32.const 51
i32.const 54
i32.const 43
call $~lib/env/abort
unreachable
end
@ -1494,8 +1495,8 @@
if
i32.const 0
i32.const 16
i32.const 11
i32.const 65
i32.const 12
i32.const 57
call $~lib/env/abort
unreachable
end
@ -1563,17 +1564,12 @@
call $~lib/memory/memory.copy
local.get $0
)
(func $~lib/dataview/DataView#constructor (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(func $~lib/dataview/DataView#constructor (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.const 8
i32.sub
i32.load offset=4
local.tee $2
local.get $1
i32.const 1073741816
i32.gt_u
local.get $2
local.get $1
local.get $0
i32.const 8
i32.sub
@ -1583,7 +1579,7 @@
if
i32.const 0
i32.const 168
i32.const 22
i32.const 21
i32.const 6
call $~lib/env/abort
unreachable
@ -1592,27 +1588,49 @@
call $~lib/runtime/runtime.allocate
i32.const 7
call $~lib/runtime/runtime.register
local.tee $1
local.tee $2
i32.const 0
i32.store
local.get $1
i32.const 0
i32.store offset=4
local.get $1
i32.const 0
i32.store offset=8
local.get $1
local.get $0
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
local.get $2
i32.const 0
i32.store offset=4
local.get $2
i32.const 0
i32.store offset=8
local.get $2
local.get $0
i32.store
local.get $2
local.get $0
i32.store offset=4
local.get $2
local.get $1
i32.store offset=8
local.get $2
)
(func $start:std/arraybuffer (; 12 ;) (type $FUNCSIG$v)
(func $~lib/dataview/DataView#constructor|trampoline (; 12 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
block $2of2
block $1of2
block $outOfRange
global.get $~lib/argc
i32.const 1
i32.sub
br_table $1of2 $1of2 $2of2 $outOfRange
end
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load offset=4
local.set $1
end
local.get $0
local.get $1
call $~lib/dataview/DataView#constructor
)
(func $start:std/arraybuffer (; 13 ;) (type $FUNCSIG$v)
i32.const 200
global.set $~lib/allocator/arena/startOffset
global.get $~lib/allocator/arena/startOffset
@ -1850,11 +1868,13 @@
call $~lib/env/abort
unreachable
end
i32.const 1
global.set $~lib/argc
block $__inlined_func$~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array>14 (result i32)
i32.const 1
global.get $std/arraybuffer/arr8
i32.load
call $~lib/dataview/DataView#constructor
call $~lib/dataview/DataView#constructor|trampoline
br_if $__inlined_func$~lib/arraybuffer/ArrayBuffer.isView<~lib/typedarray/Uint8Array>14
drop
i32.const 0
@ -1869,10 +1889,10 @@
unreachable
end
)
(func $start (; 13 ;) (type $FUNCSIG$v)
(func $start (; 14 ;) (type $FUNCSIG$v)
call $start:std/arraybuffer
)
(func $null (; 14 ;) (type $FUNCSIG$v)
(func $null (; 15 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -15,16 +15,16 @@
(data (i32.const 160) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741816))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $std/arraybuffer/buffer (mut i32) (i32.const 0))
(global $std/arraybuffer/sliced (mut i32) (i32.const 0))
(global $std/arraybuffer/arr8 (mut i32) (i32.const 0))
(global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 200))
(export "memory" (memory $0))
(export "table" (table $0))
@ -33,7 +33,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -132,13 +132,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/memory/memory.fill (; 5 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
@ -407,24 +407,24 @@
if
i32.const 0
i32.const 64
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 64
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -437,13 +437,13 @@
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
i32.gt_u
if
i32.const 0
i32.const 16
i32.const 53
i32.const 51
i32.const 54
i32.const 43
call $~lib/env/abort
unreachable
end
@ -460,7 +460,7 @@
)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 8 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
)
@ -2020,15 +2020,15 @@
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 17 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
local.get $2
i32.shr_u
i32.gt_u
if
i32.const 0
i32.const 16
i32.const 11
i32.const 65
i32.const 12
i32.const 57
call $~lib/env/abort
unreachable
end
@ -2146,17 +2146,7 @@
(func $~lib/dataview/DataView#constructor (; 21 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
local.get $3
global.get $~lib/builtins/i32.MIN_VALUE
i32.eq
if
local.get $1
call $~lib/arraybuffer/ArrayBuffer#get:byteLength
local.get $2
i32.sub
local.set $3
end
local.get $3
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
i32.gt_u
local.get $2
local.get $3
@ -2168,7 +2158,7 @@
if
i32.const 0
i32.const 168
i32.const 22
i32.const 21
i32.const 6
call $~lib/env/abort
unreachable
@ -2212,7 +2202,32 @@
local.get $0
i32.load
)
(func $start:std/arraybuffer (; 23 ;) (type $FUNCSIG$v)
(func $~lib/dataview/DataView#constructor|trampoline (; 23 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
block $2of2
block $1of2
block $0of2
block $outOfRange
global.get $~lib/argc
i32.const 1
i32.sub
br_table $0of2 $1of2 $2of2 $outOfRange
end
unreachable
end
i32.const 0
local.set $2
end
local.get $1
call $~lib/arraybuffer/ArrayBuffer#get:byteLength
local.set $3
end
local.get $0
local.get $1
local.get $2
local.get $3
call $~lib/dataview/DataView#constructor
)
(func $start:std/arraybuffer (; 24 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -2242,7 +2257,7 @@
end
global.get $std/arraybuffer/buffer
i32.const 0
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
call $~lib/arraybuffer/ArrayBuffer#slice
global.set $std/arraybuffer/sliced
global.get $std/arraybuffer/sliced
@ -2272,7 +2287,7 @@
end
global.get $std/arraybuffer/buffer
i32.const 1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
call $~lib/arraybuffer/ArrayBuffer#slice
global.set $std/arraybuffer/sliced
global.get $std/arraybuffer/sliced
@ -2290,7 +2305,7 @@
end
global.get $std/arraybuffer/buffer
i32.const -1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
call $~lib/arraybuffer/ArrayBuffer#slice
global.set $std/arraybuffer/sliced
global.get $std/arraybuffer/sliced
@ -2380,7 +2395,7 @@
end
global.get $std/arraybuffer/buffer
i32.const 42
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
call $~lib/arraybuffer/ArrayBuffer#slice
global.set $std/arraybuffer/sliced
global.get $std/arraybuffer/sliced
@ -2512,12 +2527,16 @@
call $~lib/env/abort
unreachable
end
i32.const 0
global.get $std/arraybuffer/arr8
call $~lib/typedarray/Uint8Array#get:buffer
i32.const 0
global.get $~lib/builtins/i32.MIN_VALUE
call $~lib/dataview/DataView#constructor
block (result i32)
i32.const 1
global.set $~lib/argc
i32.const 0
global.get $std/arraybuffer/arr8
call $~lib/typedarray/Uint8Array#get:buffer
i32.const 0
i32.const 0
call $~lib/dataview/DataView#constructor|trampoline
end
call $~lib/arraybuffer/ArrayBuffer.isView<~lib/dataview/DataView>
i32.eqz
if
@ -2529,9 +2548,9 @@
unreachable
end
)
(func $start (; 24 ;) (type $FUNCSIG$v)
(func $start (; 25 ;) (type $FUNCSIG$v)
call $start:std/arraybuffer
)
(func $null (; 25 ;) (type $FUNCSIG$v)
(func $null (; 26 ;) (type $FUNCSIG$v)
)
)

View File

@ -26,6 +26,7 @@
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $std/dataview/array (mut i32) (i32.const 0))
(global $std/dataview/view (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
@ -164,7 +165,7 @@
if
i32.const 0
i32.const 64
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -179,7 +180,7 @@
if
i32.const 0
i32.const 64
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -250,36 +251,22 @@
)
(func $~lib/dataview/DataView#constructor (; 7 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
block (result i32)
local.get $2
i32.const -2147483648
i32.eq
if
local.get $0
i32.const 8
i32.sub
i32.load offset=4
local.get $1
i32.sub
local.set $2
end
local.get $2
i32.const 1073741816
i32.gt_u
local.get $1
local.get $2
i32.add
local.get $0
i32.const 8
i32.sub
i32.load offset=4
i32.gt_u
i32.or
end
local.get $2
i32.const 1073741816
i32.gt_u
local.get $1
local.get $2
i32.add
local.get $0
i32.const 8
i32.sub
i32.load offset=4
i32.gt_u
i32.or
if
i32.const 0
i32.const 152
i32.const 22
i32.const 21
i32.const 6
call $~lib/env/abort
unreachable
@ -324,7 +311,7 @@
if
i32.const 0
i32.const 152
i32.const 45
i32.const 44
i32.const 6
call $~lib/env/abort
unreachable
@ -390,7 +377,7 @@
if
i32.const 0
i32.const 152
i32.const 59
i32.const 58
i32.const 7
call $~lib/env/abort
unreachable
@ -416,7 +403,7 @@
if
i32.const 0
i32.const 152
i32.const 70
i32.const 69
i32.const 49
call $~lib/env/abort
unreachable
@ -441,7 +428,7 @@
if
i32.const 0
i32.const 152
i32.const 78
i32.const 77
i32.const 7
call $~lib/env/abort
unreachable
@ -483,7 +470,7 @@
if
i32.const 0
i32.const 152
i32.const 87
i32.const 86
i32.const 7
call $~lib/env/abort
unreachable
@ -520,7 +507,7 @@
if
i32.const 0
i32.const 152
i32.const 181
i32.const 180
i32.const 6
call $~lib/env/abort
unreachable
@ -545,7 +532,7 @@
if
i32.const 0
i32.const 152
i32.const 93
i32.const 92
i32.const 49
call $~lib/env/abort
unreachable
@ -570,7 +557,7 @@
if
i32.const 0
i32.const 152
i32.const 101
i32.const 100
i32.const 6
call $~lib/env/abort
unreachable
@ -610,7 +597,7 @@
if
i32.const 0
i32.const 152
i32.const 110
i32.const 109
i32.const 6
call $~lib/env/abort
unreachable
@ -647,7 +634,7 @@
if
i32.const 0
i32.const 152
i32.const 190
i32.const 189
i32.const 6
call $~lib/env/abort
unreachable
@ -672,7 +659,7 @@
if
i32.const 0
i32.const 152
i32.const 119
i32.const 118
i32.const 6
call $~lib/env/abort
unreachable
@ -710,7 +697,7 @@
if
i32.const 0
i32.const 152
i32.const 128
i32.const 127
i32.const 6
call $~lib/env/abort
unreachable
@ -738,7 +725,7 @@
if
i32.const 0
i32.const 152
i32.const 134
i32.const 133
i32.const 49
call $~lib/env/abort
unreachable
@ -756,7 +743,7 @@
if
i32.const 0
i32.const 152
i32.const 142
i32.const 141
i32.const 6
call $~lib/env/abort
unreachable
@ -792,7 +779,7 @@
if
i32.const 0
i32.const 152
i32.const 150
i32.const 149
i32.const 6
call $~lib/env/abort
unreachable
@ -828,7 +815,7 @@
if
i32.const 0
i32.const 152
i32.const 199
i32.const 198
i32.const 6
call $~lib/env/abort
unreachable
@ -852,7 +839,7 @@
if
i32.const 0
i32.const 152
i32.const 155
i32.const 154
i32.const 49
call $~lib/env/abort
unreachable
@ -870,7 +857,7 @@
if
i32.const 0
i32.const 152
i32.const 163
i32.const 162
i32.const 6
call $~lib/env/abort
unreachable
@ -904,7 +891,7 @@
if
i32.const 0
i32.const 152
i32.const 171
i32.const 170
i32.const 6
call $~lib/env/abort
unreachable
@ -940,7 +927,7 @@
if
i32.const 0
i32.const 152
i32.const 207
i32.const 206
i32.const 6
call $~lib/env/abort
unreachable
@ -956,7 +943,30 @@
end
i64.store
)
(func $start:std/dataview (; 29 ;) (type $FUNCSIG$v)
(func $~lib/dataview/DataView#constructor|trampoline (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
block $2of2
block $1of2
block $outOfRange
global.get $~lib/argc
i32.const 1
i32.sub
br_table $1of2 $1of2 $2of2 $outOfRange
end
unreachable
end
local.get $0
i32.const 8
i32.sub
i32.load offset=4
local.set $1
end
local.get $0
i32.const 0
local.get $1
call $~lib/dataview/DataView#constructor
)
(func $start:std/dataview (; 30 ;) (type $FUNCSIG$v)
(local $0 i32)
i32.const 224
global.set $~lib/allocator/arena/startOffset
@ -2486,11 +2496,43 @@
call $~lib/env/abort
unreachable
end
i32.const 1
global.set $~lib/argc
global.get $std/dataview/array
i32.load
call $~lib/dataview/DataView#constructor|trampoline
global.set $std/dataview/view
global.get $std/dataview/view
local.tee $0
i32.load offset=4
local.get $0
i32.load
i32.sub
if
i32.const 0
i32.const 192
i32.const 164
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/dataview/view
i32.load offset=8
i32.const 8
i32.ne
if
i32.const 0
i32.const 192
i32.const 165
i32.const 0
call $~lib/env/abort
unreachable
end
)
(func $start (; 30 ;) (type $FUNCSIG$v)
(func $start (; 31 ;) (type $FUNCSIG$v)
call $start:std/dataview
)
(func $null (; 31 ;) (type $FUNCSIG$v)
(func $null (; 32 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -159,3 +159,7 @@ assert(view.getUint64(0, true) === 2334704782995986958);
view.setUint64(0, 11323557176419695287, false);
assert(view.getUint64(0, false) === 11323557176419695287);
view = new DataView(array.buffer);
assert(view.byteOffset == 0);
assert(view.byteLength == 8);

View File

@ -22,15 +22,15 @@
(data (i32.const 184) "\01\00\00\00\1e\00\00\00s\00t\00d\00/\00d\00a\00t\00a\00v\00i\00e\00w\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741816))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $std/dataview/array (mut i32) (i32.const 0))
(global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648))
(global $std/dataview/view (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 224))
(export "memory" (memory $0))
(export "table" (table $0))
@ -39,7 +39,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -138,13 +138,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/memory/memory.fill (; 5 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
@ -413,24 +413,24 @@
if
i32.const 0
i32.const 64
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 64
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -443,13 +443,13 @@
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
i32.gt_u
if
i32.const 0
i32.const 16
i32.const 53
i32.const 51
i32.const 54
i32.const 43
call $~lib/env/abort
unreachable
end
@ -467,15 +467,15 @@
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 8 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
local.get $2
i32.shr_u
i32.gt_u
if
i32.const 0
i32.const 16
i32.const 11
i32.const 65
i32.const 12
i32.const 57
call $~lib/env/abort
unreachable
end
@ -555,24 +555,14 @@
)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 11 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
)
(func $~lib/dataview/DataView#constructor (; 12 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
local.get $3
global.get $~lib/builtins/i32.MIN_VALUE
i32.eq
if
local.get $1
call $~lib/arraybuffer/ArrayBuffer#get:byteLength
local.get $2
i32.sub
local.set $3
end
local.get $3
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
i32.gt_u
local.get $2
local.get $3
@ -584,7 +574,7 @@
if
i32.const 0
i32.const 152
i32.const 22
i32.const 21
i32.const 6
call $~lib/env/abort
unreachable
@ -667,7 +657,7 @@
if
i32.const 0
i32.const 152
i32.const 45
i32.const 44
i32.const 6
call $~lib/env/abort
unreachable
@ -744,7 +734,7 @@
if
i32.const 0
i32.const 152
i32.const 59
i32.const 58
i32.const 7
call $~lib/env/abort
unreachable
@ -776,7 +766,7 @@
if
i32.const 0
i32.const 152
i32.const 70
i32.const 69
i32.const 49
call $~lib/env/abort
unreachable
@ -818,7 +808,7 @@
if
i32.const 0
i32.const 152
i32.const 78
i32.const 77
i32.const 7
call $~lib/env/abort
unreachable
@ -868,7 +858,7 @@
if
i32.const 0
i32.const 152
i32.const 87
i32.const 86
i32.const 7
call $~lib/env/abort
unreachable
@ -943,7 +933,7 @@
if
i32.const 0
i32.const 152
i32.const 181
i32.const 180
i32.const 6
call $~lib/env/abort
unreachable
@ -972,7 +962,7 @@
if
i32.const 0
i32.const 152
i32.const 93
i32.const 92
i32.const 49
call $~lib/env/abort
unreachable
@ -1012,7 +1002,7 @@
if
i32.const 0
i32.const 152
i32.const 101
i32.const 100
i32.const 6
call $~lib/env/abort
unreachable
@ -1048,7 +1038,7 @@
if
i32.const 0
i32.const 152
i32.const 110
i32.const 109
i32.const 6
call $~lib/env/abort
unreachable
@ -1084,7 +1074,7 @@
if
i32.const 0
i32.const 152
i32.const 190
i32.const 189
i32.const 6
call $~lib/env/abort
unreachable
@ -1119,7 +1109,7 @@
if
i32.const 0
i32.const 152
i32.const 119
i32.const 118
i32.const 6
call $~lib/env/abort
unreachable
@ -1159,7 +1149,7 @@
if
i32.const 0
i32.const 152
i32.const 128
i32.const 127
i32.const 6
call $~lib/env/abort
unreachable
@ -1193,7 +1183,7 @@
if
i32.const 0
i32.const 152
i32.const 134
i32.const 133
i32.const 49
call $~lib/env/abort
unreachable
@ -1219,7 +1209,7 @@
if
i32.const 0
i32.const 152
i32.const 142
i32.const 141
i32.const 6
call $~lib/env/abort
unreachable
@ -1253,7 +1243,7 @@
if
i32.const 0
i32.const 152
i32.const 150
i32.const 149
i32.const 6
call $~lib/env/abort
unreachable
@ -1287,7 +1277,7 @@
if
i32.const 0
i32.const 152
i32.const 199
i32.const 198
i32.const 6
call $~lib/env/abort
unreachable
@ -1315,7 +1305,7 @@
if
i32.const 0
i32.const 152
i32.const 155
i32.const 154
i32.const 49
call $~lib/env/abort
unreachable
@ -1341,7 +1331,7 @@
if
i32.const 0
i32.const 152
i32.const 163
i32.const 162
i32.const 6
call $~lib/env/abort
unreachable
@ -1375,7 +1365,7 @@
if
i32.const 0
i32.const 152
i32.const 171
i32.const 170
i32.const 6
call $~lib/env/abort
unreachable
@ -1409,7 +1399,7 @@
if
i32.const 0
i32.const 152
i32.const 207
i32.const 206
i32.const 6
call $~lib/env/abort
unreachable
@ -1429,7 +1419,43 @@
end
i64.store
)
(func $start:std/dataview (; 42 ;) (type $FUNCSIG$v)
(func $~lib/dataview/DataView#constructor|trampoline (; 42 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
block $2of2
block $1of2
block $0of2
block $outOfRange
global.get $~lib/argc
i32.const 1
i32.sub
br_table $0of2 $1of2 $2of2 $outOfRange
end
unreachable
end
i32.const 0
local.set $2
end
local.get $1
call $~lib/arraybuffer/ArrayBuffer#get:byteLength
local.set $3
end
local.get $0
local.get $1
local.get $2
local.get $3
call $~lib/dataview/DataView#constructor
)
(func $~lib/dataview/DataView#get:byteOffset (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=4
local.get $0
i32.load
i32.sub
)
(func $~lib/dataview/DataView#get:byteLength (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
)
(func $start:std/dataview (; 45 ;) (type $FUNCSIG$v)
global.get $~lib/memory/HEAP_BASE
i32.const 7
i32.add
@ -3121,10 +3147,47 @@
call $~lib/env/abort
unreachable
end
block (result i32)
i32.const 1
global.set $~lib/argc
i32.const 0
global.get $std/dataview/array
call $~lib/typedarray/Uint8Array#get:buffer
i32.const 0
i32.const 0
call $~lib/dataview/DataView#constructor|trampoline
end
global.set $std/dataview/view
global.get $std/dataview/view
call $~lib/dataview/DataView#get:byteOffset
i32.const 0
i32.eq
i32.eqz
if
i32.const 0
i32.const 192
i32.const 164
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/dataview/view
call $~lib/dataview/DataView#get:byteLength
i32.const 8
i32.eq
i32.eqz
if
i32.const 0
i32.const 192
i32.const 165
i32.const 0
call $~lib/env/abort
unreachable
end
)
(func $start (; 43 ;) (type $FUNCSIG$v)
(func $start (; 46 ;) (type $FUNCSIG$v)
call $start:std/dataview
)
(func $null (; 44 ;) (type $FUNCSIG$v)
(func $null (; 47 ;) (type $FUNCSIG$v)
)
)

View File

@ -89,7 +89,7 @@
if
i32.const 0
i32.const 48
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -104,7 +104,7 @@
if
i32.const 0
i32.const 48
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -17,10 +17,10 @@
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $std/date/creationTime (mut i64) (i64.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $std/date/date (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 80))
@ -31,7 +31,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -130,13 +130,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/runtime.register (; 7 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -148,24 +148,24 @@
if
i32.const 0
i32.const 48
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 48
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -9,14 +9,14 @@
(data (i32.const 48) "\01\00\00\00\06\00\00\00a\00b\00c\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/memory/HEAP_BASE i32 (i32.const 64))
(export "memory" (memory $0))
(export "table" (table $0))
(start $start)
(func $~lib/string/String#get:length (; 0 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
i32.const 1

View File

@ -1,11 +1,11 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 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$viii (func (param i32 i32 i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iij (func (param i32 i64) (result i32)))
(type $FUNCSIG$ij (func (param i64) (result i32)))
@ -30,10 +30,9 @@
(data (i32.const 112) "\03\00\00\00\14")
(data (i32.const 128) "s\00t\00d\00/\00m\00a\00p\00.\00t\00s")
(table $0 23 funcref)
(elem (i32.const 0) $null $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate $~lib/map/Map<i8,i32>~iterate)
(elem (i32.const 0) $null $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse $~lib/map/Map<i8,i32>~traverse)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
(export "memory" (memory $0))
(export "table" (table $0))
@ -128,23 +127,15 @@
i32.const 16
i32.add
)
(func $~lib/map/Map<i8,i32>~iterate (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/map/Map<i8,i32>~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
drop
local.get $0
i32.load offset=8
local.set $0
i32.const 1
global.set $~lib/argc
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
drop
)
(func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/string/String~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -155,7 +146,7 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -170,7 +161,7 @@
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -399,8 +390,8 @@
if
i32.const 0
i32.const 72
i32.const 53
i32.const 51
i32.const 54
i32.const 43
call $~lib/env/abort
unreachable
end

File diff suppressed because it is too large Load Diff

View File

@ -84,7 +84,7 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -99,7 +99,7 @@
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -10,10 +10,10 @@
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $std/new/AClass.aStaticField (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $std/new/aClass (mut i32) (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 48))
@ -24,7 +24,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -123,13 +123,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -141,24 +141,24 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -1,6 +1,5 @@
(module
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(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)))
@ -14,7 +13,7 @@
(data (i32.const 96) "\01\00\00\00*")
(data (i32.const 112) "s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s")
(table $0 4 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $std/object-literal/Foo~iterate $~lib/string/String~iterate)
(elem (i32.const 0) $null $~lib/string/String~traverse $std/object-literal/Foo~traverse $~lib/string/String~traverse)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
@ -22,7 +21,7 @@
(export "table" (table $0))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/allocator/arena/__mem_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
@ -114,15 +113,10 @@
i32.const 16
i32.add
)
(func $std/object-literal/Foo~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $std/object-literal/Foo~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load offset=4
local.tee $0
if
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
end
drop
)
(func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
@ -132,7 +126,7 @@
if
i32.const 0
i32.const 64
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -147,7 +141,7 @@
if
i32.const 0
i32.const 64
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -1,6 +1,5 @@
(module
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(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)))
@ -12,11 +11,11 @@
(data (i32.const 48) "\01\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(data (i32.const 96) "\01\00\00\00*\00\00\00\00\00\00\00\00\00\00\00s\00t\00d\00/\00o\00b\00j\00e\00c\00t\00-\00l\00i\00t\00e\00r\00a\00l\00.\00t\00s\00")
(table $0 4 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $std/object-literal/Foo~iterate $std/object-literal/Foo2~iterate)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(elem (i32.const 0) $null $~lib/string/String~traverse $std/object-literal/Foo~traverse $std/object-literal/Foo2~traverse)
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 156))
(global $~lib/capabilities i32 (i32.const 2))
@ -24,14 +23,14 @@
(export "table" (table $0))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $~lib/runtime/runtime.adjust (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -130,7 +129,7 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -142,27 +141,28 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $std/object-literal/Foo~iterate (; 6 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $0
i32.load offset=4
local.tee $2
if
local.get $2
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $2
local.get $1
call $~lib/string/String~iterate
end
)
(func $~lib/collector/dummy/__ref_register (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/collector/dummy/__ref_mark (; 6 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/runtime/runtime.register (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/object-literal/Foo~traverse (; 7 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
local.tee $1
if
local.get $1
call $~lib/collector/dummy/__ref_mark
local.get $1
call $~lib/string/String~traverse
end
)
(func $~lib/collector/dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/runtime/runtime.register (; 9 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -171,24 +171,24 @@
if
i32.const 0
i32.const 64
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 64
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -200,15 +200,15 @@
call $~lib/collector/dummy/__ref_register
local.get $0
)
(func $~lib/string/String#get:length (; 9 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/string/String#get:length (; 10 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
i32.const 1
i32.shr_u
)
(func $~lib/util/string/compareImpl (; 10 ;) (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 (; 11 ;) (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)
@ -261,7 +261,7 @@
end
local.get $5
)
(func $~lib/string/String.__eq (; 11 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__eq (; 12 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -305,7 +305,7 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $std/object-literal/bar (; 12 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $std/object-literal/bar (; 13 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
i32.const 1
@ -333,10 +333,10 @@
unreachable
end
)
(func $std/object-literal/Foo2~iterate (; 13 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $std/object-literal/Foo2~traverse (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $std/object-literal/bar2 (; 14 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $std/object-literal/bar2 (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
i32.const 2
@ -351,7 +351,7 @@
unreachable
end
)
(func $std/object-literal/Foo2#test (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $std/object-literal/Foo2#test (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
i32.const 3
@ -366,7 +366,7 @@
unreachable
end
)
(func $start:std/object-literal (; 16 ;) (type $FUNCSIG$v)
(func $start:std/object-literal (; 17 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -420,9 +420,9 @@
end
call $std/object-literal/Foo2#test
)
(func $start (; 17 ;) (type $FUNCSIG$v)
(func $start (; 18 ;) (type $FUNCSIG$v)
call $start:std/object-literal
)
(func $null (; 18 ;) (type $FUNCSIG$v)
(func $null (; 19 ;) (type $FUNCSIG$v)
)
)

View File

@ -167,7 +167,7 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -182,7 +182,7 @@
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -12,10 +12,10 @@
(data (i32.const 48) "\02\00\00\006\00\00\00s\00t\00d\00/\00o\00p\00e\00r\00a\00t\00o\00r\00-\00o\00v\00e\00r\00l\00o\00a\00d\00i\00n\00g\00.\00t\00s\00")
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $std/operator-overloading/a1 (mut i32) (i32.const 0))
(global $std/operator-overloading/a2 (mut i32) (i32.const 0))
@ -92,7 +92,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -191,13 +191,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -209,24 +209,24 @@
if
i32.const 0
i32.const 16
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 16
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -1,9 +1,9 @@
(module
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
@ -24,7 +24,7 @@
(data (i32.const 216) "\03\00\00\00\1e")
(data (i32.const 232) "~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s")
(table $0 4 funcref)
(elem (i32.const 0) $null $std/runtime/A~iterate $std/runtime/A~iterate $std/runtime/A~iterate)
(elem (i32.const 0) $null $std/runtime/A~traverse $std/runtime/A~traverse $std/runtime/A~traverse)
(global $std/runtime/register_ref (mut i32) (i32.const 0))
(global $std/runtime/barrier1 (mut i32) (i32.const 0))
(global $std/runtime/barrier2 (mut i32) (i32.const 0))
@ -44,7 +44,7 @@
(export "table" (table $0))
(export "main" (func $std/runtime/main))
(export ".capabilities" (global $~lib/capabilities))
(func $std/runtime/A~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $std/runtime/A~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/allocator/tlsf/Root#setSLMap (; 3 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
@ -2563,7 +2563,7 @@
if
i32.const 0
i32.const 232
i32.const 107
i32.const 64
i32.const 10
call $~lib/env/abort
unreachable
@ -2600,7 +2600,7 @@
if
i32.const 0
i32.const 232
i32.const 132
i32.const 89
i32.const 6
call $~lib/env/abort
unreachable
@ -2615,7 +2615,7 @@
if
i32.const 0
i32.const 232
i32.const 134
i32.const 91
i32.const 6
call $~lib/env/abort
unreachable
@ -2631,7 +2631,7 @@
if
i32.const 0
i32.const 232
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -2646,7 +2646,7 @@
if
i32.const 0
i32.const 232
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -2697,7 +2697,7 @@
else
i32.const 0
i32.const 24
i32.const 37
i32.const 41
i32.const 2
call $~lib/env/abort
unreachable
@ -2808,7 +2808,7 @@
if
i32.const 0
i32.const 24
i32.const 52
i32.const 56
i32.const 0
call $~lib/env/abort
unreachable
@ -2820,7 +2820,7 @@
if
i32.const 0
i32.const 24
i32.const 53
i32.const 57
i32.const 0
call $~lib/env/abort
unreachable
@ -2834,7 +2834,7 @@
if
i32.const 0
i32.const 24
i32.const 54
i32.const 58
i32.const 0
call $~lib/env/abort
unreachable
@ -2846,7 +2846,7 @@
if
i32.const 0
i32.const 24
i32.const 55
i32.const 59
i32.const 0
call $~lib/env/abort
unreachable
@ -2861,7 +2861,7 @@
if
i32.const 0
i32.const 24
i32.const 57
i32.const 61
i32.const 0
call $~lib/env/abort
unreachable
@ -2877,7 +2877,7 @@
if
i32.const 0
i32.const 24
i32.const 59
i32.const 63
i32.const 0
call $~lib/env/abort
unreachable
@ -2893,7 +2893,7 @@
if
i32.const 0
i32.const 24
i32.const 62
i32.const 66
i32.const 0
call $~lib/env/abort
unreachable
@ -2909,7 +2909,7 @@
if
i32.const 0
i32.const 24
i32.const 66
i32.const 70
i32.const 0
call $~lib/env/abort
unreachable
@ -2925,7 +2925,7 @@
if
i32.const 0
i32.const 24
i32.const 68
i32.const 72
i32.const 0
call $~lib/env/abort
unreachable
@ -2937,7 +2937,7 @@
if
i32.const 0
i32.const 24
i32.const 69
i32.const 73
i32.const 0
call $~lib/env/abort
unreachable
@ -2954,7 +2954,7 @@
if
i32.const 0
i32.const 24
i32.const 72
i32.const 76
i32.const 0
call $~lib/env/abort
unreachable
@ -2970,7 +2970,7 @@
if
i32.const 0
i32.const 24
i32.const 73
i32.const 77
i32.const 0
call $~lib/env/abort
unreachable

View File

@ -1,6 +1,7 @@
import "allocator/tlsf";
// import { classId, ADJUSTOBLOCK, ALLOCATE, REALLOCATE, REGISTER, DISCARD, HEADER, HEADER_SIZE, HEADER_MAGIC } from "runtime";
import { runtime, HEADER, HEADER_SIZE, HEADER_MAGIC, classId } from "runtime";
import { HEADER, HEADER_SIZE, HEADER_MAGIC } from "util/runtime";
import { runtime, __runtime_id } from "runtime";
@start export function main(): void {}
@ -24,9 +25,12 @@ var link_parentRef: usize = 0;
@global function __ref_collect(): void {
}
@global function __ref_mark(ref: usize): void {
}
class A {}
class B {}
assert(classId<A>() != classId<B>());
assert(__runtime_id<A>() != __runtime_id<B>());
function isPowerOf2(x: i32): bool {
return x != 0 && (x & (x - 1)) == 0;
@ -62,10 +66,10 @@ var ref3 = runtime.allocate(barrier2);
assert(ref1 == ref3); // reuses space of ref1 (free'd in realloc), ref2 (explicitly free'd)
var ref4 = runtime.allocate(barrier1);
runtime.register(ref4, classId<A>()); // should call __gc_register
runtime.register(ref4, __runtime_id<A>()); // should call __gc_register
assert(register_ref == ref4);
var header4 = changetype<HEADER>(register_ref - HEADER_SIZE);
assert(header4.classId == classId<A>());
assert(header4.classId == __runtime_id<A>());
assert(header4.payloadSize == barrier1);
var ref5 = runtime.allocate(10);

View File

@ -1,9 +1,9 @@
(module
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viiii (func (param i32 i32 i32 i32)))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$viiddddd (func (param i32 i32 f64 f64 f64 f64 f64)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$viii (func (param i32 i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iii (func (param i32 i32) (result i32)))
@ -18,11 +18,11 @@
(data (i32.const 152) "\03\00\00\00,\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00a\00l\00l\00o\00c\00a\00t\00o\00r\00/\00t\00l\00s\00f\00.\00t\00s\00")
(data (i32.const 216) "\03\00\00\00\1e\00\00\00\00\00\00\00\00\00\00\00~\00l\00i\00b\00/\00r\00u\00n\00t\00i\00m\00e\00.\00t\00s\00")
(table $0 4 funcref)
(elem (i32.const 0) $null $std/runtime/A~iterate $std/runtime/B~iterate $~lib/string/String~iterate)
(elem (i32.const 0) $null $std/runtime/A~traverse $std/runtime/B~traverse $~lib/string/String~traverse)
(global $std/runtime/register_ref (mut i32) (i32.const 0))
(global $std/runtime/link_ref (mut i32) (i32.const 0))
(global $std/runtime/link_parentRef (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $std/runtime/barrier1 (mut i32) (i32.const 0))
(global $std/runtime/barrier2 (mut i32) (i32.const 0))
(global $std/runtime/barrier3 (mut i32) (i32.const 0))
@ -43,7 +43,7 @@
(global $~lib/allocator/tlsf/TAGS i32 (i32.const 3))
(global $~lib/allocator/tlsf/Block.MAX_SIZE i32 (i32.const 1073741824))
(global $~lib/allocator/tlsf/SB_SIZE i32 (i32.const 256))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $std/runtime/ref1 (mut i32) (i32.const 0))
(global $std/runtime/header1 (mut i32) (i32.const 0))
(global $std/runtime/ref2 (mut i32) (i32.const 0))
@ -60,18 +60,18 @@
(export "table" (table $0))
(export "main" (func $std/runtime/main))
(export ".capabilities" (global $~lib/capabilities))
(func $std/runtime/A~iterate (; 2 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $std/runtime/A~traverse (; 2 ;) (type $FUNCSIG$vi) (param $0 i32)
)
(func $std/runtime/B~iterate (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $std/runtime/B~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
)
(func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/string/String~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $~lib/runtime/runtime.adjust (; 5 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -1469,7 +1469,7 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -1481,7 +1481,7 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/util/memory/memcpy (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
@ -3231,7 +3231,7 @@
(local $5 i32)
(local $6 i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
@ -3268,7 +3268,7 @@
i32.const 0
i32.store offset=12
local.get $5
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
local.set $6
local.get $6
@ -3285,7 +3285,7 @@
call $~lib/memory/memory.fill
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
if
local.get $0
@ -3295,7 +3295,7 @@
if
i32.const 0
i32.const 232
i32.const 107
i32.const 64
i32.const 10
call $~lib/env/abort
unreachable
@ -3337,24 +3337,24 @@
if
i32.const 0
i32.const 232
i32.const 132
i32.const 89
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $1
local.get $1
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 232
i32.const 134
i32.const 91
i32.const 6
call $~lib/env/abort
unreachable
@ -3371,24 +3371,24 @@
if
i32.const 0
i32.const 232
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 232
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -3402,13 +3402,13 @@
)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
)
(func $~lib/string/String#get:length (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
i32.const 1
@ -3423,7 +3423,7 @@
if
i32.const 0
i32.const 24
i32.const 29
i32.const 33
i32.const 0
call $~lib/env/abort
unreachable
@ -3436,7 +3436,7 @@
if
i32.const 0
i32.const 24
i32.const 35
i32.const 39
i32.const 0
call $~lib/env/abort
unreachable
@ -3457,7 +3457,7 @@
if
i32.const 0
i32.const 24
i32.const 37
i32.const 41
i32.const 2
call $~lib/env/abort
unreachable
@ -3549,18 +3549,18 @@
call $~lib/runtime/runtime.allocate
global.set $std/runtime/ref1
global.get $std/runtime/ref1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
global.set $std/runtime/header1
global.get $std/runtime/header1
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 24
i32.const 52
i32.const 56
i32.const 0
call $~lib/env/abort
unreachable
@ -3573,7 +3573,7 @@
if
i32.const 0
i32.const 24
i32.const 53
i32.const 57
i32.const 0
call $~lib/env/abort
unreachable
@ -3587,7 +3587,7 @@
if
i32.const 0
i32.const 24
i32.const 54
i32.const 58
i32.const 0
call $~lib/env/abort
unreachable
@ -3600,7 +3600,7 @@
if
i32.const 0
i32.const 24
i32.const 55
i32.const 59
i32.const 0
call $~lib/env/abort
unreachable
@ -3616,13 +3616,13 @@
if
i32.const 0
i32.const 24
i32.const 57
i32.const 61
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/runtime/ref2
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
global.set $std/runtime/header2
global.get $std/runtime/header2
@ -3633,7 +3633,7 @@
if
i32.const 0
i32.const 24
i32.const 59
i32.const 63
i32.const 0
call $~lib/env/abort
unreachable
@ -3650,7 +3650,7 @@
if
i32.const 0
i32.const 24
i32.const 62
i32.const 66
i32.const 0
call $~lib/env/abort
unreachable
@ -3669,13 +3669,13 @@
if
i32.const 0
i32.const 24
i32.const 66
i32.const 70
i32.const 0
call $~lib/env/abort
unreachable
end
global.get $std/runtime/register_ref
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
global.set $std/runtime/header4
global.get $std/runtime/header4
@ -3686,7 +3686,7 @@
if
i32.const 0
i32.const 24
i32.const 68
i32.const 72
i32.const 0
call $~lib/env/abort
unreachable
@ -3699,7 +3699,7 @@
if
i32.const 0
i32.const 24
i32.const 69
i32.const 73
i32.const 0
call $~lib/env/abort
unreachable
@ -3715,7 +3715,7 @@
if
i32.const 0
i32.const 24
i32.const 72
i32.const 76
i32.const 0
call $~lib/env/abort
unreachable
@ -3728,7 +3728,7 @@
if
i32.const 0
i32.const 24
i32.const 73
i32.const 77
i32.const 0
call $~lib/env/abort
unreachable

View File

@ -1,10 +1,10 @@
(module
(type $FUNCSIG$v (func))
(type $FUNCSIG$ii (func (param i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 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$vii (func (param i32 i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$iij (func (param i32 i64) (result i32)))
(type $FUNCSIG$ij (func (param i64) (result i32)))
@ -26,10 +26,9 @@
(data (i32.const 112) "\03\00\00\00\14")
(data (i32.const 128) "s\00t\00d\00/\00s\00e\00t\00.\00t\00s")
(table $0 23 funcref)
(elem (i32.const 0) $null $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/string/String~iterate $~lib/string/String~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate $~lib/set/Set<i8>~iterate)
(elem (i32.const 0) $null $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/string/String~traverse $~lib/string/String~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse $~lib/set/Set<i8>~traverse)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/capabilities i32 (i32.const 2))
(export "memory" (memory $0))
(export "table" (table $0))
@ -124,23 +123,15 @@
i32.const 16
i32.add
)
(func $~lib/set/Set<i8>~iterate (; 3 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/set/Set<i8>~traverse (; 3 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
drop
local.get $0
i32.load offset=8
local.set $0
i32.const 1
global.set $~lib/argc
local.get $0
local.get $1
call_indirect (type $FUNCSIG$vi)
drop
)
(func $~lib/string/String~iterate (; 4 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/string/String~traverse (; 4 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/runtime/runtime.register (; 5 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -151,7 +142,7 @@
if
i32.const 0
i32.const 24
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -166,7 +157,7 @@
if
i32.const 0
i32.const 24
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -395,8 +386,8 @@
if
i32.const 0
i32.const 72
i32.const 53
i32.const 51
i32.const 54
i32.const 43
call $~lib/env/abort
unreachable
end

File diff suppressed because it is too large Load Diff

View File

@ -39,7 +39,7 @@
if
i32.const 0
i32.const 240
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -1437,7 +1437,7 @@
if
i32.const 0
i32.const 280
i32.const 107
i32.const 64
i32.const 10
call $~lib/env/abort
unreachable
@ -1480,8 +1480,8 @@
if
i32.const 0
i32.const 240
i32.const 13
i32.const 72
i32.const 14
i32.const 64
call $~lib/env/abort
unreachable
end
@ -1541,7 +1541,7 @@
if
i32.const 0
i32.const 240
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -1585,7 +1585,7 @@
if
i32.const 0
i32.const 240
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -1629,7 +1629,7 @@
if
i32.const 0
i32.const 240
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable

View File

@ -30,11 +30,11 @@
(global $std/static-array/I i32 (i32.const 80))
(global $std/static-array/f i32 (i32.const 120))
(global $std/static-array/F i32 (i32.const 168))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741816))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/memory/HEAP_BASE i32 (i32.const 312))
(export "memory" (memory $0))
(export "table" (table $0))
@ -62,7 +62,7 @@
if
i32.const 0
i32.const 240
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -75,7 +75,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -1870,7 +1870,7 @@
(local $5 i32)
(local $6 i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
@ -1901,7 +1901,7 @@
i32.load
i32.store
local.get $5
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
local.set $6
local.get $6
@ -1918,7 +1918,7 @@
call $~lib/memory/memory.fill
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
if
local.get $0
@ -1928,7 +1928,7 @@
if
i32.const 0
i32.const 280
i32.const 107
i32.const 64
i32.const 10
call $~lib/env/abort
unreachable
@ -1972,15 +1972,15 @@
i32.gt_u
if
local.get $1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
local.get $2
i32.shr_u
i32.gt_u
if
i32.const 0
i32.const 240
i32.const 13
i32.const 72
i32.const 14
i32.const 64
call $~lib/env/abort
unreachable
end
@ -2070,7 +2070,7 @@
if
i32.const 0
i32.const 240
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -2138,7 +2138,7 @@
if
i32.const 0
i32.const 240
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -2206,7 +2206,7 @@
if
i32.const 0
i32.const 240
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable

View File

@ -1464,7 +1464,7 @@
if
i32.const 0
i32.const 136
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -1479,7 +1479,7 @@
if
i32.const 0
i32.const 136
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -1551,7 +1551,7 @@
if
i32.const 0
i32.const 96
i32.const 448
i32.const 449
i32.const 8
call $~lib/env/abort
unreachable
@ -1598,7 +1598,7 @@
if
i32.const 0
i32.const 96
i32.const 452
i32.const 453
i32.const 8
call $~lib/env/abort
unreachable
@ -1677,7 +1677,7 @@
if
i32.const 0
i32.const 96
i32.const 464
i32.const 465
i32.const 8
call $~lib/env/abort
unreachable
@ -1732,7 +1732,7 @@
if
i32.const 0
i32.const 96
i32.const 473
i32.const 474
i32.const 4
call $~lib/env/abort
unreachable

View File

@ -20,12 +20,12 @@
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $std/string-utf8/str (mut i32) (i32.const 16))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $std/string-utf8/len (mut i32) (i32.const 0))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $std/string-utf8/ptr (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/memory/HEAP_BASE i32 (i32.const 228))
(export "memory" (memory $0))
@ -33,7 +33,7 @@
(start $start)
(func $~lib/string/String#get:length (; 1 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
i32.const 1
@ -457,7 +457,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -472,13 +472,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/util/memory/memcpy (; 8 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
@ -1929,24 +1929,24 @@
if
i32.const 0
i32.const 136
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 136
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -2033,7 +2033,7 @@
if
i32.const 0
i32.const 96
i32.const 448
i32.const 449
i32.const 8
call $~lib/env/abort
unreachable
@ -2087,7 +2087,7 @@
if
i32.const 0
i32.const 96
i32.const 452
i32.const 453
i32.const 8
call $~lib/env/abort
unreachable
@ -2182,7 +2182,7 @@
if
i32.const 0
i32.const 96
i32.const 464
i32.const 465
i32.const 8
call $~lib/env/abort
unreachable
@ -2245,7 +2245,7 @@
if
i32.const 0
i32.const 96
i32.const 473
i32.const 474
i32.const 4
call $~lib/env/abort
unreachable

View File

@ -1,6 +1,5 @@
(module
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 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)))
@ -15,6 +14,7 @@
(type $FUNCSIG$v (func))
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32)))
(memory $0 1)
(data (i32.const 8) "\01\00\00\00 ")
@ -326,7 +326,7 @@
(data (i32.const 6696) "\01\00\00\00\16")
(data (i32.const 6712) "0\00.\000\000\000\000\003\005\006\008\009")
(table $0 11 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/string/String~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate)
(elem (i32.const 0) $null $~lib/string/String~traverse $~lib/array/Array<~lib/string/String>~traverse $~lib/array/Array<~lib/string/String>~traverse $~lib/string/String~traverse $~lib/array/Array<u32>~traverse $~lib/array/Array<u32>~traverse $~lib/array/Array<u32>~traverse $~lib/array/Array<u32>~traverse $~lib/array/Array<u32>~traverse $~lib/array/Array<u32>~traverse)
(global $std/string/str (mut i32) (i32.const 24))
(global $std/string/nullStr (mut i32) (i32.const 0))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
@ -335,7 +335,6 @@
(global $std/string/a (mut i32) (i32.const 0))
(global $std/string/b (mut i32) (i32.const 0))
(global $std/string/sa (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/util/number/_frc_plus (mut i64) (i64.const 0))
(global $~lib/util/number/_frc_minus (mut i64) (i64.const 0))
(global $~lib/util/number/_exp (mut i32) (i32.const 0))
@ -348,7 +347,7 @@
(export "getString" (func $std/string/getString))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/allocator/arena/__mem_allocate (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
@ -448,7 +447,7 @@
if
i32.const 0
i32.const 120
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -463,7 +462,7 @@
if
i32.const 0
i32.const 120
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -579,7 +578,7 @@
if
i32.const 0
i32.const 216
i32.const 25
i32.const 26
i32.const 4
call $~lib/env/abort
unreachable
@ -634,7 +633,7 @@
if
i32.const 0
i32.const 216
i32.const 165
i32.const 166
i32.const 4
call $~lib/env/abort
unreachable
@ -682,7 +681,7 @@
if
i32.const 0
i32.const 216
i32.const 78
i32.const 79
i32.const 4
call $~lib/env/abort
unreachable
@ -730,7 +729,7 @@
if
i32.const 0
i32.const 216
i32.const 134
i32.const 135
i32.const 4
call $~lib/env/abort
unreachable
@ -1881,7 +1880,7 @@
if
i32.const 0
i32.const 216
i32.const 282
i32.const 283
i32.const 4
call $~lib/env/abort
unreachable
@ -1976,7 +1975,7 @@
if
i32.const 0
i32.const 216
i32.const 303
i32.const 304
i32.const 4
call $~lib/env/abort
unreachable
@ -2072,7 +2071,7 @@
if
i32.const 0
i32.const 216
i32.const 150
i32.const 151
i32.const 4
call $~lib/env/abort
unreachable
@ -2494,7 +2493,7 @@
if
i32.const 0
i32.const 216
i32.const 570
i32.const 571
i32.const 10
call $~lib/env/abort
unreachable
@ -2766,7 +2765,7 @@
if
i32.const 0
i32.const 216
i32.const 324
i32.const 325
i32.const 4
call $~lib/env/abort
unreachable
@ -2796,7 +2795,7 @@
if
i32.const 0
i32.const 216
i32.const 329
i32.const 330
i32.const 6
call $~lib/env/abort
unreachable
@ -2916,39 +2915,30 @@
i32.const 1
call $~lib/runtime/runtime.register
)
(func $~lib/array/Array<~lib/string/String>~iterate (; 29 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/array/Array<~lib/string/String>~traverse (; 29 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
drop
local.get $0
i32.load offset=4
local.tee $2
local.tee $1
local.get $0
i32.load offset=8
i32.add
local.set $0
loop $continue|0
local.get $2
local.get $1
local.get $0
i32.lt_u
if
local.get $2
i32.load
local.set $3
i32.const 1
global.set $~lib/argc
local.get $3
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $2
i32.load
drop
local.get $1
i32.const 4
i32.add
local.set $2
local.set $1
br $continue|0
end
end
@ -3276,7 +3266,7 @@
if
i32.const 0
i32.const 120
i32.const 107
i32.const 64
i32.const 10
call $~lib/env/abort
unreachable
@ -3317,8 +3307,8 @@
if
i32.const 0
i32.const 1912
i32.const 13
i32.const 72
i32.const 14
i32.const 64
call $~lib/env/abort
unreachable
end
@ -3394,7 +3384,7 @@
if
i32.const 0
i32.const 216
i32.const 351
i32.const 352
i32.const 4
call $~lib/env/abort
unreachable
@ -3639,7 +3629,7 @@
if
i32.const 0
i32.const 1912
i32.const 95
i32.const 96
i32.const 45
call $~lib/env/abort
unreachable
@ -3653,7 +3643,7 @@
if
i32.const 0
i32.const 1912
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -3720,13 +3710,10 @@
end
end
)
(func $~lib/array/Array<u32>~iterate (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/array/Array<u32>~traverse (; 38 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
drop
)
(func $~lib/util/number/utoa32_lut (; 39 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
@ -5132,7 +5119,7 @@
if
i32.const 0
i32.const 216
i32.const 190
i32.const 191
i32.const 4
call $~lib/env/abort
unreachable
@ -5226,7 +5213,7 @@
if
i32.const 0
i32.const 120
i32.const 132
i32.const 89
i32.const 6
call $~lib/env/abort
unreachable
@ -5240,7 +5227,7 @@
if
i32.const 0
i32.const 120
i32.const 134
i32.const 91
i32.const 6
call $~lib/env/abort
unreachable

View File

@ -1,6 +1,5 @@
(module
(type $FUNCSIG$vi (func (param i32)))
(type $FUNCSIG$vii (func (param i32 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)))
@ -10,6 +9,7 @@
(type $FUNCSIG$dii (func (param i32 i32) (result f64)))
(type $FUNCSIG$di (func (param i32) (result f64)))
(type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32)))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$ij (func (param i64) (result i32)))
(type $FUNCSIG$viji (func (param i32 i64 i32)))
(type $FUNCSIG$id (func (param f64) (result i32)))
@ -176,13 +176,13 @@
(data (i32.const 6664) "\01\00\00\00\0e\00\00\00\00\00\00\00\00\00\00\001\00.\001\00e\00-\006\004\00")
(data (i32.const 6696) "\01\00\00\00\16\00\00\00\00\00\00\00\00\00\00\000\00.\000\000\000\000\003\005\006\008\009\00")
(table $0 11 funcref)
(elem (i32.const 0) $null $~lib/string/String~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/array/Array<~lib/string/String>~iterate $~lib/arraybuffer/ArrayBuffer~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u32>~iterate $~lib/array/Array<u64>~iterate $~lib/array/Array<u64>~iterate $~lib/array/Array<i16>~iterate $~lib/array/Array<i16>~iterate)
(elem (i32.const 0) $null $~lib/string/String~traverse $~lib/array/Array<~lib/string/String>~traverse $~lib/array/Array<~lib/string/String>~traverse $~lib/arraybuffer/ArrayBuffer~traverse $~lib/array/Array<u32>~traverse $~lib/array/Array<u32>~traverse $~lib/array/Array<u64>~traverse $~lib/array/Array<u64>~traverse $~lib/array/Array<i16>~traverse $~lib/array/Array<i16>~traverse)
(global $std/string/str (mut i32) (i32.const 24))
(global $std/string/nullStr (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 16))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/string/String.MAX_LENGTH i32 (i32.const 536870904))
(global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647))
@ -190,8 +190,7 @@
(global $std/string/a (mut i32) (i32.const 0))
(global $std/string/b (mut i32) (i32.const 0))
(global $std/string/sa (mut i32) (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741808))
(global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741808))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1))
(global $~lib/builtins/u64.MAX_VALUE i64 (i64.const -1))
@ -212,12 +211,12 @@
(export "getString" (func $std/string/getString))
(export ".capabilities" (global $~lib/capabilities))
(start $start)
(func $~lib/string/String~iterate (; 1 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/string/String~traverse (; 1 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $~lib/string/String#get:length (; 2 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
i32.const 1
@ -243,7 +242,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -342,7 +341,7 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
@ -354,7 +353,7 @@
i32.const 0
i32.store offset=12
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/collector/dummy/__ref_register (; 8 ;) (type $FUNCSIG$vi) (param $0 i32)
@ -369,24 +368,24 @@
if
i32.const 0
i32.const 120
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 120
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -519,7 +518,7 @@
if
i32.const 0
i32.const 216
i32.const 25
i32.const 26
i32.const 4
call $~lib/env/abort
unreachable
@ -584,7 +583,7 @@
if
i32.const 0
i32.const 216
i32.const 165
i32.const 166
i32.const 4
call $~lib/env/abort
unreachable
@ -650,7 +649,7 @@
if
i32.const 0
i32.const 216
i32.const 78
i32.const 79
i32.const 4
call $~lib/env/abort
unreachable
@ -714,7 +713,7 @@
if
i32.const 0
i32.const 216
i32.const 134
i32.const 135
i32.const 4
call $~lib/env/abort
unreachable
@ -2275,7 +2274,7 @@
if
i32.const 0
i32.const 216
i32.const 282
i32.const 283
i32.const 4
call $~lib/env/abort
unreachable
@ -2376,7 +2375,7 @@
if
i32.const 0
i32.const 216
i32.const 303
i32.const 304
i32.const 4
call $~lib/env/abort
unreachable
@ -2478,7 +2477,7 @@
if
i32.const 0
i32.const 216
i32.const 150
i32.const 151
i32.const 4
call $~lib/env/abort
unreachable
@ -2992,7 +2991,7 @@
if
i32.const 0
i32.const 216
i32.const 570
i32.const 571
i32.const 10
call $~lib/env/abort
unreachable
@ -3273,7 +3272,7 @@
if
i32.const 0
i32.const 216
i32.const 324
i32.const 325
i32.const 4
call $~lib/env/abort
unreachable
@ -3301,7 +3300,7 @@
if
i32.const 0
i32.const 216
i32.const 329
i32.const 330
i32.const 6
call $~lib/env/abort
unreachable
@ -3435,62 +3434,58 @@
i32.const 1
call $~lib/runtime/runtime.register
)
(func $~lib/array/Array<~lib/string/String>~iterate (; 35 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/dummy/__ref_mark (; 35 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/array/Array<~lib/string/String>~traverse (; 36 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 1
global.set $~lib/argc
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/dummy/__ref_mark
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.set $1
local.get $1
local.get $0
i32.load offset=8
i32.add
local.set $3
local.set $2
block $break|0
loop $continue|0
local.get $1
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
local.get $1
i32.load
local.set $4
i32.const 1
global.set $~lib/argc
local.get $4
local.set $3
local.get $3
call $~lib/collector/dummy/__ref_mark
local.get $3
call $~lib/string/String~traverse
local.get $1
call_indirect (type $FUNCSIG$vi)
local.get $4
local.get $1
call $~lib/string/String~iterate
local.get $2
i32.const 4
i32.add
local.set $2
local.set $1
end
br $continue|0
end
end
end
)
(func $~lib/arraybuffer/ArrayBuffer~iterate (; 36 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(func $~lib/arraybuffer/ArrayBuffer~traverse (; 37 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
)
(func $~lib/collector/dummy/__ref_link (; 37 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/dummy/__ref_link (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/collector/dummy/__ref_unlink (; 38 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/collector/dummy/__ref_unlink (; 39 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
nop
)
(func $~lib/runtime/runtime.makeArray (; 39 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/runtime/runtime.makeArray (; 40 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -3554,7 +3549,7 @@
end
local.get $4
)
(func $~lib/memory/memory.fill (; 40 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.fill (; 41 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3811,21 +3806,21 @@
end
end
)
(func $~lib/allocator/arena/__mem_free (; 41 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/allocator/arena/__mem_free (; 42 ;) (type $FUNCSIG$vi) (param $0 i32)
nop
)
(func $~lib/memory/memory.free (; 42 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.free (; 43 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
call $~lib/allocator/arena/__mem_free
)
(func $~lib/runtime/runtime.reallocate (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/runtime/runtime.reallocate (; 44 ;) (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.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
@ -3862,7 +3857,7 @@
i32.const 0
i32.store offset=12
local.get $5
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
local.set $6
local.get $6
@ -3879,7 +3874,7 @@
call $~lib/memory/memory.fill
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
if
local.get $0
@ -3889,7 +3884,7 @@
if
i32.const 0
i32.const 120
i32.const 107
i32.const 64
i32.const 10
call $~lib/env/abort
unreachable
@ -3922,7 +3917,7 @@
i32.store offset=4
local.get $0
)
(func $~lib/array/ensureCapacity (; 44 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/ensureCapacity (; 45 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3937,15 +3932,15 @@
i32.gt_u
if
local.get $1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
local.get $2
i32.shr_u
i32.gt_u
if
i32.const 0
i32.const 1912
i32.const 13
i32.const 72
i32.const 14
i32.const 64
call $~lib/env/abort
unreachable
end
@ -3996,7 +3991,7 @@
i32.store offset=8
end
)
(func $~lib/array/Array<~lib/string/String>#push (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>#push (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -4046,7 +4041,7 @@
i32.store offset=12
local.get $3
)
(func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 46 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 47 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
local.get $0
@ -4079,7 +4074,7 @@
call $~lib/collector/dummy/__ref_link
end
)
(func $~lib/string/String#split (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#split (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -4098,7 +4093,7 @@
if
i32.const 0
i32.const 216
i32.const 351
i32.const 352
i32.const 4
call $~lib/env/abort
unreachable
@ -4386,11 +4381,11 @@
end
local.get $9
)
(func $~lib/array/Array<~lib/string/String>#get:length (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>#get:length (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -4399,7 +4394,7 @@
i32.add
i32.load
)
(func $~lib/array/Array<~lib/string/String>#__get (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<~lib/string/String>#__get (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=12
@ -4407,7 +4402,7 @@
if
i32.const 0
i32.const 1912
i32.const 95
i32.const 96
i32.const 45
call $~lib/env/abort
unreachable
@ -4421,7 +4416,7 @@
if
i32.const 0
i32.const 1912
i32.const 98
i32.const 99
i32.const 61
call $~lib/env/abort
unreachable
@ -4430,7 +4425,7 @@
local.get $1
call $~lib/array/Array<~lib/string/String>#__unchecked_get
)
(func $~lib/util/number/decimalCount32 (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/decimalCount32 (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 100000
@ -4499,15 +4494,12 @@
unreachable
unreachable
)
(func $~lib/array/Array<u32>~iterate (; 52 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/array/Array<u32>~traverse (; 53 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/dummy/__ref_mark
)
(func $~lib/util/number/utoa32_lut (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/number/utoa32_lut (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -4650,7 +4642,7 @@
i32.store16
end
)
(func $~lib/util/number/itoa32 (; 54 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/itoa32 (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -4706,7 +4698,7 @@
i32.const 1
call $~lib/runtime/runtime.register
)
(func $~lib/util/number/utoa32 (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/utoa32 (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -4742,7 +4734,7 @@
i32.const 1
call $~lib/runtime/runtime.register
)
(func $~lib/util/number/decimalCount64 (; 56 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/decimalCount64 (; 57 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
local.get $0
i64.const 1000000000000000
@ -4811,7 +4803,7 @@
unreachable
unreachable
)
(func $~lib/util/number/utoa64_lut (; 57 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(func $~lib/util/number/utoa64_lut (; 58 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(local $3 i32)
(local $4 i64)
(local $5 i32)
@ -4939,7 +4931,7 @@
local.get $2
call $~lib/util/number/utoa32_lut
)
(func $~lib/util/number/utoa64 (; 58 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/utoa64 (; 59 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -5007,7 +4999,7 @@
i32.const 1
call $~lib/runtime/runtime.register
)
(func $~lib/util/number/itoa64 (; 59 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/itoa64 (; 60 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -5097,27 +5089,24 @@
i32.const 1
call $~lib/runtime/runtime.register
)
(func $~lib/builtins/isFinite<f64> (; 60 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/builtins/isFinite<f64> (; 61 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
local.get $0
local.get $0
f64.sub
f64.const 0
f64.eq
)
(func $~lib/builtins/isNaN<f64> (; 61 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/builtins/isNaN<f64> (; 62 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
local.get $0
local.get $0
f64.ne
)
(func $~lib/array/Array<u64>~iterate (; 62 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/array/Array<u64>~traverse (; 63 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/dummy/__ref_mark
)
(func $~lib/array/Array<u64>#__unchecked_get (; 63 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
(func $~lib/array/Array<u64>#__unchecked_get (; 64 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
local.get $0
i32.load offset=4
local.get $1
@ -5126,15 +5115,12 @@
i32.add
i64.load
)
(func $~lib/array/Array<i16>~iterate (; 64 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
i32.const 1
global.set $~lib/argc
(func $~lib/array/Array<i16>~traverse (; 65 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.load
local.get $1
call_indirect (type $FUNCSIG$vi)
call $~lib/collector/dummy/__ref_mark
)
(func $~lib/array/Array<i16>#__unchecked_get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i16>#__unchecked_get (; 66 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load offset=4
local.get $1
@ -5143,7 +5129,7 @@
i32.add
i32.load16_s
)
(func $~lib/util/number/genDigits (; 66 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(func $~lib/util/number/genDigits (; 67 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(local $7 i32)
(local $8 i64)
(local $9 i64)
@ -5714,7 +5700,7 @@
end
local.get $15
)
(func $~lib/util/number/prettify (; 67 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/prettify (; 68 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -6047,7 +6033,7 @@
unreachable
unreachable
)
(func $~lib/util/number/dtoa_core (; 68 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/util/number/dtoa_core (; 69 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(local $2 i32)
(local $3 f64)
(local $4 i32)
@ -6485,7 +6471,7 @@
local.get $2
i32.add
)
(func $~lib/string/String#substring (; 69 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/string/String#substring (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -6501,7 +6487,7 @@
if
i32.const 0
i32.const 216
i32.const 190
i32.const 191
i32.const 4
call $~lib/env/abort
unreachable
@ -6603,7 +6589,7 @@
i32.const 1
call $~lib/runtime/runtime.register
)
(func $~lib/runtime/runtime.discard (; 70 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/runtime/runtime.discard (; 71 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
global.get $~lib/memory/HEAP_BASE
@ -6612,24 +6598,24 @@
if
i32.const 0
i32.const 120
i32.const 132
i32.const 89
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $1
local.get $1
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 120
i32.const 134
i32.const 91
i32.const 6
call $~lib/env/abort
unreachable
@ -6637,7 +6623,7 @@
local.get $1
call $~lib/memory/memory.free
)
(func $~lib/util/number/dtoa (; 71 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/util/number/dtoa (; 72 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -6684,7 +6670,7 @@
call $~lib/runtime/runtime.discard
local.get $3
)
(func $start:std/string (; 72 ;) (type $FUNCSIG$v)
(func $start:std/string (; 73 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -10076,12 +10062,12 @@
unreachable
end
)
(func $std/string/getString (; 73 ;) (type $FUNCSIG$i) (result i32)
(func $std/string/getString (; 74 ;) (type $FUNCSIG$i) (result i32)
global.get $std/string/str
)
(func $start (; 74 ;) (type $FUNCSIG$v)
(func $start (; 75 ;) (type $FUNCSIG$v)
call $start:std/string
)
(func $null (; 75 ;) (type $FUNCSIG$v)
(func $null (; 76 ;) (type $FUNCSIG$v)
)
)

View File

@ -144,7 +144,7 @@
if
i32.const 0
i32.const 72
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
@ -159,7 +159,7 @@
if
i32.const 0
i32.const 72
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -388,8 +388,8 @@
if
i32.const 0
i32.const 112
i32.const 53
i32.const 51
i32.const 54
i32.const 43
call $~lib/env/abort
unreachable
end

View File

@ -39,12 +39,12 @@
(global $std/symbol/sym1 (mut i32) (i32.const 0))
(global $std/symbol/sym2 (mut i32) (i32.const 0))
(global $~lib/symbol/stringToId (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/util/runtime/HEADER_SIZE i32 (i32.const 8))
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/util/runtime/HEADER_MAGIC i32 (i32.const -1520547049))
(global $~lib/ASC_NO_ASSERT i32 (i32.const 0))
(global $~lib/runtime/runtime.MAX_BYTELENGTH i32 (i32.const 1073741816))
(global $~lib/util/runtime/MAX_BYTELENGTH i32 (i32.const 1073741816))
(global $~lib/symbol/idToString (mut i32) (i32.const 0))
(global $std/symbol/sym3 (mut i32) (i32.const 0))
(global $std/symbol/sym4 (mut i32) (i32.const 0))
@ -83,7 +83,7 @@
i32.const 1
i32.const 32
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
i32.const 1
i32.sub
@ -182,13 +182,13 @@
call $~lib/memory/memory.allocate
local.set $1
local.get $1
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.store
local.get $1
local.get $0
i32.store offset=4
local.get $1
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.add
)
(func $~lib/runtime/runtime.register (; 6 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
@ -200,24 +200,24 @@
if
i32.const 0
i32.const 72
i32.const 145
i32.const 102
i32.const 6
call $~lib/env/abort
unreachable
end
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
local.set $2
local.get $2
i32.load
global.get $~lib/runtime/HEADER_MAGIC
global.get $~lib/util/runtime/HEADER_MAGIC
i32.eq
i32.eqz
if
i32.const 0
i32.const 72
i32.const 147
i32.const 104
i32.const 6
call $~lib/env/abort
unreachable
@ -487,13 +487,13 @@
(func $~lib/arraybuffer/ArrayBuffer#constructor (; 8 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $1
global.get $~lib/runtime/runtime.MAX_BYTELENGTH
global.get $~lib/util/runtime/MAX_BYTELENGTH
i32.gt_u
if
i32.const 0
i32.const 112
i32.const 53
i32.const 51
i32.const 54
i32.const 43
call $~lib/env/abort
unreachable
end
@ -630,7 +630,7 @@
)
(func $~lib/string/String#get:length (; 13 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/runtime/HEADER_SIZE
global.get $~lib/util/runtime/HEADER_SIZE
i32.sub
i32.load offset=4
i32.const 1

File diff suppressed because one or more lines are too long

View File

@ -193,9 +193,9 @@ assert(sub32.byteLength == 3 * sizeof<i32>());
assert(isInt32ArrayEqual(sub32, <i32[]>[0, 0, 0]));
assert(isInt32ArrayEqual(arr32, <i32[]>[1, 0, 0, 0, 2]));
import { runtime } from "runtime";
import { MAX_BYTELENGTH } from "util/runtime";
const MAX_F64LENGTH = <u32>runtime.MAX_BYTELENGTH >> alignof<f64>();
const MAX_F64LENGTH = <u32>MAX_BYTELENGTH >> alignof<f64>();
new Float64Array(MAX_F64LENGTH); // 1GB
// new Float64Array(MAX_F64 + 1); // throws

File diff suppressed because one or more lines are too long