Rework constructor handling (#446)

This commit is contained in:
Daniel Wirtz
2019-02-02 16:03:21 +01:00
committed by GitHub
parent 75328f3feb
commit 2131c51932
30 changed files with 3308 additions and 2809 deletions

View File

@ -493,25 +493,22 @@
get_local $2
call $~lib/internal/arraybuffer/allocateUnsafe
set_local $3
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $4
get_local $4
i32.const 0
i32.store
get_local $4
i32.const 0
i32.store offset=4
get_local $4
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
end
tee_local $0
get_local $3
i32.store
get_local $0
@ -570,25 +567,22 @@
get_local $2
call $~lib/internal/arraybuffer/allocateUnsafe
set_local $3
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $4
get_local $4
i32.const 0
i32.store
get_local $4
i32.const 0
i32.store offset=4
get_local $4
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
end
tee_local $0
get_local $3
i32.store
get_local $0
@ -624,7 +618,17 @@
get_local $2
i32.store offset=8
)
(func $~lib/array/Array<Ref>#constructor (; 12 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array-literal/Ref#constructor (; 12 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.eqz
if
i32.const 0
call $~lib/memory/memory.allocate
set_local $0
end
get_local $0
)
(func $~lib/array/Array<Ref>#constructor (; 13 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -647,25 +651,22 @@
get_local $2
call $~lib/internal/arraybuffer/allocateUnsafe
set_local $3
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $4
get_local $4
i32.const 0
i32.store
get_local $4
i32.const 0
i32.store offset=4
get_local $4
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
end
tee_local $0
get_local $3
i32.store
get_local $0
@ -683,7 +684,7 @@
call $~lib/internal/memory/memset
get_local $0
)
(func $~lib/array/Array<Ref>#__unchecked_set (; 13 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<Ref>#__unchecked_set (; 14 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
get_local $0
@ -701,23 +702,17 @@
get_local $2
i32.store offset=8
)
(func $std/array-literal/RefWithCtor#constructor (; 14 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(func $std/array-literal/RefWithCtor#constructor (; 15 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 0
call $~lib/memory/memory.allocate
set_local $1
get_local $1
end
tee_local $0
i32.eqz
if
i32.const 0
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
get_local $0
)
(func $~lib/array/Array<RefWithCtor>#constructor (; 15 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<RefWithCtor>#constructor (; 16 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -740,25 +735,22 @@
get_local $2
call $~lib/internal/arraybuffer/allocateUnsafe
set_local $3
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $4
get_local $4
i32.const 0
i32.store
get_local $4
i32.const 0
i32.store offset=4
get_local $4
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
end
tee_local $0
get_local $3
i32.store
get_local $0
@ -776,7 +768,7 @@
call $~lib/internal/memory/memset
get_local $0
)
(func $~lib/array/Array<RefWithCtor>#__unchecked_set (; 16 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/array/Array<RefWithCtor>#__unchecked_set (; 17 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
get_local $0
@ -794,7 +786,7 @@
get_local $2
i32.store offset=8
)
(func $start (; 17 ;) (type $v)
(func $start (; 18 ;) (type $v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1160,30 +1152,18 @@
set_local $3
get_local $3
i32.const 0
block (result i32)
i32.const 0
call $~lib/memory/memory.allocate
set_local $2
get_local $2
end
i32.const 0
call $std/array-literal/Ref#constructor
call $~lib/array/Array<Ref>#__unchecked_set
get_local $3
i32.const 1
block (result i32)
i32.const 0
call $~lib/memory/memory.allocate
set_local $2
get_local $2
end
i32.const 0
call $std/array-literal/Ref#constructor
call $~lib/array/Array<Ref>#__unchecked_set
get_local $3
i32.const 2
block (result i32)
i32.const 0
call $~lib/memory/memory.allocate
set_local $2
get_local $2
end
i32.const 0
call $std/array-literal/Ref#constructor
call $~lib/array/Array<Ref>#__unchecked_set
get_local $3
end
@ -1246,6 +1226,6 @@
unreachable
end
)
(func $null (; 18 ;) (type $v)
(func $null (; 19 ;) (type $v)
)
)

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,7 @@
(module
(type $ii (func (param i32) (result i32)))
(type $v (func))
(type $FUNCSIG$i (func (result i32)))
(memory $0 0)
(table $0 1 anyfunc)
(elem (i32.const 0) $null)
@ -82,7 +83,25 @@
set_global $~lib/allocator/arena/offset
get_local $1
)
(func $start (; 1 ;) (type $v)
(func $std/constructor/EmptyCtorWithFieldInit#constructor (; 1 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 4
call $~lib/allocator/arena/__memory_allocate
tee_local $0
i32.const 1
i32.store
get_local $0
)
(func $std/constructor/EmptyCtorWithFieldNoInit#constructor (; 2 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 4
call $~lib/allocator/arena/__memory_allocate
tee_local $0
i32.const 0
i32.store
get_local $0
)
(func $start (; 3 ;) (type $v)
(local $0 i32)
i32.const 8
set_global $~lib/allocator/arena/startOffset
@ -91,36 +110,16 @@
i32.const 0
call $~lib/allocator/arena/__memory_allocate
set_global $std/constructor/emptyCtor
i32.const 4
call $~lib/allocator/arena/__memory_allocate
tee_local $0
i32.const 1
i32.store
get_local $0
call $std/constructor/EmptyCtorWithFieldInit#constructor
set_global $std/constructor/emptyCtorWithFieldInit
i32.const 4
call $~lib/allocator/arena/__memory_allocate
tee_local $0
i32.const 0
i32.store
get_local $0
call $std/constructor/EmptyCtorWithFieldNoInit#constructor
set_global $std/constructor/emptyCtorWithFieldNoInit
i32.const 0
call $~lib/allocator/arena/__memory_allocate
set_global $std/constructor/none
i32.const 4
call $~lib/allocator/arena/__memory_allocate
tee_local $0
i32.const 1
i32.store
get_local $0
call $std/constructor/EmptyCtorWithFieldInit#constructor
set_global $std/constructor/justFieldInit
i32.const 4
call $~lib/allocator/arena/__memory_allocate
tee_local $0
i32.const 0
i32.store
get_local $0
call $std/constructor/EmptyCtorWithFieldNoInit#constructor
set_global $std/constructor/justFieldNoInit
i32.const 0
call $~lib/allocator/arena/__memory_allocate
@ -139,8 +138,6 @@
i32.const 0
call $~lib/allocator/arena/__memory_allocate
set_global $std/constructor/ctorAllocates
i32.const 0
set_local $0
block (result i32)
get_global $std/constructor/b
if
@ -151,15 +148,15 @@
get_local $0
i32.eqz
end
if (result i32)
if
i32.const 0
call $~lib/allocator/arena/__memory_allocate
else
get_local $0
set_local $0
end
get_local $0
set_global $std/constructor/ctorConditionallyAllocates
)
(func $null (; 2 ;) (type $v)
(func $null (; 4 ;) (type $v)
nop
)
)

View File

@ -110,60 +110,78 @@
return
)
(func $std/constructor/EmptyCtor#constructor (; 2 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 0
call $~lib/memory/memory.allocate
set_local $1
get_local $1
end
tee_local $0
i32.eqz
if
i32.const 0
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
get_local $0
)
(func $std/constructor/EmptyCtorWithFieldInit#constructor (; 3 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 4
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 1
i32.store
get_local $1
end
tee_local $0
i32.eqz
if
i32.const 4
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
get_local $0
i32.const 1
i32.store
get_local $0
)
(func $std/constructor/EmptyCtorWithFieldNoInit#constructor (; 4 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 4
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
end
tee_local $0
i32.eqz
if
i32.const 4
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
)
(func $std/constructor/CtorReturns#constructor (; 5 ;) (type $ii) (param $0 i32) (result i32)
(func $std/constructor/None#constructor (; 5 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.eqz
if
i32.const 0
call $~lib/memory/memory.allocate
set_local $0
end
get_local $0
)
(func $std/constructor/JustFieldInit#constructor (; 6 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.eqz
if
i32.const 4
call $~lib/memory/memory.allocate
set_local $0
end
get_local $0
i32.const 1
i32.store
get_local $0
)
(func $std/constructor/JustFieldNoInit#constructor (; 7 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.eqz
if
i32.const 4
call $~lib/memory/memory.allocate
set_local $0
end
get_local $0
i32.const 0
i32.store
get_local $0
)
(func $std/constructor/CtorReturns#constructor (; 8 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
block $~lib/memory/memory.allocate|inlined.0 (result i32)
i32.const 0
@ -173,7 +191,7 @@
br $~lib/memory/memory.allocate|inlined.0
end
)
(func $std/constructor/CtorConditionallyReturns#constructor (; 6 ;) (type $ii) (param $0 i32) (result i32)
(func $std/constructor/CtorConditionallyReturns#constructor (; 9 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_global $std/constructor/b
if
@ -187,72 +205,53 @@
return
end
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 0
call $~lib/memory/memory.allocate
set_local $1
get_local $1
end
tee_local $0
i32.eqz
if
i32.const 0
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
)
(func $std/constructor/CtorAllocates#constructor (; 7 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
)
(func $std/constructor/CtorAllocates#constructor (; 10 ;) (type $ii) (param $0 i32) (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 0
call $~lib/memory/memory.allocate
set_local $1
get_local $1
set_local $0
end
tee_local $0
get_local $0
end
tee_local $0
drop
get_local $0
)
(func $std/constructor/CtorConditionallyAllocates#constructor (; 8 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
(func $std/constructor/CtorConditionallyAllocates#constructor (; 11 ;) (type $ii) (param $0 i32) (result i32)
get_global $std/constructor/b
if
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 0
call $~lib/memory/memory.allocate
set_local $1
get_local $1
set_local $0
end
tee_local $0
get_local $0
end
tee_local $0
drop
end
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 0
call $~lib/memory/memory.allocate
set_local $1
get_local $1
end
tee_local $0
i32.eqz
if
i32.const 0
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
get_local $0
)
(func $start (; 9 ;) (type $v)
(local $0 i32)
(func $start (; 12 ;) (type $v)
get_global $HEAP_BASE
get_global $~lib/internal/allocator/AL_MASK
i32.add
@ -272,32 +271,14 @@
i32.const 0
call $std/constructor/EmptyCtorWithFieldNoInit#constructor
set_global $std/constructor/emptyCtorWithFieldNoInit
block (result i32)
i32.const 0
call $~lib/memory/memory.allocate
set_local $0
get_local $0
end
i32.const 0
call $std/constructor/None#constructor
set_global $std/constructor/none
block (result i32)
i32.const 4
call $~lib/memory/memory.allocate
set_local $0
get_local $0
i32.const 1
i32.store
get_local $0
end
i32.const 0
call $std/constructor/JustFieldInit#constructor
set_global $std/constructor/justFieldInit
block (result i32)
i32.const 4
call $~lib/memory/memory.allocate
set_local $0
get_local $0
i32.const 0
i32.store
get_local $0
end
i32.const 0
call $std/constructor/JustFieldNoInit#constructor
set_global $std/constructor/justFieldNoInit
i32.const 0
call $std/constructor/CtorReturns#constructor
@ -312,6 +293,6 @@
call $std/constructor/CtorConditionallyAllocates#constructor
set_global $std/constructor/ctorConditionallyAllocates
)
(func $null (; 10 ;) (type $v)
(func $null (; 13 ;) (type $v)
)
)

View File

@ -8,7 +8,6 @@
(type $iiii (func (param i32 i32 i32) (result i32)))
(type $v (func))
(type $FUNCSIG$vii (func (param i32 i32)))
(type $FUNCSIG$i (func (result i32)))
(type $FUNCSIG$iiii (func (param i32 i32 i32) (result i32)))
(type $FUNCSIG$dii (func (param i32 i32) (result f64)))
(type $FUNCSIG$jii (func (param i32 i32) (result i64)))
@ -339,19 +338,34 @@
end
end
)
(func $~lib/internal/typedarray/TypedArray<u8>#constructor (; 4 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
i32.const 8
(func $~lib/internal/typedarray/TypedArray<u8>#constructor (; 4 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
get_local $1
i32.const 1073741816
i32.gt_u
if
i32.const 0
i32.const 8
i32.const 23
i32.const 34
call $~lib/env/abort
unreachable
end
get_local $1
call $~lib/internal/arraybuffer/allocateUnsafe
tee_local $1
tee_local $2
i32.const 8
i32.add
i32.const 8
get_local $1
call $~lib/internal/memory/memset
i32.const 12
call $~lib/allocator/arena/__memory_allocate
tee_local $0
get_local $0
i32.eqz
if
i32.const 12
call $~lib/allocator/arena/__memory_allocate
set_local $0
end
get_local $0
i32.const 0
i32.store
get_local $0
@ -361,13 +375,13 @@
i32.const 0
i32.store offset=8
get_local $0
get_local $1
get_local $2
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 8
get_local $1
i32.store offset=8
get_local $0
)
@ -1082,6 +1096,9 @@
set_global $~lib/allocator/arena/startOffset
get_global $~lib/allocator/arena/startOffset
set_global $~lib/allocator/arena/offset
i32.const 12
call $~lib/allocator/arena/__memory_allocate
i32.const 8
call $~lib/internal/typedarray/TypedArray<u8>#constructor
set_global $std/dataview/array
get_global $std/dataview/array

View File

@ -448,28 +448,25 @@
get_local $5
get_local $2
call $~lib/internal/memory/memset
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 12
call $~lib/memory/memory.allocate
set_local $5
get_local $5
i32.const 0
i32.store
get_local $5
i32.const 0
i32.store offset=4
get_local $5
i32.const 0
i32.store offset=8
get_local $5
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
end
tee_local $0
get_local $3
i32.store
get_local $0
@ -480,7 +477,21 @@
i32.store offset=8
get_local $0
)
(func $~lib/internal/typedarray/TypedArray<u8>#__set (; 7 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/typedarray/Uint8Array#constructor (; 7 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
get_local $0
i32.eqz
if
i32.const 12
call $~lib/memory/memory.allocate
set_local $0
end
get_local $0
get_local $1
call $~lib/internal/typedarray/TypedArray<u8>#constructor
set_local $0
get_local $0
)
(func $~lib/internal/typedarray/TypedArray<u8>#__set (; 8 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
get_local $1
@ -513,8 +524,7 @@
get_local $2
i32.store8 offset=8
)
(func $~lib/dataview/DataView#constructor (; 8 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
(func $~lib/dataview/DataView#constructor (; 9 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
get_local $3
get_global $~lib/builtins/i32.MIN_VALUE
i32.eq
@ -562,29 +572,24 @@
unreachable
end
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 12
call $~lib/memory/memory.allocate
set_local $4
get_local $4
get_local $1
i32.store
get_local $4
get_local $2
i32.store offset=4
get_local $4
get_local $3
i32.store offset=8
get_local $4
end
tee_local $0
i32.eqz
if
i32.const 12
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
get_local $0
get_local $1
i32.store
get_local $0
get_local $2
i32.store offset=4
get_local $0
get_local $3
i32.store offset=8
get_local $0
)
(func $~lib/polyfills/bswap<u32> (; 9 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<u32> (; 10 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.const -16711936
i32.and
@ -598,7 +603,7 @@
i32.or
return
)
(func $~lib/dataview/DataView#getFloat32 (; 10 ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32)
(func $~lib/dataview/DataView#getFloat32 (; 11 ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -653,7 +658,7 @@
f32.reinterpret/i32
end
)
(func $~lib/polyfills/bswap<u64> (; 11 ;) (type $II) (param $0 i64) (result i64)
(func $~lib/polyfills/bswap<u64> (; 12 ;) (type $II) (param $0 i64) (result i64)
(local $1 i64)
(local $2 i64)
(local $3 i64)
@ -692,7 +697,7 @@
i64.rotr
return
)
(func $~lib/dataview/DataView#getFloat64 (; 12 ;) (type $iiiF) (param $0 i32) (param $1 i32) (param $2 i32) (result f64)
(func $~lib/dataview/DataView#getFloat64 (; 13 ;) (type $iiiF) (param $0 i32) (param $1 i32) (param $2 i32) (result f64)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -747,7 +752,7 @@
f64.reinterpret/i64
end
)
(func $~lib/dataview/DataView#getInt8 (; 13 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/dataview/DataView#getInt8 (; 14 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -786,7 +791,7 @@
i32.add
i32.load8_s offset=8
)
(func $~lib/polyfills/bswap<i16> (; 14 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<i16> (; 15 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.const 8
i32.shl
@ -802,7 +807,7 @@
i32.or
return
)
(func $~lib/dataview/DataView#getInt16 (; 15 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getInt16 (; 16 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -852,7 +857,7 @@
call $~lib/polyfills/bswap<i16>
end
)
(func $~lib/polyfills/bswap<i32> (; 16 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<i32> (; 17 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.const -16711936
i32.and
@ -866,7 +871,7 @@
i32.or
return
)
(func $~lib/dataview/DataView#getInt32 (; 17 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getInt32 (; 18 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -916,7 +921,7 @@
call $~lib/polyfills/bswap<i32>
end
)
(func $~lib/polyfills/bswap<i64> (; 18 ;) (type $II) (param $0 i64) (result i64)
(func $~lib/polyfills/bswap<i64> (; 19 ;) (type $II) (param $0 i64) (result i64)
(local $1 i64)
(local $2 i64)
(local $3 i64)
@ -955,7 +960,7 @@
i64.rotr
return
)
(func $~lib/dataview/DataView#getInt64 (; 19 ;) (type $iiiI) (param $0 i32) (param $1 i32) (param $2 i32) (result i64)
(func $~lib/dataview/DataView#getInt64 (; 20 ;) (type $iiiI) (param $0 i32) (param $1 i32) (param $2 i32) (result i64)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1005,7 +1010,7 @@
call $~lib/polyfills/bswap<i64>
end
)
(func $~lib/dataview/DataView#getUint8 (; 20 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/dataview/DataView#getUint8 (; 21 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -1044,7 +1049,7 @@
i32.add
i32.load8_u offset=8
)
(func $~lib/polyfills/bswap<u16> (; 21 ;) (type $ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<u16> (; 22 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.const 8
i32.shl
@ -1058,7 +1063,7 @@
i32.or
return
)
(func $~lib/dataview/DataView#getUint16 (; 22 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getUint16 (; 23 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1108,7 +1113,7 @@
call $~lib/polyfills/bswap<u16>
end
)
(func $~lib/dataview/DataView#getUint32 (; 23 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getUint32 (; 24 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1158,7 +1163,7 @@
call $~lib/polyfills/bswap<u32>
end
)
(func $~lib/dataview/DataView#getUint64 (; 24 ;) (type $iiiI) (param $0 i32) (param $1 i32) (param $2 i32) (result i64)
(func $~lib/dataview/DataView#getUint64 (; 25 ;) (type $iiiI) (param $0 i32) (param $1 i32) (param $2 i32) (result i64)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1208,7 +1213,7 @@
call $~lib/polyfills/bswap<u64>
end
)
(func $~lib/dataview/DataView#setFloat32 (; 25 ;) (type $iifiv) (param $0 i32) (param $1 i32) (param $2 f32) (param $3 i32)
(func $~lib/dataview/DataView#setFloat32 (; 26 ;) (type $iifiv) (param $0 i32) (param $1 i32) (param $2 f32) (param $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1265,7 +1270,7 @@
i32.store offset=8
end
)
(func $~lib/dataview/DataView#setFloat64 (; 26 ;) (type $iiFiv) (param $0 i32) (param $1 i32) (param $2 f64) (param $3 i32)
(func $~lib/dataview/DataView#setFloat64 (; 27 ;) (type $iiFiv) (param $0 i32) (param $1 i32) (param $2 f64) (param $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1322,7 +1327,7 @@
i64.store offset=8
end
)
(func $~lib/dataview/DataView#setInt8 (; 27 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/dataview/DataView#setInt8 (; 28 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1362,7 +1367,7 @@
get_local $2
i32.store8 offset=8
)
(func $~lib/dataview/DataView#setInt16 (; 28 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/dataview/DataView#setInt16 (; 29 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1410,7 +1415,7 @@
end
i32.store16 offset=8
)
(func $~lib/dataview/DataView#setInt32 (; 29 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/dataview/DataView#setInt32 (; 30 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1458,7 +1463,7 @@
end
i32.store offset=8
)
(func $~lib/dataview/DataView#setInt64 (; 30 ;) (type $iiIiv) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32)
(func $~lib/dataview/DataView#setInt64 (; 31 ;) (type $iiIiv) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1506,7 +1511,7 @@
end
i64.store offset=8
)
(func $~lib/dataview/DataView#setUint8 (; 31 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/dataview/DataView#setUint8 (; 32 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -1546,7 +1551,7 @@
get_local $2
i32.store8 offset=8
)
(func $~lib/dataview/DataView#setUint16 (; 32 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/dataview/DataView#setUint16 (; 33 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1594,7 +1599,7 @@
end
i32.store16 offset=8
)
(func $~lib/dataview/DataView#setUint32 (; 33 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/dataview/DataView#setUint32 (; 34 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1642,7 +1647,7 @@
end
i32.store offset=8
)
(func $~lib/dataview/DataView#setUint64 (; 34 ;) (type $iiIiv) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32)
(func $~lib/dataview/DataView#setUint64 (; 35 ;) (type $iiIiv) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
@ -1690,7 +1695,7 @@
end
i64.store offset=8
)
(func $start (; 35 ;) (type $v)
(func $start (; 36 ;) (type $v)
get_global $HEAP_BASE
get_global $~lib/internal/allocator/AL_MASK
i32.add
@ -1703,7 +1708,7 @@
set_global $~lib/allocator/arena/offset
i32.const 0
i32.const 8
call $~lib/internal/typedarray/TypedArray<u8>#constructor
call $~lib/typedarray/Uint8Array#constructor
set_global $std/dataview/array
get_global $std/dataview/array
i32.const 0
@ -3383,6 +3388,6 @@
unreachable
end
)
(func $null (; 36 ;) (type $v)
(func $null (; 37 ;) (type $v)
)
)

View File

@ -111,23 +111,19 @@
return
)
(func $~lib/date/Date#constructor (; 5 ;) (type $iIi) (param $0 i32) (param $1 i64) (result i32)
(local $2 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $2
get_local $2
i64.const 0
i64.store
get_local $2
set_local $0
end
tee_local $0
get_local $0
i64.const 0
i64.store
get_local $0
end
tee_local $0
get_local $1
i64.store
get_local $0

View File

@ -1,4 +1,5 @@
(module
(type $iii (func (param i32 i32) (result i32)))
(type $v (func))
(type $ii (func (param i32) (result i32)))
(type $iv (func (param i32)))
@ -6,7 +7,7 @@
(type $FUNCSIG$i (func (result i32)))
(memory $0 0)
(table $0 4 anyfunc)
(elem (i32.const 0) $null $~lib/collector/itcm/__gc_mark $std/gc-object/Custom~gc $std/gc-object/Base~gc)
(elem (i32.const 0) $null $~lib/collector/itcm/__gc_mark $std/gc-object/Base~gc $std/gc-object/Custom~gc)
(global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0))
(global $~lib/allocator/arena/offset (mut i32) (i32.const 0))
(global $~lib/collector/itcm/state (mut i32) (i32.const 0))
@ -302,26 +303,34 @@
end
end
)
(func $~lib/collector/itcm/__gc_allocate (; 5 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(func $~lib/collector/itcm/__gc_allocate (; 5 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
get_local $0
i32.const 1073741808
i32.gt_u
if
unreachable
end
call $~lib/collector/itcm/step
i32.const 24
get_local $0
i32.const 16
i32.add
call $~lib/allocator/arena/__memory_allocate
tee_local $0
i32.const 2
tee_local $2
get_local $1
i32.store offset=8
get_local $0
get_local $2
get_global $~lib/collector/itcm/white
get_local $0
get_local $2
i32.load
i32.const -4
i32.and
i32.or
i32.store
get_global $~lib/collector/itcm/fromSpace
get_local $0
get_local $2
call $~lib/collector/itcm/ManagedObjectList#push
get_local $0
get_local $2
i32.const 16
i32.add
)
@ -341,7 +350,7 @@
return
end
get_local $0
i32.const 3
i32.const 2
call_indirect (type $iv)
get_local $0
i32.load
@ -350,7 +359,28 @@
i32.load offset=4
call $~lib/collector/itcm/__gc_mark
)
(func $~lib/collector/itcm/__gc_collect (; 8 ;) (type $v)
(func $std/gc-object/Custom#constructor (; 8 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
i32.const 8
i32.const 3
call $~lib/collector/itcm/__gc_allocate
tee_local $0
i32.eqz
if
i32.const 0
i32.const 2
call $~lib/collector/itcm/__gc_allocate
set_local $0
end
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
)
(func $~lib/collector/itcm/__gc_collect (; 9 ;) (type $v)
(local $0 i32)
block $break|0
block $case1|0
@ -376,7 +406,7 @@
end
end
)
(func $std/gc-object/main (; 9 ;) (type $v)
(func $std/gc-object/main (; 10 ;) (type $v)
get_global $~started
i32.eqz
if
@ -385,7 +415,7 @@
set_global $~started
end
)
(func $start (; 10 ;) (type $v)
(func $start (; 11 ;) (type $v)
(local $0 i32)
i32.const 8
set_global $~lib/allocator/arena/startOffset
@ -393,14 +423,7 @@
set_global $~lib/allocator/arena/offset
i32.const 0
set_global $~lib/collector/itcm/state
call $~lib/collector/itcm/__gc_allocate
tee_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
call $std/gc-object/Custom#constructor
set_global $std/gc-object/obj
call $~lib/collector/itcm/__gc_collect
get_global $std/gc-object/obj
@ -412,7 +435,7 @@
set_global $std/gc-object/obj
call $~lib/collector/itcm/__gc_collect
)
(func $null (; 11 ;) (type $v)
(func $null (; 12 ;) (type $v)
nop
)
)

View File

@ -6,7 +6,7 @@
(type $iiv (func (param i32 i32)))
(memory $0 0)
(table $0 4 anyfunc)
(elem (i32.const 0) $null $~lib/collector/itcm/__gc_mark $std/gc-object/Custom~gc $std/gc-object/Base~gc)
(elem (i32.const 0) $null $~lib/collector/itcm/__gc_mark $std/gc-object/Base~gc $std/gc-object/Custom~gc)
(global $~lib/internal/allocator/AL_BITS i32 (i32.const 3))
(global $~lib/internal/allocator/AL_SIZE i32 (i32.const 8))
(global $~lib/internal/allocator/AL_MASK i32 (i32.const 7))
@ -444,14 +444,25 @@
get_local $0
call $~lib/collector/itcm/__gc_mark
)
(func $std/gc-object/Custom~gc (; 14 ;) (type $iv) (param $0 i32)
(func $std/gc-object/Base#constructor (; 14 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.eqz
if
i32.const 0
i32.const 2
call $~lib/collector/itcm/__gc_allocate
set_local $0
end
get_local $0
)
(func $std/gc-object/Custom~gc (; 15 ;) (type $iv) (param $0 i32)
get_local $0
i32.eqz
if
return
end
get_local $0
i32.const 3
i32.const 2
call_indirect (type $iv)
get_local $0
i32.load
@ -460,7 +471,27 @@
i32.load offset=4
call $~lib/collector/itcm/__gc_mark
)
(func $~lib/collector/itcm/__gc_collect (; 15 ;) (type $v)
(func $std/gc-object/Custom#constructor (; 16 ;) (type $ii) (param $0 i32) (result i32)
get_local $0
i32.eqz
if
i32.const 8
i32.const 3
call $~lib/collector/itcm/__gc_allocate
set_local $0
end
get_local $0
call $std/gc-object/Base#constructor
set_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
)
(func $~lib/collector/itcm/__gc_collect (; 17 ;) (type $v)
(local $0 i32)
block $break|0
block $case1|0
@ -492,11 +523,11 @@
end
end
)
(func $~lib/gc/gc.collect (; 16 ;) (type $v)
(func $~lib/gc/gc.collect (; 18 ;) (type $v)
call $~lib/collector/itcm/__gc_collect
return
)
(func $std/gc-object/main (; 17 ;) (type $v)
(func $std/gc-object/main (; 19 ;) (type $v)
get_global $~started
i32.eqz
if
@ -505,8 +536,7 @@
set_global $~started
end
)
(func $start (; 18 ;) (type $v)
(local $0 i32)
(func $start (; 20 ;) (type $v)
get_global $HEAP_BASE
get_global $~lib/internal/allocator/AL_MASK
i32.add
@ -519,19 +549,8 @@
set_global $~lib/allocator/arena/offset
get_global $~lib/collector/itcm/State.INIT
set_global $~lib/collector/itcm/state
block (result i32)
i32.const 8
i32.const 2
call $~lib/collector/itcm/__gc_allocate
set_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
end
i32.const 0
call $std/gc-object/Custom#constructor
set_global $std/gc-object/obj
call $~lib/gc/gc.collect
get_global $std/gc-object/obj
@ -542,9 +561,9 @@
set_global $std/gc-object/obj
call $~lib/gc/gc.collect
)
(func $null (; 19 ;) (type $v)
(func $null (; 21 ;) (type $v)
)
(func $~iterateRoots (; 20 ;) (type $iv) (param $0 i32)
(func $~iterateRoots (; 22 ;) (type $iv) (param $0 i32)
get_global $std/gc-object/obj
get_local $0
call_indirect (type $iv)

View File

@ -487,38 +487,34 @@
i32.store offset=20
)
(func $~lib/map/Map<i8,i32>#constructor (; 8 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<i8,i32>#clear
get_local $0
)
@ -1363,38 +1359,34 @@
i32.store offset=20
)
(func $~lib/map/Map<u8,i32>#constructor (; 19 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<u8,i32>#clear
get_local $0
)
@ -2208,38 +2200,34 @@
i32.store offset=20
)
(func $~lib/map/Map<i16,i32>#constructor (; 29 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<i16,i32>#clear
get_local $0
)
@ -3099,38 +3087,34 @@
i32.store offset=20
)
(func $~lib/map/Map<u16,i32>#constructor (; 40 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<u16,i32>#clear
get_local $0
)
@ -3944,38 +3928,34 @@
i32.store offset=20
)
(func $~lib/map/Map<i32,i32>#constructor (; 50 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<i32,i32>#clear
get_local $0
)
@ -4807,38 +4787,34 @@
i32.store offset=20
)
(func $~lib/map/Map<u32,i32>#constructor (; 61 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<u32,i32>#clear
get_local $0
)
@ -5628,38 +5604,34 @@
i32.store offset=20
)
(func $~lib/map/Map<i64,i32>#constructor (; 71 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<i64,i32>#clear
get_local $0
)
@ -6545,38 +6517,34 @@
i32.store offset=20
)
(func $~lib/map/Map<u64,i32>#constructor (; 82 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<u64,i32>#clear
get_local $0
)
@ -7374,38 +7342,34 @@
i32.store offset=20
)
(func $~lib/map/Map<f32,i32>#constructor (; 92 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<f32,i32>#clear
get_local $0
)
@ -8208,38 +8172,34 @@
i32.store offset=20
)
(func $~lib/map/Map<f64,i32>#constructor (; 102 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<f64,i32>#clear
get_local $0
)

View File

@ -101,27 +101,23 @@
return
)
(func $std/new/AClass#constructor (; 2 ;) (type $ifi) (param $0 i32) (param $1 f32) (result i32)
(local $2 i32)
get_local $0
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $2
get_local $2
i32.const 1
i32.store
get_local $2
f32.const 2
f32.store offset=4
get_local $2
set_local $0
end
tee_local $0
get_local $0
i32.const 1
i32.store
get_local $0
f32.const 2
f32.store offset=4
get_local $0
end
tee_local $0
i32.load
i32.const 1
i32.add

View File

@ -174,26 +174,20 @@
return
)
(func $std/operator-overloading/Tester#constructor (; 3 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 8
call $~lib/memory/memory.allocate
set_local $3
get_local $3
get_local $1
i32.store
get_local $3
get_local $2
i32.store offset=4
get_local $3
end
tee_local $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
get_local $0
get_local $1
i32.store
get_local $0
get_local $2
i32.store offset=4
get_local $0
)
(func $std/operator-overloading/Tester.add (; 4 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32)
i32.const 0
@ -1751,48 +1745,36 @@
call $std/operator-overloading/Tester#constructor
)
(func $std/operator-overloading/TesterInlineStatic#constructor (; 32 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 8
call $~lib/memory/memory.allocate
set_local $3
get_local $3
get_local $1
i32.store
get_local $3
get_local $2
i32.store offset=4
get_local $3
end
tee_local $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
get_local $0
get_local $1
i32.store
get_local $0
get_local $2
i32.store offset=4
get_local $0
)
(func $std/operator-overloading/TesterInlineInstance#constructor (; 33 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
get_local $0
if (result i32)
get_local $0
else
block (result i32)
i32.const 8
call $~lib/memory/memory.allocate
set_local $3
get_local $3
get_local $1
i32.store
get_local $3
get_local $2
i32.store offset=4
get_local $3
end
tee_local $0
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $0
end
tee_local $0
get_local $0
get_local $1
i32.store
get_local $0
get_local $2
i32.store offset=4
get_local $0
)
(func $start (; 34 ;) (type $v)
(local $0 i32)

View File

@ -1760,13 +1760,21 @@
(local $0 i32)
(local $1 i32)
(local $2 f32)
i32.const 0
i32.const 8
call $std/pointer/Pointer<Entry>#constructor
block $std/pointer/Pointer<Entry>#constructor|inlined.0 (result i32)
i32.const 0
set_local $0
i32.const 8
set_local $1
get_local $1
end
set_global $std/pointer/one
i32.const 0
i32.const 24
call $std/pointer/Pointer<Entry>#constructor
block $std/pointer/Pointer<Entry>#constructor|inlined.1 (result i32)
i32.const 0
set_local $1
i32.const 24
set_local $0
get_local $0
end
set_global $std/pointer/two
block $std/pointer/Pointer<Entry>#get:offset|inlined.0 (result i32)
get_global $std/pointer/one
@ -2108,9 +2116,13 @@
call $~lib/env/abort
unreachable
end
i32.const 0
i32.const 0
call $std/pointer/Pointer<f32>#constructor
block $std/pointer/Pointer<f32>#constructor|inlined.0 (result i32)
i32.const 0
set_local $0
i32.const 0
set_local $1
get_local $1
end
set_global $std/pointer/buf
get_global $std/pointer/buf
i32.const 0
@ -2150,11 +2162,11 @@
end
block $std/pointer/Pointer<f32>#get|inlined.0 (result f32)
get_global $std/pointer/buf
set_local $0
i32.const 0
set_local $1
get_local $0
i32.const 0
set_local $0
get_local $1
get_local $0
i32.const 4
i32.mul
i32.add
@ -2173,11 +2185,11 @@
end
block $std/pointer/Pointer<f32>#get|inlined.1 (result f32)
get_global $std/pointer/buf
set_local $1
i32.const 1
set_local $0
get_local $1
i32.const 1
set_local $1
get_local $0
get_local $1
i32.const 4
i32.mul
i32.add
@ -2222,13 +2234,13 @@
end
block
get_global $std/pointer/buf
set_local $0
i32.const 2
set_local $1
i32.const 2
set_local $0
f32.const 1.2999999523162842
set_local $2
get_local $0
get_local $1
get_local $0
i32.const 4
i32.mul
i32.add
@ -2251,11 +2263,11 @@
end
block $std/pointer/Pointer<f32>#get|inlined.2 (result f32)
get_global $std/pointer/buf
set_local $1
i32.const 2
set_local $0
get_local $1
i32.const 2
set_local $1
get_local $0
get_local $1
i32.const 4
i32.mul
i32.add
@ -2290,8 +2302,8 @@
call $std/pointer/Pointer<f32>#set:value
block $std/pointer/Pointer<f32>#get:value|inlined.0 (result f32)
get_global $std/pointer/buf
set_local $0
get_local $0
set_local $1
get_local $1
f32.load
br $std/pointer/Pointer<f32>#get:value|inlined.0
end

View File

@ -489,38 +489,34 @@
i32.store offset=20
)
(func $~lib/set/Set<i8>#constructor (; 8 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<i8>#clear
get_local $0
)
@ -1226,38 +1222,34 @@
i32.store offset=20
)
(func $~lib/set/Set<u8>#constructor (; 19 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<u8>#clear
get_local $0
)
@ -1950,38 +1942,34 @@
i32.store offset=20
)
(func $~lib/set/Set<i16>#constructor (; 29 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<i16>#clear
get_local $0
)
@ -2702,38 +2690,34 @@
i32.store offset=20
)
(func $~lib/set/Set<u16>#constructor (; 40 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<u16>#clear
get_local $0
)
@ -3426,38 +3410,34 @@
i32.store offset=20
)
(func $~lib/set/Set<i32>#constructor (; 50 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<i32>#clear
get_local $0
)
@ -4186,38 +4166,34 @@
i32.store offset=20
)
(func $~lib/set/Set<u32>#constructor (; 61 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<u32>#clear
get_local $0
)
@ -4904,38 +4880,34 @@
i32.store offset=20
)
(func $~lib/set/Set<i64>#constructor (; 71 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<i64>#clear
get_local $0
)
@ -5711,38 +5683,34 @@
i32.store offset=20
)
(func $~lib/set/Set<u64>#constructor (; 82 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<u64>#clear
get_local $0
)
@ -6430,38 +6398,34 @@
i32.store offset=20
)
(func $~lib/set/Set<f32>#constructor (; 92 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<f32>#clear
get_local $0
)
@ -7152,38 +7116,34 @@
i32.store offset=20
)
(func $~lib/set/Set<f64>#constructor (; 102 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/set/Set<f64>#clear
get_local $0
)

View File

@ -4221,25 +4221,22 @@
get_local $2
call $~lib/internal/arraybuffer/allocateUnsafe
set_local $3
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 8
call $~lib/memory/memory.allocate
set_local $4
get_local $4
i32.const 0
i32.store
get_local $4
i32.const 0
i32.store offset=4
get_local $4
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
end
tee_local $0
get_local $3
i32.store
get_local $0

View File

@ -537,38 +537,34 @@
i32.store offset=20
)
(func $~lib/map/Map<String,usize>#constructor (; 9 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<String,usize>#clear
get_local $0
)
@ -601,38 +597,34 @@
i32.store offset=20
)
(func $~lib/map/Map<usize,String>#constructor (; 11 ;) (type $ii) (param $0 i32) (result i32)
(local $1 i32)
get_local $0
if (result i32)
block (result i32)
get_local $0
else
block (result i32)
i32.eqz
if
i32.const 24
call $~lib/memory/memory.allocate
set_local $1
get_local $1
i32.const 0
i32.store
get_local $1
i32.const 0
i32.store offset=4
get_local $1
i32.const 0
i32.store offset=8
get_local $1
i32.const 0
i32.store offset=12
get_local $1
i32.const 0
i32.store offset=16
get_local $1
i32.const 0
i32.store offset=20
get_local $1
set_local $0
end
tee_local $0
get_local $0
i32.const 0
i32.store
get_local $0
i32.const 0
i32.store offset=4
get_local $0
i32.const 0
i32.store offset=8
get_local $0
i32.const 0
i32.store offset=12
get_local $0
i32.const 0
i32.store offset=16
get_local $0
i32.const 0
i32.store offset=20
get_local $0
end
tee_local $0
call $~lib/map/Map<usize,String>#clear
get_local $0
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff