Fix missing clear to all zeros when constructing a new ArrayBufferView (#669)

This commit is contained in:
Max Graey 2019-06-15 02:00:49 +03:00 committed by Daniel Wirtz
parent 27d6efa037
commit a4e5857f7f
17 changed files with 3096 additions and 2590 deletions

View File

@ -13,6 +13,7 @@ export abstract class ArrayBufferView {
protected constructor(length: i32, alignLog2: i32) {
if (<u32>length > <u32>BLOCK_MAXSIZE >>> alignLog2) throw new RangeError(E_INVALIDLENGTH);
var buffer = __alloc(length = length << alignLog2, idof<ArrayBuffer>());
memory.fill(buffer, 0, <usize>length);
this.data = changetype<ArrayBuffer>(buffer); // retains
this.dataStart = buffer;
this.dataLength = length;

File diff suppressed because it is too large Load Diff

View File

@ -32,10 +32,10 @@
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/rt/__rtti_base i32 (i32.const 680))
(global $~lib/heap/__heap_base i32 (i32.const 748))
(export "memory" (memory $0))
@ -1341,7 +1341,271 @@
i32.const 16
i32.add
)
(func $~lib/rt/pure/increment (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.fill (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
block $~lib/util/memory/memset|inlined.0
local.get $0
local.set $5
local.get $1
local.set $4
local.get $2
local.set $3
local.get $3
i32.eqz
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 1
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 2
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 1
i32.add
local.get $4
i32.store8
local.get $5
i32.const 2
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 2
i32.sub
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 3
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 6
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 3
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
i32.const 0
local.get $5
i32.sub
i32.const 3
i32.and
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $3
i32.const -4
i32.and
local.set $3
i32.const -1
i32.const 255
i32.div_u
local.get $4
i32.const 255
i32.and
i32.mul
local.set $7
local.get $5
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $7
i32.store
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 4
i32.add
local.get $7
i32.store
local.get $5
i32.const 8
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 12
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 8
i32.sub
local.get $7
i32.store
local.get $3
i32.const 24
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 12
i32.add
local.get $7
i32.store
local.get $5
i32.const 16
i32.add
local.get $7
i32.store
local.get $5
i32.const 20
i32.add
local.get $7
i32.store
local.get $5
i32.const 24
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 28
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 24
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 20
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 16
i32.sub
local.get $7
i32.store
i32.const 24
local.get $5
i32.const 4
i32.and
i32.add
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $7
i64.extend_i32_u
local.get $7
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $8
block $break|0
loop $continue|0
local.get $3
i32.const 32
i32.ge_u
i32.eqz
br_if $break|0
local.get $5
local.get $8
i64.store
local.get $5
i32.const 8
i32.add
local.get $8
i64.store
local.get $5
i32.const 16
i32.add
local.get $8
i64.store
local.get $5
i32.const 24
i32.add
local.get $8
i64.store
local.get $3
i32.const 32
i32.sub
local.set $3
local.get $5
i32.const 32
i32.add
local.set $5
br $continue|0
end
unreachable
end
end
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1390,7 +1654,7 @@
unreachable
end
)
(func $~lib/rt/pure/__retain (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/pure/__retain (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/heap/__heap_base
i32.gt_u
@ -1402,7 +1666,7 @@
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/freeBlock (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
@ -1431,7 +1695,7 @@
local.get $1
call $~lib/rt/rtrace/onfree
)
(func $~lib/rt/__typeinfo (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
global.get $~lib/rt/__rtti_base
local.set $1
@ -1456,7 +1720,7 @@
i32.add
i32.load
)
(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)
@ -2484,7 +2748,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)
@ -2709,7 +2973,7 @@
end
end
)
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/tlsf/__free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
@ -2746,7 +3010,7 @@
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
(func $~lib/rt/pure/growRoots (; 23 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -2804,7 +3068,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.set $1
@ -2824,7 +3088,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -2928,7 +3192,7 @@
end
end
)
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/heap/__heap_base
i32.gt_u
@ -2939,7 +3203,7 @@
call $~lib/rt/pure/decrement
end
)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 26 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2963,6 +3227,10 @@
i32.const 0
call $~lib/rt/tlsf/__alloc
local.set $3
local.get $3
i32.const 0
local.get $1
call $~lib/memory/memory.fill
local.get $0
i32.eqz
if
@ -3006,7 +3274,7 @@
i32.store offset=8
local.get $0
)
(func $~lib/array/Array<i32>#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#constructor (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3028,7 +3296,7 @@
i32.store offset=12
local.get $0
)
(func $~lib/rt/tlsf/reallocateBlock (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/rt/tlsf/reallocateBlock (; 29 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3159,7 +3427,7 @@
call $~lib/rt/tlsf/insertBlock
local.get $8
)
(func $~lib/rt/tlsf/__realloc (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/rt/tlsf/__realloc (; 30 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
@ -3199,270 +3467,6 @@
i32.const 16
i32.add
)
(func $~lib/memory/memory.fill (; 30 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
block $~lib/util/memory/memset|inlined.0
local.get $0
local.set $5
local.get $1
local.set $4
local.get $2
local.set $3
local.get $3
i32.eqz
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 1
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 2
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 1
i32.add
local.get $4
i32.store8
local.get $5
i32.const 2
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 2
i32.sub
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 3
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 6
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 3
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
i32.const 0
local.get $5
i32.sub
i32.const 3
i32.and
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $3
i32.const -4
i32.and
local.set $3
i32.const -1
i32.const 255
i32.div_u
local.get $4
i32.const 255
i32.and
i32.mul
local.set $7
local.get $5
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $7
i32.store
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 4
i32.add
local.get $7
i32.store
local.get $5
i32.const 8
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 12
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 8
i32.sub
local.get $7
i32.store
local.get $3
i32.const 24
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 12
i32.add
local.get $7
i32.store
local.get $5
i32.const 16
i32.add
local.get $7
i32.store
local.get $5
i32.const 20
i32.add
local.get $7
i32.store
local.get $5
i32.const 24
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 28
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 24
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 20
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 16
i32.sub
local.get $7
i32.store
i32.const 24
local.get $5
i32.const 4
i32.and
i32.add
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $7
i64.extend_i32_u
local.get $7
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $8
block $break|0
loop $continue|0
local.get $3
i32.const 32
i32.ge_u
i32.eqz
br_if $break|0
local.get $5
local.get $8
i64.store
local.get $5
i32.const 8
i32.add
local.get $8
i64.store
local.get $5
i32.const 16
i32.add
local.get $8
i64.store
local.get $5
i32.const 24
i32.add
local.get $8
i64.store
local.get $3
i32.const 32
i32.sub
local.set $3
local.get $5
i32.const 32
i32.add
local.set $5
br $continue|0
end
unreachable
end
end
)
(func $~lib/array/ensureSize (; 31 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)

File diff suppressed because it is too large Load Diff

View File

@ -210,10 +210,10 @@
(table $0 57 funcref)
(elem (i32.const 0) $null $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR<f32>~anonymous|0 $~lib/util/sort/COMPARATOR<f64>~anonymous|0 $~lib/util/sort/COMPARATOR<i32>~anonymous|0 $~lib/util/sort/COMPARATOR<u32>~anonymous|0 $~lib/util/sort/COMPARATOR<i32>~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $std/array/arr (mut i32) (i32.const 0))
(global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647))
(global $std/array/i (mut i32) (i32.const 0))
@ -1539,7 +1539,271 @@
i32.const 16
i32.add
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.fill (; 16 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
block $~lib/util/memory/memset|inlined.0
local.get $0
local.set $5
local.get $1
local.set $4
local.get $2
local.set $3
local.get $3
i32.eqz
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 1
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 2
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 1
i32.add
local.get $4
i32.store8
local.get $5
i32.const 2
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 2
i32.sub
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 3
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 6
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 3
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
i32.const 0
local.get $5
i32.sub
i32.const 3
i32.and
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $3
i32.const -4
i32.and
local.set $3
i32.const -1
i32.const 255
i32.div_u
local.get $4
i32.const 255
i32.and
i32.mul
local.set $7
local.get $5
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $7
i32.store
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 4
i32.add
local.get $7
i32.store
local.get $5
i32.const 8
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 12
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 8
i32.sub
local.get $7
i32.store
local.get $3
i32.const 24
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 12
i32.add
local.get $7
i32.store
local.get $5
i32.const 16
i32.add
local.get $7
i32.store
local.get $5
i32.const 20
i32.add
local.get $7
i32.store
local.get $5
i32.const 24
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 28
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 24
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 20
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 16
i32.sub
local.get $7
i32.store
i32.const 24
local.get $5
i32.const 4
i32.and
i32.add
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $7
i64.extend_i32_u
local.get $7
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $8
block $break|0
loop $continue|0
local.get $3
i32.const 32
i32.ge_u
i32.eqz
br_if $break|0
local.get $5
local.get $8
i64.store
local.get $5
i32.const 8
i32.add
local.get $8
i64.store
local.get $5
i32.const 16
i32.add
local.get $8
i64.store
local.get $5
i32.const 24
i32.add
local.get $8
i64.store
local.get $3
i32.const 32
i32.sub
local.set $3
local.get $5
i32.const 32
i32.add
local.set $5
br $continue|0
end
unreachable
end
end
)
(func $~lib/rt/pure/increment (; 17 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1588,7 +1852,7 @@
unreachable
end
)
(func $~lib/rt/pure/__retain (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/pure/__retain (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/heap/__heap_base
i32.gt_u
@ -1600,7 +1864,7 @@
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/freeBlock (; 19 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
@ -1629,7 +1893,7 @@
local.get $1
call $~lib/rt/rtrace/onfree
)
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/__typeinfo (; 20 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
global.get $~lib/rt/__rtti_base
local.set $1
@ -1654,7 +1918,7 @@
i32.add
i32.load
)
(func $~lib/util/memory/memcpy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/memory/memcpy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2682,7 +2946,7 @@
i32.store8
end
)
(func $~lib/memory/memory.copy (; 21 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 22 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2907,7 +3171,7 @@
end
end
)
(func $~lib/rt/tlsf/__free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/tlsf/__free (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
@ -2944,7 +3208,7 @@
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/growRoots (; 23 ;) (type $FUNCSIG$v)
(func $~lib/rt/pure/growRoots (; 24 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -3002,7 +3266,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.set $1
@ -3022,7 +3286,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -3126,7 +3390,7 @@
end
end
)
(func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/__release (; 27 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/heap/__heap_base
i32.gt_u
@ -3137,7 +3401,7 @@
call $~lib/rt/pure/decrement
end
)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3161,6 +3425,10 @@
i32.const 0
call $~lib/rt/tlsf/__alloc
local.set $3
local.get $3
i32.const 0
local.get $1
call $~lib/memory/memory.fill
local.get $0
i32.eqz
if
@ -3204,7 +3472,7 @@
i32.store offset=8
local.get $0
)
(func $~lib/array/Array<i32>#constructor (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#constructor (; 29 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3226,7 +3494,7 @@
i32.store offset=12
local.get $0
)
(func $~lib/array/Array.isArray<~lib/array/Array<i32> | null> (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array.isArray<~lib/array/Array<i32> | null> (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/rt/pure/__retain
@ -3244,7 +3512,7 @@
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/array/Array.isArray<~lib/array/Array<i32>> (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array.isArray<~lib/array/Array<i32>> (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/rt/pure/__retain
@ -3262,7 +3530,7 @@
call $~lib/rt/pure/__release
local.get $1
)
(func $std/array/P#constructor (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array/P#constructor (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.eqz
if
@ -3274,7 +3542,7 @@
end
local.get $0
)
(func $~lib/array/Array.isArray<std/array/P> (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array.isArray<std/array/P> (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/rt/pure/__retain
@ -3292,7 +3560,7 @@
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/typedarray/Uint8Array#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Uint8Array#constructor (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3308,7 +3576,7 @@
local.set $0
local.get $0
)
(func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/rt/pure/__retain
@ -3326,7 +3594,7 @@
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/array/Array.isArray<i32> (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array.isArray<i32> (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 0
if (result i32)
local.get $0
@ -3336,7 +3604,7 @@
i32.const 0
end
)
(func $~lib/array/Array.isArray<~lib/string/String> (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array.isArray<~lib/string/String> (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
call $~lib/rt/pure/__retain
@ -3354,7 +3622,7 @@
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/rt/__allocArray (; 37 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/rt/__allocArray (; 38 ;) (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)
@ -3392,270 +3660,6 @@
end
local.get $4
)
(func $~lib/memory/memory.fill (; 38 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
block $~lib/util/memory/memset|inlined.0
local.get $0
local.set $5
local.get $1
local.set $4
local.get $2
local.set $3
local.get $3
i32.eqz
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 1
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 2
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 1
i32.add
local.get $4
i32.store8
local.get $5
i32.const 2
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 2
i32.sub
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 3
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 6
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 3
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
i32.const 0
local.get $5
i32.sub
i32.const 3
i32.and
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $3
i32.const -4
i32.and
local.set $3
i32.const -1
i32.const 255
i32.div_u
local.get $4
i32.const 255
i32.and
i32.mul
local.set $7
local.get $5
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $7
i32.store
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 4
i32.add
local.get $7
i32.store
local.get $5
i32.const 8
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 12
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 8
i32.sub
local.get $7
i32.store
local.get $3
i32.const 24
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 12
i32.add
local.get $7
i32.store
local.get $5
i32.const 16
i32.add
local.get $7
i32.store
local.get $5
i32.const 20
i32.add
local.get $7
i32.store
local.get $5
i32.const 24
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 28
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 24
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 20
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 16
i32.sub
local.get $7
i32.store
i32.const 24
local.get $5
i32.const 4
i32.and
i32.add
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $7
i64.extend_i32_u
local.get $7
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $8
block $break|0
loop $continue|0
local.get $3
i32.const 32
i32.ge_u
i32.eqz
br_if $break|0
local.get $5
local.get $8
i64.store
local.get $5
i32.const 8
i32.add
local.get $8
i64.store
local.get $5
i32.const 16
i32.add
local.get $8
i64.store
local.get $5
i32.const 24
i32.add
local.get $8
i64.store
local.get $3
i32.const 32
i32.sub
local.set $3
local.get $5
i32.const 32
i32.add
local.set $5
br $continue|0
end
unreachable
end
end
)
(func $~lib/array/Array<u8>#fill (; 39 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(local $4 i32)
(local $5 i32)

View File

@ -1026,19 +1026,26 @@
i32.const 16
i32.add
)
(func $~lib/memory/memory.fill (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $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
i32.eqz
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 0
i32.store8
local.get $0
i32.const 8
local.get $1
i32.add
local.tee $1
i32.const 1
i32.sub
i32.const 0
i32.store8
local.get $1
i32.const 2
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 1
i32.add
@ -1049,26 +1056,184 @@
i32.add
i32.const 0
i32.store8
local.get $0
local.get $1
i32.add
local.tee $2
i32.const 2
i32.sub
i32.const 0
i32.store8
local.get $1
local.get $2
i32.const 3
i32.sub
i32.const 0
i32.store8
local.get $1
i32.const 6
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 3
i32.add
i32.const 0
i32.store8
local.get $0
local.get $1
i32.add
i32.const 4
i32.sub
i32.const 0
i32.store8
local.get $1
i32.const 8
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $1
i32.const 0
local.get $0
i32.sub
i32.const 3
i32.and
local.tee $1
i32.sub
local.get $0
local.get $1
i32.add
local.tee $0
i32.const 0
i32.store
i32.const -4
i32.and
local.tee $1
local.get $0
i32.add
i32.const 4
i32.sub
i32.const 0
i32.store
local.get $1
i32.const 8
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 4
i32.add
i32.const 0
i32.store
local.get $0
i32.const 8
i32.add
i32.const 0
i32.store
local.get $0
local.get $1
i32.add
local.tee $2
i32.const 12
i32.sub
i32.const 0
i32.store
local.get $2
i32.const 8
i32.sub
i32.const 0
i32.store
local.get $1
i32.const 24
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 12
i32.add
i32.const 0
i32.store
local.get $0
i32.const 16
i32.add
i32.const 0
i32.store
local.get $0
i32.const 20
i32.add
i32.const 0
i32.store
local.get $0
i32.const 24
i32.add
i32.const 0
i32.store
local.get $0
local.get $1
i32.add
local.tee $2
i32.const 28
i32.sub
i32.const 0
i32.store
local.get $2
i32.const 24
i32.sub
i32.const 0
i32.store
local.get $2
i32.const 20
i32.sub
i32.const 0
i32.store
local.get $2
i32.const 16
i32.sub
i32.const 0
i32.store
local.get $0
i32.const 4
i32.and
i32.const 24
i32.add
local.tee $2
local.get $0
i32.add
local.set $0
local.get $1
local.get $2
i32.sub
local.set $1
loop $continue|0
local.get $1
i32.const 32
i32.ge_u
if
local.get $0
i64.const 0
i64.store
local.get $0
i32.const 8
i32.add
i64.const 0
i64.store
local.get $0
i32.const 16
i32.add
i64.const 0
i64.store
local.get $0
i32.const 24
i32.add
i64.const 0
i64.store
local.get $1
i32.const 32
i32.sub
local.set $1
local.get $0
i32.const 32
i32.add
local.set $0
br $continue|0
end
end
end
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
@ -1665,7 +1830,9 @@
local.tee $2
i32.const 0
call $~lib/rt/tlsf/__alloc
local.set $1
local.tee $1
local.get $2
call $~lib/memory/memory.fill
local.get $0
i32.eqz
if
@ -1810,6 +1977,7 @@
i32.const 0
call $~lib/rt/tlsf/__alloc
local.tee $0
i32.const 8
call $~lib/memory/memory.fill
local.get $0
call $~lib/rt/pure/__retain

View File

@ -1671,7 +1671,7 @@
if
i32.const 24
i32.const 72
i32.const 56
i32.const 57
i32.const 42
call $~lib/builtins/abort
unreachable
@ -4011,6 +4011,10 @@
i32.const 0
call $~lib/rt/tlsf/__alloc
local.set $3
local.get $3
i32.const 0
local.get $1
call $~lib/memory/memory.fill
local.get $0
i32.eqz
if

View File

@ -1032,7 +1032,51 @@
i32.const 16
i32.add
)
(func $~lib/rt/pure/increment (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.fill (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.const 0
i32.store8
local.get $0
i32.const 8
i32.add
local.tee $1
i32.const 1
i32.sub
i32.const 0
i32.store8
local.get $0
i32.const 1
i32.add
i32.const 0
i32.store8
local.get $0
i32.const 2
i32.add
i32.const 0
i32.store8
local.get $1
i32.const 2
i32.sub
i32.const 0
i32.store8
local.get $1
i32.const 3
i32.sub
i32.const 0
i32.store8
local.get $0
i32.const 3
i32.add
i32.const 0
i32.store8
local.get $1
i32.const 4
i32.sub
i32.const 0
i32.store8
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1073,7 +1117,7 @@
unreachable
end
)
(func $~lib/rt/pure/__retain (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/pure/__retain (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 556
i32.gt_u
@ -1085,7 +1129,7 @@
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/freeBlock (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
@ -1111,7 +1155,7 @@
local.get $1
call $~lib/rt/rtrace/onfree
)
(func $~lib/rt/__typeinfo (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 512
i32.load
@ -1131,7 +1175,7 @@
i32.add
i32.load
)
(func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
block $~lib/util/memory/memmove|inlined.0
@ -1306,7 +1350,7 @@
end
end
)
(func $~lib/rt/tlsf/__free (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
@ -1339,7 +1383,7 @@
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/growRoots (; 21 ;) (type $FUNCSIG$v)
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1388,7 +1432,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.tee $1
@ -1407,7 +1451,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -1497,7 +1541,7 @@
end
end
)
(func $~lib/rt/pure/__release (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 556
i32.gt_u
@ -1508,13 +1552,14 @@
call $~lib/rt/pure/decrement
end
)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 25 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
i32.const 8
i32.const 0
call $~lib/rt/tlsf/__alloc
local.set $1
local.tee $1
call $~lib/memory/memory.fill
local.get $0
i32.eqz
if
@ -1556,7 +1601,7 @@
i32.store offset=8
local.get $0
)
(func $~lib/typedarray/Uint8Array#__set (; 26 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/typedarray/Uint8Array#__set (; 27 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
local.get $0
i32.load offset=8
@ -1576,13 +1621,13 @@
local.get $2
i32.store8
)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 16
i32.sub
i32.load offset=12
)
(func $~lib/dataview/DataView#constructor (; 28 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#constructor (; 29 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
local.get $0
@ -1648,19 +1693,19 @@
call $~lib/rt/pure/__release
local.get $3
)
(func $~lib/typedarray/Uint8Array#get:buffer (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint8Array#get:buffer (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
call $~lib/rt/pure/__retain
)
(func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=4
local.get $0
i32.load
i32.sub
)
(func $~lib/polyfills/bswap<u32> (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<u32> (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const -16711936
i32.and
@ -1673,7 +1718,7 @@
i32.rotr
i32.or
)
(func $~lib/dataview/DataView#getFloat32 (; 32 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32)
(func $~lib/dataview/DataView#getFloat32 (; 33 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32)
local.get $1
i32.const 0
i32.lt_s
@ -1709,7 +1754,7 @@
f32.reinterpret_i32
end
)
(func $~lib/polyfills/bswap<u64> (; 33 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64)
(func $~lib/polyfills/bswap<u64> (; 34 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64)
local.get $0
i64.const 8
i64.shr_u
@ -1735,7 +1780,7 @@
i64.const 32
i64.rotr
)
(func $~lib/dataview/DataView#getFloat64 (; 34 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64)
(func $~lib/dataview/DataView#getFloat64 (; 35 ;) (type $FUNCSIG$dii) (param $0 i32) (param $1 i32) (result f64)
i32.const 8
local.get $0
i32.load offset=8
@ -1761,7 +1806,7 @@
f64.reinterpret_i64
end
)
(func $~lib/dataview/DataView#getInt8 (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/dataview/DataView#getInt8 (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -1780,7 +1825,7 @@
i32.add
i32.load8_s
)
(func $~lib/polyfills/bswap<i16> (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<i16> (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 16
i32.shl
@ -1793,7 +1838,7 @@
i32.shl
i32.or
)
(func $~lib/dataview/DataView#getInt16 (; 37 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getInt16 (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 0
i32.lt_s
@ -1827,7 +1872,7 @@
end
local.get $0
)
(func $~lib/dataview/DataView#getInt32 (; 38 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getInt32 (; 39 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 0
i32.lt_s
@ -1861,7 +1906,7 @@
end
local.get $0
)
(func $~lib/dataview/DataView#getInt64 (; 39 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
(func $~lib/dataview/DataView#getInt64 (; 40 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
(local $2 i64)
i32.const 8
local.get $0
@ -1887,7 +1932,7 @@
call $~lib/polyfills/bswap<u64>
end
)
(func $~lib/dataview/DataView#getUint8 (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/dataview/DataView#getUint8 (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -1906,7 +1951,7 @@
i32.add
i32.load8_u
)
(func $~lib/polyfills/bswap<u16> (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<u16> (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 8
i32.shl
@ -1917,7 +1962,7 @@
i32.shr_u
i32.or
)
(func $~lib/dataview/DataView#getUint16 (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getUint16 (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 0
i32.lt_s
@ -1951,7 +1996,7 @@
end
local.get $0
)
(func $~lib/dataview/DataView#getUint32 (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getUint32 (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 0
i32.lt_s
@ -1985,7 +2030,7 @@
end
local.get $0
)
(func $~lib/dataview/DataView#getUint64 (; 44 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
(func $~lib/dataview/DataView#getUint64 (; 45 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64)
(local $2 i64)
i32.const 8
local.get $0
@ -2011,7 +2056,7 @@
call $~lib/polyfills/bswap<u64>
end
)
(func $~lib/dataview/DataView#setFloat32 (; 45 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32)
(func $~lib/dataview/DataView#setFloat32 (; 46 ;) (type $FUNCSIG$vifi) (param $0 i32) (param $1 f32) (param $2 i32)
i32.const 4
local.get $0
i32.load offset=8
@ -2039,7 +2084,7 @@
i32.store
end
)
(func $~lib/dataview/DataView#setFloat64 (; 46 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32)
(func $~lib/dataview/DataView#setFloat64 (; 47 ;) (type $FUNCSIG$vidi) (param $0 i32) (param $1 f64) (param $2 i32)
i32.const 8
local.get $0
i32.load offset=8
@ -2067,7 +2112,7 @@
i64.store
end
)
(func $~lib/dataview/DataView#setInt8 (; 47 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/dataview/DataView#setInt8 (; 48 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 0
local.get $0
i32.load offset=8
@ -2085,7 +2130,7 @@
i32.const 108
i32.store8
)
(func $~lib/dataview/DataView#setInt16 (; 48 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/dataview/DataView#setInt16 (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
i32.const 2
local.get $0
i32.load offset=8
@ -2109,7 +2154,7 @@
end
i32.store16
)
(func $~lib/dataview/DataView#setInt32 (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/dataview/DataView#setInt32 (; 50 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
i32.const 4
local.get $0
i32.load offset=8
@ -2133,7 +2178,7 @@
end
i32.store
)
(func $~lib/dataview/DataView#setInt64 (; 50 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(func $~lib/dataview/DataView#setInt64 (; 51 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
i32.const 8
local.get $0
i32.load offset=8
@ -2157,7 +2202,7 @@
end
i64.store
)
(func $~lib/dataview/DataView#setUint8 (; 51 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/dataview/DataView#setUint8 (; 52 ;) (type $FUNCSIG$vi) (param $0 i32)
i32.const 0
local.get $0
i32.load offset=8
@ -2175,7 +2220,7 @@
i32.const 238
i32.store8
)
(func $~lib/dataview/DataView#setUint16 (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/dataview/DataView#setUint16 (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
i32.const 2
local.get $0
i32.load offset=8
@ -2199,7 +2244,7 @@
end
i32.store16
)
(func $~lib/dataview/DataView#setUint32 (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/dataview/DataView#setUint32 (; 54 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
i32.const 4
local.get $0
i32.load offset=8
@ -2223,7 +2268,7 @@
end
i32.store
)
(func $~lib/dataview/DataView#setUint64 (; 54 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(func $~lib/dataview/DataView#setUint64 (; 55 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
i32.const 8
local.get $0
i32.load offset=8
@ -2247,7 +2292,7 @@
end
i64.store
)
(func $~lib/dataview/DataView#constructor|trampoline (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/dataview/DataView#constructor|trampoline (; 56 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
block $2of2
block $1of2
@ -2268,7 +2313,7 @@
local.get $1
call $~lib/dataview/DataView#constructor
)
(func $start:std/dataview (; 56 ;) (type $FUNCSIG$v)
(func $start:std/dataview (; 57 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -3833,10 +3878,10 @@
local.get $4
call $~lib/rt/pure/__release
)
(func $start (; 57 ;) (type $FUNCSIG$v)
(func $start (; 58 ;) (type $FUNCSIG$v)
call $start:std/dataview
)
(func $~lib/rt/pure/markGray (; 58 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/markGray (; 59 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -3860,7 +3905,7 @@
call $~lib/rt/__visit_members
end
)
(func $~lib/rt/pure/scanBlack (; 59 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scanBlack (; 60 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
local.get $0
i32.load offset=4
@ -3873,7 +3918,7 @@
i32.const 4
call $~lib/rt/__visit_members
)
(func $~lib/rt/pure/scan (; 60 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scan (; 61 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -3907,7 +3952,7 @@
end
end
)
(func $~lib/rt/pure/collectWhite (; 61 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/collectWhite (; 62 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -3940,7 +3985,7 @@
call $~lib/rt/tlsf/freeBlock
end
)
(func $~lib/rt/pure/__visit (; 62 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/pure/__visit (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
local.get $0
i32.const 556
i32.lt_u
@ -4050,7 +4095,7 @@
unreachable
end
)
(func $~lib/rt/__visit_members (; 63 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/__visit_members (; 64 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
block $switch$1$default
block $switch$1$case$4
block $switch$1$case$2
@ -4074,7 +4119,7 @@
end
unreachable
)
(func $null (; 64 ;) (type $FUNCSIG$v)
(func $null (; 65 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -35,10 +35,10 @@
(table $0 1 funcref)
(elem (i32.const 0) $null)
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/rt/__rtti_base i32 (i32.const 512))
(global $~lib/heap/__heap_base i32 (i32.const 556))
@ -1345,7 +1345,271 @@
i32.const 16
i32.add
)
(func $~lib/rt/pure/increment (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.fill (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
block $~lib/util/memory/memset|inlined.0
local.get $0
local.set $5
local.get $1
local.set $4
local.get $2
local.set $3
local.get $3
i32.eqz
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 1
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 2
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 1
i32.add
local.get $4
i32.store8
local.get $5
i32.const 2
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 2
i32.sub
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 3
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 6
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 3
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
i32.const 0
local.get $5
i32.sub
i32.const 3
i32.and
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $3
i32.const -4
i32.and
local.set $3
i32.const -1
i32.const 255
i32.div_u
local.get $4
i32.const 255
i32.and
i32.mul
local.set $7
local.get $5
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $7
i32.store
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 4
i32.add
local.get $7
i32.store
local.get $5
i32.const 8
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 12
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 8
i32.sub
local.get $7
i32.store
local.get $3
i32.const 24
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 12
i32.add
local.get $7
i32.store
local.get $5
i32.const 16
i32.add
local.get $7
i32.store
local.get $5
i32.const 20
i32.add
local.get $7
i32.store
local.get $5
i32.const 24
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 28
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 24
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 20
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 16
i32.sub
local.get $7
i32.store
i32.const 24
local.get $5
i32.const 4
i32.and
i32.add
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $7
i64.extend_i32_u
local.get $7
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $8
block $break|0
loop $continue|0
local.get $3
i32.const 32
i32.ge_u
i32.eqz
br_if $break|0
local.get $5
local.get $8
i64.store
local.get $5
i32.const 8
i32.add
local.get $8
i64.store
local.get $5
i32.const 16
i32.add
local.get $8
i64.store
local.get $5
i32.const 24
i32.add
local.get $8
i64.store
local.get $3
i32.const 32
i32.sub
local.set $3
local.get $5
i32.const 32
i32.add
local.set $5
br $continue|0
end
unreachable
end
end
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1394,7 +1658,7 @@
unreachable
end
)
(func $~lib/rt/pure/__retain (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/pure/__retain (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/heap/__heap_base
i32.gt_u
@ -1406,7 +1670,7 @@
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/freeBlock (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
@ -1435,7 +1699,7 @@
local.get $1
call $~lib/rt/rtrace/onfree
)
(func $~lib/rt/__typeinfo (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
global.get $~lib/rt/__rtti_base
local.set $1
@ -1460,7 +1724,7 @@
i32.add
i32.load
)
(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)
@ -2488,7 +2752,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)
@ -2713,7 +2977,7 @@
end
end
)
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/tlsf/__free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
@ -2750,7 +3014,7 @@
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
(func $~lib/rt/pure/growRoots (; 23 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -2808,7 +3072,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.set $1
@ -2828,7 +3092,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -2932,7 +3196,7 @@
end
end
)
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/heap/__heap_base
i32.gt_u
@ -2943,7 +3207,7 @@
call $~lib/rt/pure/decrement
end
)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 26 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2967,6 +3231,10 @@
i32.const 0
call $~lib/rt/tlsf/__alloc
local.set $3
local.get $3
i32.const 0
local.get $1
call $~lib/memory/memory.fill
local.get $0
i32.eqz
if
@ -3010,7 +3278,7 @@
i32.store offset=8
local.get $0
)
(func $~lib/typedarray/Uint8Array#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Uint8Array#constructor (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3026,7 +3294,7 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Uint8Array#__set (; 28 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/typedarray/Uint8Array#__set (; 29 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
local.get $0
i32.load offset=8
@ -3046,13 +3314,13 @@
local.get $2
i32.store8
)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 16
i32.sub
i32.load offset=12
)
(func $~lib/dataview/DataView#constructor (; 30 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/dataview/DataView#constructor (; 31 ;) (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)
@ -3128,23 +3396,23 @@
call $~lib/rt/pure/__release
local.get $0
)
(func $~lib/typedarray/Uint8Array#get:buffer (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint8Array#get:buffer (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load
call $~lib/rt/pure/__retain
)
(func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=4
local.get $0
i32.load
i32.sub
)
(func $~lib/arraybuffer/ArrayBufferView#get:byteLength (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#get:byteLength (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
)
(func $~lib/polyfills/bswap<u32> (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<u32> (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const -16711936
i32.and
@ -3158,7 +3426,7 @@
i32.or
return
)
(func $~lib/dataview/DataView#getFloat32 (; 35 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32)
(func $~lib/dataview/DataView#getFloat32 (; 36 ;) (type $FUNCSIG$fiii) (param $0 i32) (param $1 i32) (param $2 i32) (result f32)
local.get $1
i32.const 0
i32.lt_s
@ -3194,7 +3462,7 @@
f32.reinterpret_i32
end
)
(func $~lib/polyfills/bswap<u64> (; 36 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64)
(func $~lib/polyfills/bswap<u64> (; 37 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64)
(local $1 i64)
(local $2 i64)
(local $3 i64)
@ -3233,7 +3501,7 @@
i64.rotr
return
)
(func $~lib/dataview/DataView#getFloat64 (; 37 ;) (type $FUNCSIG$diii) (param $0 i32) (param $1 i32) (param $2 i32) (result f64)
(func $~lib/dataview/DataView#getFloat64 (; 38 ;) (type $FUNCSIG$diii) (param $0 i32) (param $1 i32) (param $2 i32) (result f64)
local.get $1
i32.const 0
i32.lt_s
@ -3269,7 +3537,7 @@
f64.reinterpret_i64
end
)
(func $~lib/dataview/DataView#getInt8 (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/dataview/DataView#getInt8 (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -3288,7 +3556,7 @@
i32.add
i32.load8_s
)
(func $~lib/polyfills/bswap<i16> (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<i16> (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 8
i32.shl
@ -3304,7 +3572,7 @@
i32.or
return
)
(func $~lib/dataview/DataView#getInt16 (; 40 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getInt16 (; 41 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $1
i32.const 0
@ -3338,7 +3606,7 @@
call $~lib/polyfills/bswap<i16>
end
)
(func $~lib/polyfills/bswap<i32> (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<i32> (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const -16711936
i32.and
@ -3352,7 +3620,7 @@
i32.or
return
)
(func $~lib/dataview/DataView#getInt32 (; 42 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getInt32 (; 43 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $1
i32.const 0
@ -3386,7 +3654,7 @@
call $~lib/polyfills/bswap<i32>
end
)
(func $~lib/polyfills/bswap<i64> (; 43 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64)
(func $~lib/polyfills/bswap<i64> (; 44 ;) (type $FUNCSIG$jj) (param $0 i64) (result i64)
(local $1 i64)
(local $2 i64)
(local $3 i64)
@ -3425,7 +3693,7 @@
i64.rotr
return
)
(func $~lib/dataview/DataView#getInt64 (; 44 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64)
(func $~lib/dataview/DataView#getInt64 (; 45 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64)
(local $3 i64)
local.get $1
i32.const 0
@ -3459,7 +3727,7 @@
call $~lib/polyfills/bswap<i64>
end
)
(func $~lib/dataview/DataView#getUint8 (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/dataview/DataView#getUint8 (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -3478,7 +3746,7 @@
i32.add
i32.load8_u
)
(func $~lib/polyfills/bswap<u16> (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/polyfills/bswap<u16> (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 8
i32.shl
@ -3492,7 +3760,7 @@
i32.or
return
)
(func $~lib/dataview/DataView#getUint16 (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getUint16 (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $1
i32.const 0
@ -3526,7 +3794,7 @@
call $~lib/polyfills/bswap<u16>
end
)
(func $~lib/dataview/DataView#getUint32 (; 48 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/dataview/DataView#getUint32 (; 49 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $1
i32.const 0
@ -3560,7 +3828,7 @@
call $~lib/polyfills/bswap<u32>
end
)
(func $~lib/dataview/DataView#getUint64 (; 49 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64)
(func $~lib/dataview/DataView#getUint64 (; 50 ;) (type $FUNCSIG$jiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i64)
(local $3 i64)
local.get $1
i32.const 0
@ -3594,7 +3862,7 @@
call $~lib/polyfills/bswap<u64>
end
)
(func $~lib/dataview/DataView#setFloat32 (; 50 ;) (type $FUNCSIG$viifi) (param $0 i32) (param $1 i32) (param $2 f32) (param $3 i32)
(func $~lib/dataview/DataView#setFloat32 (; 51 ;) (type $FUNCSIG$viifi) (param $0 i32) (param $1 i32) (param $2 f32) (param $3 i32)
local.get $1
i32.const 0
i32.lt_s
@ -3632,7 +3900,7 @@
i32.store
end
)
(func $~lib/dataview/DataView#setFloat64 (; 51 ;) (type $FUNCSIG$viidi) (param $0 i32) (param $1 i32) (param $2 f64) (param $3 i32)
(func $~lib/dataview/DataView#setFloat64 (; 52 ;) (type $FUNCSIG$viidi) (param $0 i32) (param $1 i32) (param $2 f64) (param $3 i32)
local.get $1
i32.const 0
i32.lt_s
@ -3670,7 +3938,7 @@
i64.store
end
)
(func $~lib/dataview/DataView#setInt8 (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/dataview/DataView#setInt8 (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
local.get $0
i32.load offset=8
@ -3690,7 +3958,7 @@
local.get $2
i32.store8
)
(func $~lib/dataview/DataView#setInt16 (; 53 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/dataview/DataView#setInt16 (; 54 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
local.get $1
i32.const 0
i32.lt_s
@ -3722,7 +3990,7 @@
end
i32.store16
)
(func $~lib/dataview/DataView#setInt32 (; 54 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/dataview/DataView#setInt32 (; 55 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
local.get $1
i32.const 0
i32.lt_s
@ -3754,7 +4022,7 @@
end
i32.store
)
(func $~lib/dataview/DataView#setInt64 (; 55 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32)
(func $~lib/dataview/DataView#setInt64 (; 56 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32)
local.get $1
i32.const 0
i32.lt_s
@ -3786,7 +4054,7 @@
end
i64.store
)
(func $~lib/dataview/DataView#setUint8 (; 56 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/dataview/DataView#setUint8 (; 57 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
local.get $0
i32.load offset=8
@ -3806,7 +4074,7 @@
local.get $2
i32.store8
)
(func $~lib/dataview/DataView#setUint16 (; 57 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/dataview/DataView#setUint16 (; 58 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
local.get $1
i32.const 0
i32.lt_s
@ -3838,7 +4106,7 @@
end
i32.store16
)
(func $~lib/dataview/DataView#setUint32 (; 58 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
(func $~lib/dataview/DataView#setUint32 (; 59 ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32)
local.get $1
i32.const 0
i32.lt_s
@ -3870,7 +4138,7 @@
end
i32.store
)
(func $~lib/dataview/DataView#setUint64 (; 59 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32)
(func $~lib/dataview/DataView#setUint64 (; 60 ;) (type $FUNCSIG$viiji) (param $0 i32) (param $1 i32) (param $2 i64) (param $3 i32)
local.get $1
i32.const 0
i32.lt_s
@ -3902,7 +4170,7 @@
end
i64.store
)
(func $~lib/dataview/DataView#constructor|trampoline (; 60 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
(func $~lib/dataview/DataView#constructor|trampoline (; 61 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32)
block $2of2
block $1of2
block $0of2
@ -3927,18 +4195,18 @@
local.get $3
call $~lib/dataview/DataView#constructor
)
(func $~lib/dataview/DataView#get:byteOffset (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/dataview/DataView#get:byteOffset (; 62 ;) (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 (; 62 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/dataview/DataView#get:byteLength (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
)
(func $start:std/dataview (; 63 ;) (type $FUNCSIG$v)
(func $start:std/dataview (; 64 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -5675,10 +5943,10 @@
local.get $3
call $~lib/rt/pure/__release
)
(func $start (; 64 ;) (type $FUNCSIG$v)
(func $start (; 65 ;) (type $FUNCSIG$v)
call $start:std/dataview
)
(func $~lib/rt/pure/markGray (; 65 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/markGray (; 66 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -5705,7 +5973,7 @@
call $~lib/rt/__visit_members
end
)
(func $~lib/rt/pure/scanBlack (; 66 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scanBlack (; 67 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
local.get $0
i32.load offset=4
@ -5722,7 +5990,7 @@
i32.const 4
call $~lib/rt/__visit_members
)
(func $~lib/rt/pure/scan (; 67 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/scan (; 68 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -5759,7 +6027,7 @@
end
end
)
(func $~lib/rt/pure/collectWhite (; 68 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/collectWhite (; 69 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -5797,7 +6065,7 @@
call $~lib/rt/tlsf/freeBlock
end
)
(func $~lib/rt/pure/__visit (; 69 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/pure/__visit (; 70 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -5931,7 +6199,7 @@
end
end
)
(func $~lib/rt/__visit_members (; 70 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/__visit_members (; 71 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
block $switch$1$default
block $switch$1$case$4
@ -5956,6 +6224,6 @@
end
unreachable
)
(func $null (; 71 ;) (type $FUNCSIG$v)
(func $null (; 72 ;) (type $FUNCSIG$v)
)
)

View File

@ -1306,7 +1306,7 @@
if
i32.const 176
i32.const 224
i32.const 56
i32.const 57
i32.const 42
call $~lib/builtins/abort
unreachable

View File

@ -1677,7 +1677,7 @@
if
i32.const 176
i32.const 224
i32.const 56
i32.const 57
i32.const 42
call $~lib/builtins/abort
unreachable

View File

@ -1303,7 +1303,7 @@
if
i32.const 176
i32.const 224
i32.const 56
i32.const 57
i32.const 42
call $~lib/builtins/abort
unreachable

View File

@ -1677,7 +1677,7 @@
if
i32.const 176
i32.const 224
i32.const 56
i32.const 57
i32.const 42
call $~lib/builtins/abort
unreachable

View File

@ -354,7 +354,7 @@
if
i32.const 96
i32.const 144
i32.const 56
i32.const 57
i32.const 42
call $~lib/builtins/abort
unreachable

View File

@ -450,7 +450,7 @@
if
i32.const 96
i32.const 144
i32.const 56
i32.const 57
i32.const 42
call $~lib/builtins/abort
unreachable

View File

@ -1083,7 +1083,231 @@
i32.const 16
i32.add
)
(func $~lib/rt/pure/increment (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.fill (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
br_if $~lib/util/memory/memset|inlined.0
local.get $0
local.get $1
i32.store8
local.get $0
local.get $2
i32.add
i32.const 1
i32.sub
local.get $1
i32.store8
local.get $2
i32.const 2
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 1
i32.add
local.get $1
i32.store8
local.get $0
i32.const 2
i32.add
local.get $1
i32.store8
local.get $0
local.get $2
i32.add
local.tee $3
i32.const 2
i32.sub
local.get $1
i32.store8
local.get $3
i32.const 3
i32.sub
local.get $1
i32.store8
local.get $2
i32.const 6
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 3
i32.add
local.get $1
i32.store8
local.get $0
local.get $2
i32.add
i32.const 4
i32.sub
local.get $1
i32.store8
local.get $2
i32.const 8
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $2
i32.const 0
local.get $0
i32.sub
i32.const 3
i32.and
local.tee $2
i32.sub
local.get $0
local.get $2
i32.add
local.tee $2
local.get $1
i32.const 255
i32.and
i32.const 16843009
i32.mul
local.tee $0
i32.store
i32.const -4
i32.and
local.tee $3
local.get $2
i32.add
i32.const 4
i32.sub
local.get $0
i32.store
local.get $3
i32.const 8
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $2
i32.const 4
i32.add
local.get $0
i32.store
local.get $2
i32.const 8
i32.add
local.get $0
i32.store
local.get $2
local.get $3
i32.add
local.tee $1
i32.const 12
i32.sub
local.get $0
i32.store
local.get $1
i32.const 8
i32.sub
local.get $0
i32.store
local.get $3
i32.const 24
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $2
i32.const 12
i32.add
local.get $0
i32.store
local.get $2
i32.const 16
i32.add
local.get $0
i32.store
local.get $2
i32.const 20
i32.add
local.get $0
i32.store
local.get $2
i32.const 24
i32.add
local.get $0
i32.store
local.get $2
local.get $3
i32.add
local.tee $1
i32.const 28
i32.sub
local.get $0
i32.store
local.get $1
i32.const 24
i32.sub
local.get $0
i32.store
local.get $1
i32.const 20
i32.sub
local.get $0
i32.store
local.get $1
i32.const 16
i32.sub
local.get $0
i32.store
local.get $2
local.get $2
i32.const 4
i32.and
i32.const 24
i32.add
local.tee $2
i32.add
local.set $1
local.get $3
local.get $2
i32.sub
local.set $2
local.get $0
i64.extend_i32_u
local.get $0
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $4
loop $continue|0
local.get $2
i32.const 32
i32.lt_u
i32.eqz
if
local.get $1
local.get $4
i64.store
local.get $1
i32.const 8
i32.add
local.get $4
i64.store
local.get $1
i32.const 16
i32.add
local.get $4
i64.store
local.get $1
i32.const 24
i32.add
local.get $4
i64.store
local.get $2
i32.const 32
i32.sub
local.set $2
local.get $1
i32.const 32
i32.add
local.set $1
br $continue|0
end
end
end
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1124,7 +1348,7 @@
unreachable
end
)
(func $~lib/rt/pure/__retain (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/pure/__retain (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 1820
i32.gt_u
@ -1136,7 +1360,7 @@
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/freeBlock (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
@ -1162,7 +1386,7 @@
local.get $1
call $~lib/rt/rtrace/onfree
)
(func $~lib/rt/__typeinfo (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 1688
i32.load
@ -1182,7 +1406,7 @@
i32.add
i32.load
)
(func $~lib/memory/memory.copy (; 19 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/memory/memory.copy (; 20 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
block $~lib/util/memory/memmove|inlined.0
@ -1357,7 +1581,7 @@
end
end
)
(func $~lib/rt/tlsf/__free (; 20 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
@ -1390,7 +1614,7 @@
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/growRoots (; 21 ;) (type $FUNCSIG$v)
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -1439,7 +1663,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.tee $1
@ -1458,7 +1682,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -1548,7 +1772,7 @@
end
end
)
(func $~lib/rt/pure/__release (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
i32.const 1820
i32.gt_u
@ -1559,7 +1783,7 @@
call $~lib/rt/pure/decrement
end
)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 25 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 26 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $1
i32.const 1073741808
@ -1580,7 +1804,10 @@
local.tee $2
i32.const 0
call $~lib/rt/tlsf/__alloc
local.set $1
local.tee $1
i32.const 0
local.get $2
call $~lib/memory/memory.fill
local.get $0
i32.eqz
if
@ -1622,7 +1849,7 @@
i32.store offset=8
local.get $0
)
(func $~lib/typedarray/Int8Array#constructor (; 26 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int8Array#constructor (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 3
call $~lib/rt/tlsf/__alloc
@ -1631,14 +1858,14 @@
i32.const 0
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 27 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=4
local.get $0
i32.load
i32.sub
)
(func $~lib/typedarray/Uint8Array#constructor (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint8Array#constructor (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 4
call $~lib/rt/tlsf/__alloc
@ -1647,7 +1874,7 @@
i32.const 0
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/typedarray/Uint8ClampedArray#constructor (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint8ClampedArray#constructor (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 5
call $~lib/rt/tlsf/__alloc
@ -1656,7 +1883,7 @@
i32.const 0
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/typedarray/Int16Array#constructor (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int16Array#constructor (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 6
call $~lib/rt/tlsf/__alloc
@ -1665,13 +1892,13 @@
i32.const 1
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/typedarray/Int16Array#get:length (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int16Array#get:length (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
i32.const 1
i32.shr_u
)
(func $~lib/typedarray/Uint16Array#constructor (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint16Array#constructor (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 7
call $~lib/rt/tlsf/__alloc
@ -1680,7 +1907,7 @@
i32.const 1
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/typedarray/Int32Array#constructor (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int32Array#constructor (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 8
call $~lib/rt/tlsf/__alloc
@ -1689,13 +1916,13 @@
i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/typedarray/Int32Array#get:length (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int32Array#get:length (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
i32.const 2
i32.shr_u
)
(func $~lib/typedarray/Uint32Array#constructor (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint32Array#constructor (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 9
call $~lib/rt/tlsf/__alloc
@ -1704,7 +1931,7 @@
i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/typedarray/Int64Array#constructor (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int64Array#constructor (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 10
call $~lib/rt/tlsf/__alloc
@ -1713,13 +1940,13 @@
i32.const 3
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/typedarray/Int64Array#get:length (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int64Array#get:length (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
i32.const 3
i32.shr_u
)
(func $~lib/typedarray/Uint64Array#constructor (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint64Array#constructor (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 11
call $~lib/rt/tlsf/__alloc
@ -1728,7 +1955,7 @@
i32.const 3
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/typedarray/Float32Array#constructor (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Float32Array#constructor (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 12
call $~lib/rt/tlsf/__alloc
@ -1737,7 +1964,7 @@
i32.const 2
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $~lib/typedarray/Float64Array#constructor (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Float64Array#constructor (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
i32.const 12
i32.const 13
call $~lib/rt/tlsf/__alloc
@ -1746,7 +1973,7 @@
i32.const 3
call $~lib/arraybuffer/ArrayBufferView#constructor
)
(func $std/typedarray/testInstantiate (; 41 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $std/typedarray/testInstantiate (; 42 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -2193,7 +2420,7 @@
local.get $11
call $~lib/rt/pure/__release
)
(func $~lib/typedarray/Int32Array#__set (; 42 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/typedarray/Int32Array#__set (; 43 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
local.get $0
i32.load offset=8
@ -2217,7 +2444,7 @@
local.get $2
i32.store
)
(func $~lib/typedarray/Int32Array#__get (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Int32Array#__get (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -2240,7 +2467,7 @@
i32.add
i32.load
)
(func $~lib/typedarray/Int32Array#subarray (; 44 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/typedarray/Int32Array#subarray (; 45 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2340,7 +2567,7 @@
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/typedarray/Float64Array#__set (; 45 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64)
(func $~lib/typedarray/Float64Array#__set (; 46 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64)
local.get $1
local.get $0
i32.load offset=8
@ -2364,7 +2591,7 @@
local.get $2
f64.store
)
(func $~lib/typedarray/Float64Array#subarray (; 46 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/typedarray/Float64Array#subarray (; 47 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -2464,7 +2691,7 @@
call $~lib/rt/pure/__release
local.get $1
)
(func $~lib/util/sort/insertionSort<f64> (; 47 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/sort/insertionSort<f64> (; 48 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 f64)
@ -2544,230 +2771,6 @@
unreachable
end
)
(func $~lib/memory/memory.fill (; 48 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i64)
block $~lib/util/memory/memset|inlined.0
local.get $2
i32.eqz
br_if $~lib/util/memory/memset|inlined.0
local.get $0
local.get $1
i32.store8
local.get $0
local.get $2
i32.add
i32.const 1
i32.sub
local.get $1
i32.store8
local.get $2
i32.const 2
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 1
i32.add
local.get $1
i32.store8
local.get $0
i32.const 2
i32.add
local.get $1
i32.store8
local.get $0
local.get $2
i32.add
local.tee $3
i32.const 2
i32.sub
local.get $1
i32.store8
local.get $3
i32.const 3
i32.sub
local.get $1
i32.store8
local.get $2
i32.const 6
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $0
i32.const 3
i32.add
local.get $1
i32.store8
local.get $0
local.get $2
i32.add
i32.const 4
i32.sub
local.get $1
i32.store8
local.get $2
i32.const 8
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $2
i32.const 0
local.get $0
i32.sub
i32.const 3
i32.and
local.tee $2
i32.sub
local.get $0
local.get $2
i32.add
local.tee $2
local.get $1
i32.const 255
i32.and
i32.const 16843009
i32.mul
local.tee $0
i32.store
i32.const -4
i32.and
local.tee $3
local.get $2
i32.add
i32.const 4
i32.sub
local.get $0
i32.store
local.get $3
i32.const 8
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $2
i32.const 4
i32.add
local.get $0
i32.store
local.get $2
i32.const 8
i32.add
local.get $0
i32.store
local.get $2
local.get $3
i32.add
local.tee $1
i32.const 12
i32.sub
local.get $0
i32.store
local.get $1
i32.const 8
i32.sub
local.get $0
i32.store
local.get $3
i32.const 24
i32.le_u
br_if $~lib/util/memory/memset|inlined.0
local.get $2
i32.const 12
i32.add
local.get $0
i32.store
local.get $2
i32.const 16
i32.add
local.get $0
i32.store
local.get $2
i32.const 20
i32.add
local.get $0
i32.store
local.get $2
i32.const 24
i32.add
local.get $0
i32.store
local.get $2
local.get $3
i32.add
local.tee $1
i32.const 28
i32.sub
local.get $0
i32.store
local.get $1
i32.const 24
i32.sub
local.get $0
i32.store
local.get $1
i32.const 20
i32.sub
local.get $0
i32.store
local.get $1
i32.const 16
i32.sub
local.get $0
i32.store
local.get $2
local.get $2
i32.const 4
i32.and
i32.const 24
i32.add
local.tee $2
i32.add
local.set $1
local.get $3
local.get $2
i32.sub
local.set $2
local.get $0
i64.extend_i32_u
local.get $0
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $4
loop $continue|0
local.get $2
i32.const 32
i32.lt_u
i32.eqz
if
local.get $1
local.get $4
i64.store
local.get $1
i32.const 8
i32.add
local.get $4
i64.store
local.get $1
i32.const 16
i32.add
local.get $4
i64.store
local.get $1
i32.const 24
i32.add
local.get $4
i64.store
local.get $2
i32.const 32
i32.sub
local.set $2
local.get $1
i32.const 32
i32.add
local.set $1
br $continue|0
end
end
end
)
(func $~lib/util/sort/weakHeapSort<f64> (; 49 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)

View File

@ -91,10 +91,10 @@
(global $~lib/typedarray/Float32Array.BYTES_PER_ELEMENT i32 (i32.const 4))
(global $~lib/typedarray/Float64Array.BYTES_PER_ELEMENT i32 (i32.const 8))
(global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/rt/pure/CUR (mut i32) (i32.const 0))
(global $~lib/rt/pure/END (mut i32) (i32.const 0))
(global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0))
(global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0))
(global $~lib/argc (mut i32) (i32.const 0))
(global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647))
(global $std/typedarray/forEachCallCount (mut i32) (i32.const 0))
@ -1407,7 +1407,271 @@
i32.const 16
i32.add
)
(func $~lib/rt/pure/increment (; 15 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/memory/memory.fill (; 15 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
block $~lib/util/memory/memset|inlined.0
local.get $0
local.set $5
local.get $1
local.set $4
local.get $2
local.set $3
local.get $3
i32.eqz
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 1
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 2
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 1
i32.add
local.get $4
i32.store8
local.get $5
i32.const 2
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 2
i32.sub
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 3
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 6
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 3
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
i32.const 0
local.get $5
i32.sub
i32.const 3
i32.and
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $3
i32.const -4
i32.and
local.set $3
i32.const -1
i32.const 255
i32.div_u
local.get $4
i32.const 255
i32.and
i32.mul
local.set $7
local.get $5
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $7
i32.store
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 4
i32.add
local.get $7
i32.store
local.get $5
i32.const 8
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 12
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 8
i32.sub
local.get $7
i32.store
local.get $3
i32.const 24
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 12
i32.add
local.get $7
i32.store
local.get $5
i32.const 16
i32.add
local.get $7
i32.store
local.get $5
i32.const 20
i32.add
local.get $7
i32.store
local.get $5
i32.const 24
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 28
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 24
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 20
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 16
i32.sub
local.get $7
i32.store
i32.const 24
local.get $5
i32.const 4
i32.and
i32.add
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $7
i64.extend_i32_u
local.get $7
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $8
block $break|0
loop $continue|0
local.get $3
i32.const 32
i32.ge_u
i32.eqz
br_if $break|0
local.get $5
local.get $8
i64.store
local.get $5
i32.const 8
i32.add
local.get $8
i64.store
local.get $5
i32.const 16
i32.add
local.get $8
i64.store
local.get $5
i32.const 24
i32.add
local.get $8
i64.store
local.get $3
i32.const 32
i32.sub
local.set $3
local.get $5
i32.const 32
i32.add
local.set $5
br $continue|0
end
unreachable
end
end
)
(func $~lib/rt/pure/increment (; 16 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
local.get $0
i32.load offset=4
@ -1456,7 +1720,7 @@
unreachable
end
)
(func $~lib/rt/pure/__retain (; 16 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/pure/__retain (; 17 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
global.get $~lib/heap/__heap_base
i32.gt_u
@ -1468,7 +1732,7 @@
end
local.get $0
)
(func $~lib/rt/tlsf/freeBlock (; 17 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(func $~lib/rt/tlsf/freeBlock (; 18 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32)
(local $2 i32)
local.get $1
i32.load
@ -1497,7 +1761,7 @@
local.get $1
call $~lib/rt/rtrace/onfree
)
(func $~lib/rt/__typeinfo (; 18 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/rt/__typeinfo (; 19 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
global.get $~lib/rt/__rtti_base
local.set $1
@ -1522,7 +1786,7 @@
i32.add
i32.load
)
(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)
@ -2550,7 +2814,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)
@ -2775,7 +3039,7 @@
end
end
)
(func $~lib/rt/tlsf/__free (; 21 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/tlsf/__free (; 22 ;) (type $FUNCSIG$vi) (param $0 i32)
global.get $~lib/rt/tlsf/ROOT
i32.eqz
if
@ -2812,7 +3076,7 @@
i32.sub
call $~lib/rt/tlsf/freeBlock
)
(func $~lib/rt/pure/growRoots (; 22 ;) (type $FUNCSIG$v)
(func $~lib/rt/pure/growRoots (; 23 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -2870,7 +3134,7 @@
i32.add
global.set $~lib/rt/pure/END
)
(func $~lib/rt/pure/appendRoot (; 23 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/appendRoot (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
global.get $~lib/rt/pure/CUR
local.set $1
@ -2890,7 +3154,7 @@
i32.add
global.set $~lib/rt/pure/CUR
)
(func $~lib/rt/pure/decrement (; 24 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/decrement (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -2994,7 +3258,7 @@
end
end
)
(func $~lib/rt/pure/__release (; 25 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $~lib/rt/pure/__release (; 26 ;) (type $FUNCSIG$vi) (param $0 i32)
local.get $0
global.get $~lib/heap/__heap_base
i32.gt_u
@ -3005,7 +3269,7 @@
call $~lib/rt/pure/decrement
end
)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 26 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#constructor (; 27 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -3029,6 +3293,10 @@
i32.const 0
call $~lib/rt/tlsf/__alloc
local.set $3
local.get $3
i32.const 0
local.get $1
call $~lib/memory/memory.fill
local.get $0
i32.eqz
if
@ -3072,7 +3340,7 @@
i32.store offset=8
local.get $0
)
(func $~lib/typedarray/Int8Array#constructor (; 27 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Int8Array#constructor (; 28 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3088,22 +3356,22 @@
local.set $0
local.get $0
)
(func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 28 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=4
local.get $0
i32.load
i32.sub
)
(func $~lib/arraybuffer/ArrayBufferView#get:byteLength (; 29 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/arraybuffer/ArrayBufferView#get:byteLength (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=8
)
(func $~lib/typedarray/Int8Array#get:length (; 30 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int8Array#get:length (; 31 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
)
(func $~lib/typedarray/Uint8Array#constructor (; 31 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Uint8Array#constructor (; 32 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3119,11 +3387,11 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Uint8Array#get:length (; 32 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint8Array#get:length (; 33 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
)
(func $~lib/typedarray/Uint8ClampedArray#constructor (; 33 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Uint8ClampedArray#constructor (; 34 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3139,11 +3407,11 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Uint8ClampedArray#get:length (; 34 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint8ClampedArray#get:length (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
)
(func $~lib/typedarray/Int16Array#constructor (; 35 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Int16Array#constructor (; 36 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3159,13 +3427,13 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Int16Array#get:length (; 36 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int16Array#get:length (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
i32.const 1
i32.shr_u
)
(func $~lib/typedarray/Uint16Array#constructor (; 37 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Uint16Array#constructor (; 38 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3181,13 +3449,13 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Uint16Array#get:length (; 38 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint16Array#get:length (; 39 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
i32.const 1
i32.shr_u
)
(func $~lib/typedarray/Int32Array#constructor (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Int32Array#constructor (; 40 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3203,13 +3471,13 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Int32Array#get:length (; 40 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int32Array#get:length (; 41 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
i32.const 2
i32.shr_u
)
(func $~lib/typedarray/Uint32Array#constructor (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Uint32Array#constructor (; 42 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3225,13 +3493,13 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Uint32Array#get:length (; 42 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint32Array#get:length (; 43 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
i32.const 2
i32.shr_u
)
(func $~lib/typedarray/Int64Array#constructor (; 43 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Int64Array#constructor (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3247,13 +3515,13 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Int64Array#get:length (; 44 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Int64Array#get:length (; 45 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
i32.const 3
i32.shr_u
)
(func $~lib/typedarray/Uint64Array#constructor (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Uint64Array#constructor (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3269,13 +3537,13 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Uint64Array#get:length (; 46 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Uint64Array#get:length (; 47 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
i32.const 3
i32.shr_u
)
(func $~lib/typedarray/Float32Array#constructor (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Float32Array#constructor (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3291,13 +3559,13 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Float32Array#get:length (; 48 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Float32Array#get:length (; 49 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
i32.const 2
i32.shr_u
)
(func $~lib/typedarray/Float64Array#constructor (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Float64Array#constructor (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
if (result i32)
local.get $0
@ -3313,13 +3581,13 @@
local.set $0
local.get $0
)
(func $~lib/typedarray/Float64Array#get:length (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/typedarray/Float64Array#get:length (; 51 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
call $~lib/arraybuffer/ArrayBufferView#get:byteLength
i32.const 3
i32.shr_u
)
(func $std/typedarray/testInstantiate (; 51 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $std/typedarray/testInstantiate (; 52 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -3849,7 +4117,7 @@
local.get $11
call $~lib/rt/pure/__release
)
(func $~lib/typedarray/Int32Array#__set (; 52 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/typedarray/Int32Array#__set (; 53 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
local.get $1
local.get $0
i32.load offset=8
@ -3873,7 +4141,7 @@
local.get $2
i32.store
)
(func $~lib/typedarray/Int32Array#__get (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/typedarray/Int32Array#__get (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $1
local.get $0
i32.load offset=8
@ -3896,7 +4164,7 @@
i32.add
i32.load
)
(func $~lib/typedarray/Int32Array#subarray (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/typedarray/Int32Array#subarray (; 55 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -4017,7 +4285,7 @@
call $~lib/rt/pure/__release
local.get $9
)
(func $~lib/typedarray/Float64Array#__set (; 55 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64)
(func $~lib/typedarray/Float64Array#__set (; 56 ;) (type $FUNCSIG$viid) (param $0 i32) (param $1 i32) (param $2 f64)
local.get $1
local.get $0
i32.load offset=8
@ -4041,7 +4309,7 @@
local.get $2
f64.store
)
(func $~lib/typedarray/Float64Array#subarray (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/typedarray/Float64Array#subarray (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -4162,7 +4430,7 @@
call $~lib/rt/pure/__release
local.get $9
)
(func $~lib/util/sort/insertionSort<f64> (; 57 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/sort/insertionSort<f64> (; 58 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 f64)
(local $5 i32)
@ -4250,270 +4518,6 @@
unreachable
end
)
(func $~lib/memory/memory.fill (; 58 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
(local $6 i32)
(local $7 i32)
(local $8 i64)
block $~lib/util/memory/memset|inlined.0
local.get $0
local.set $5
local.get $1
local.set $4
local.get $2
local.set $3
local.get $3
i32.eqz
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 1
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 2
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 1
i32.add
local.get $4
i32.store8
local.get $5
i32.const 2
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 2
i32.sub
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 3
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 6
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 3
i32.add
local.get $4
i32.store8
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $4
i32.store8
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
i32.const 0
local.get $5
i32.sub
i32.const 3
i32.and
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $3
i32.const -4
i32.and
local.set $3
i32.const -1
i32.const 255
i32.div_u
local.get $4
i32.const 255
i32.and
i32.mul
local.set $7
local.get $5
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 4
i32.sub
local.get $7
i32.store
local.get $3
i32.const 8
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 4
i32.add
local.get $7
i32.store
local.get $5
i32.const 8
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 12
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 8
i32.sub
local.get $7
i32.store
local.get $3
i32.const 24
i32.le_u
if
br $~lib/util/memory/memset|inlined.0
end
local.get $5
i32.const 12
i32.add
local.get $7
i32.store
local.get $5
i32.const 16
i32.add
local.get $7
i32.store
local.get $5
i32.const 20
i32.add
local.get $7
i32.store
local.get $5
i32.const 24
i32.add
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 28
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 24
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 20
i32.sub
local.get $7
i32.store
local.get $5
local.get $3
i32.add
i32.const 16
i32.sub
local.get $7
i32.store
i32.const 24
local.get $5
i32.const 4
i32.and
i32.add
local.set $6
local.get $5
local.get $6
i32.add
local.set $5
local.get $3
local.get $6
i32.sub
local.set $3
local.get $7
i64.extend_i32_u
local.get $7
i64.extend_i32_u
i64.const 32
i64.shl
i64.or
local.set $8
block $break|0
loop $continue|0
local.get $3
i32.const 32
i32.ge_u
i32.eqz
br_if $break|0
local.get $5
local.get $8
i64.store
local.get $5
i32.const 8
i32.add
local.get $8
i64.store
local.get $5
i32.const 16
i32.add
local.get $8
i64.store
local.get $5
i32.const 24
i32.add
local.get $8
i64.store
local.get $3
i32.const 32
i32.sub
local.set $3
local.get $5
i32.const 32
i32.add
local.set $5
br $continue|0
end
unreachable
end
end
)
(func $~lib/util/sort/weakHeapSort<f64> (; 59 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)