give it a shot

This commit is contained in:
dcode 2019-03-21 18:30:36 +01:00
parent d9463c5484
commit e57fa14ff9
5 changed files with 740 additions and 204 deletions

View File

@ -34,6 +34,22 @@ export class Array<T> extends ArrayBufferView {
constructor(length: i32 = 0) {
super(length, alignof<T>());
if (isReference<T>()) {
if (!isNullable<T>()) {
let cur = this.dataStart;
let end = cur + (<usize>length << alignof<T>());
while (cur < end) {
// TODO: probably a common reason for complaints of T not having a default ctor. what if
// the array ctor would also take default arguments, like `new Array<Ref>(10, ...args)`?
store<T>(cur,
isString<T>()
? "" // no need to instantiate
: RETAIN<T,this>(instantiate<T>(), this)
);
cur += sizeof<T>();
}
}
}
this.length_ = length;
}

View File

@ -19,7 +19,7 @@ import { HEAP_BASE, memory } from "./memory";
// Changes the size of a previously allocated, but not yet registered, runtime object, for
// example when a pre-allocated buffer turned out to be too small or too large. This works by
// aligning dynamic allocations to actual block size internally so in the best case REALLOCATE
// only updates payload size while in the worst case moves the object to larger a block.
// only updates payload size while in the worst case moves the object to a larger block.
//
// DISCARD(ref)
// ------------

View File

@ -2143,7 +2143,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -2284,7 +2284,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -2531,7 +2531,7 @@
if
i32.const 0
i32.const 272
i32.const 204
i32.const 220
i32.const 20
call $~lib/env/abort
unreachable
@ -2798,7 +2798,7 @@
if
i32.const 0
i32.const 272
i32.const 265
i32.const 281
i32.const 20
call $~lib/env/abort
unreachable
@ -3575,7 +3575,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -4326,7 +4326,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -4822,7 +4822,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -4920,7 +4920,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -5341,7 +5341,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -5596,6 +5596,9 @@
)
(func $~lib/array/Array<Array<i32>>#constructor (; 101 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 16
call $~lib/runtime/doAllocate
i32.const 11
@ -5607,6 +5610,34 @@
i32.const 0
i32.store offset=12
local.get $1
i32.load offset=4
local.tee $2
local.get $0
i32.const 2
i32.shl
i32.add
local.set $3
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
i32.const 0
call $~lib/array/Array<i32>#constructor
local.tee $4
local.get $1
call $~lib/runtime/doRetain
local.get $2
local.get $4
i32.store
local.get $2
i32.const 4
i32.add
local.set $2
br $continue|0
end
end
local.get $1
local.get $0
i32.store offset=12
local.get $1
@ -5715,7 +5746,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -5783,7 +5814,18 @@
unreachable
end
)
(func $std/array/createReverseOrderedElementsArray (; 107 ;) (type $FUNCSIG$i) (result i32)
(func $std/array/Proxy<i32>#constructor (; 107 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
i32.const 4
call $~lib/runtime/doAllocate
i32.const 13
call $~lib/runtime/doRegister
local.tee $1
local.get $0
i32.store
local.get $1
)
(func $~lib/array/Array<Proxy<i32>>#constructor (; 108 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -5799,31 +5841,56 @@
i32.const 0
i32.store offset=12
local.get $0
i32.load offset=4
local.tee $1
i32.const 2048
i32.add
local.set $2
loop $continue|0
local.get $1
local.get $2
i32.lt_u
if
i32.const 0
call $std/array/Proxy<i32>#constructor
local.tee $3
local.get $0
call $~lib/runtime/doRetain
local.get $1
local.get $3
i32.store
local.get $1
i32.const 4
i32.add
local.set $1
br $continue|0
end
end
local.get $0
i32.const 512
i32.store offset=12
local.get $0
)
(func $std/array/createReverseOrderedElementsArray (; 109 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
call $~lib/array/Array<Proxy<i32>>#constructor
local.set $0
loop $repeat|0
local.get $1
local.get $0
i32.load offset=12
i32.lt_s
if
local.get $0
local.get $1
local.get $0
i32.load offset=12
local.set $2
i32.const 4
call $~lib/runtime/doAllocate
i32.const 13
call $~lib/runtime/doRegister
local.tee $3
local.get $2
i32.const 1
i32.sub
local.get $1
i32.sub
i32.store
local.get $0
local.get $1
local.get $3
call $std/array/Proxy<i32>#constructor
call $~lib/array/Array<Array<i32>>#__set
local.get $1
i32.const 1
@ -5834,14 +5901,14 @@
end
local.get $0
)
(func $start:std/array~anonymous|48 (; 108 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $start:std/array~anonymous|48 (; 110 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.load
local.get $1
i32.load
i32.sub
)
(func $~lib/util/string/compareImpl (; 109 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/string/compareImpl (; 111 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
loop $continue|0
local.get $2
@ -5874,7 +5941,7 @@
end
local.get $3
)
(func $~lib/util/sort/COMPARATOR<String>~anonymous|0 (; 110 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/util/sort/COMPARATOR<String>~anonymous|0 (; 112 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -5951,7 +6018,7 @@
select
call $~lib/util/string/compareImpl
)
(func $std/array/assertSorted<String>|trampoline (; 111 ;) (type $FUNCSIG$vi) (param $0 i32)
(func $std/array/assertSorted<String>|trampoline (; 113 ;) (type $FUNCSIG$vi) (param $0 i32)
(local $1 i32)
block $1of1
block $0of1
@ -5970,7 +6037,7 @@
local.get $1
call $std/array/assertSorted<Array<i32>>
)
(func $~lib/string/String.__eq (; 112 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__eq (; 114 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
local.get $1
@ -6016,7 +6083,7 @@
call $~lib/util/string/compareImpl
i32.eqz
)
(func $std/array/isArraysEqual<String> (; 113 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/isArraysEqual<String> (; 115 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
@ -6063,7 +6130,47 @@
end
i32.const 1
)
(func $~lib/string/String#charAt (; 114 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<String>#constructor (; 116 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
i32.const 16
call $~lib/runtime/doAllocate
i32.const 14
call $~lib/runtime/doRegister
i32.const 400
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
local.tee $1
i32.const 0
i32.store offset=12
local.get $1
i32.load offset=4
local.tee $0
i32.const 1600
i32.add
local.set $2
loop $continue|0
local.get $0
local.get $2
i32.lt_u
if
local.get $0
i32.const 4200
i32.store
local.get $0
i32.const 4
i32.add
local.set $0
br $continue|0
end
end
local.get $1
i32.const 400
i32.store offset=12
local.get $1
)
(func $~lib/string/String#charAt (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
local.get $0
i32.const 3020
@ -6089,7 +6196,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/string/String#concat (; 115 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#concat (; 118 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -6138,7 +6245,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/string/String.__concat (; 116 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String.__concat (; 119 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
i32.const 4424
local.get $0
@ -6146,7 +6253,7 @@
local.get $1
call $~lib/string/String#concat
)
(func $std/array/createRandomString (; 117 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $std/array/createRandomString (; 120 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
i32.const 4200
@ -6178,22 +6285,11 @@
end
local.get $1
)
(func $std/array/createRandomStringArray (; 118 ;) (type $FUNCSIG$i) (result i32)
(func $std/array/createRandomStringArray (; 121 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
i32.const 16
call $~lib/runtime/doAllocate
i32.const 14
call $~lib/runtime/doRegister
i32.const 400
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
local.tee $0
i32.const 0
i32.store offset=12
local.get $0
i32.const 400
i32.store offset=12
call $~lib/array/Array<String>#constructor
local.set $0
loop $repeat|0
local.get $1
local.get $0
@ -6217,7 +6313,7 @@
end
local.get $0
)
(func $~lib/string/String#substring (; 119 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/string/String#substring (; 122 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -6315,7 +6411,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/array/Array<bool>#join_bool (; 120 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<bool>#join_bool (; 123 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -6467,7 +6563,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/util/number/decimalCount32 (; 121 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/decimalCount32 (; 124 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 100000
i32.lt_u
@ -6521,7 +6617,7 @@
end
end
)
(func $~lib/util/number/utoa32_lut (; 122 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(func $~lib/util/number/utoa32_lut (; 125 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 5092
@ -6631,7 +6727,7 @@
i32.store16
end
)
(func $~lib/util/number/itoa32 (; 123 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/itoa32 (; 126 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -6673,7 +6769,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/util/number/itoa_stream<i32> (; 124 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/itoa_stream<i32> (; 127 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 1
i32.shl
@ -6717,7 +6813,7 @@
end
local.get $2
)
(func $~lib/array/Array<i32>#join_int (; 125 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#join_int (; 128 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -6835,12 +6931,12 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/array/Array<i32>#join (; 126 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<i32>#join (; 129 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/array/Array<i32>#join_int
)
(func $~lib/util/number/utoa32 (; 127 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/utoa32 (; 130 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -6863,7 +6959,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/util/number/itoa_stream<u32> (; 128 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/itoa_stream<u32> (; 131 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 1
i32.shl
@ -6887,7 +6983,7 @@
call $~lib/util/number/utoa32_lut
local.get $0
)
(func $~lib/array/Array<u32>#join_int (; 129 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u32>#join_int (; 132 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -7005,12 +7101,12 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/array/Array<u32>#join (; 130 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u32>#join (; 133 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/array/Array<u32>#join_int
)
(func $~lib/util/number/genDigits (; 131 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(func $~lib/util/number/genDigits (; 134 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32)
(local $7 i32)
(local $8 i64)
(local $9 i32)
@ -7421,7 +7517,7 @@
local.get $2
end
)
(func $~lib/util/number/prettify (; 132 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/prettify (; 135 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -7683,7 +7779,7 @@
end
end
)
(func $~lib/util/number/dtoa_core (; 133 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(func $~lib/util/number/dtoa_core (; 136 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32)
(local $2 i64)
(local $3 i32)
(local $4 i64)
@ -7994,7 +8090,7 @@
local.get $11
i32.add
)
(func $~lib/util/number/dtoa (; 134 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(func $~lib/util/number/dtoa (; 137 ;) (type $FUNCSIG$id) (param $0 f64) (result i32)
(local $1 i32)
(local $2 i32)
local.get $0
@ -8039,7 +8135,7 @@
call $~lib/runtime/assertUnregistered
local.get $1
)
(func $~lib/util/number/dtoa_stream (; 135 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32)
(func $~lib/util/number/dtoa_stream (; 138 ;) (type $FUNCSIG$iiid) (param $0 i32) (param $1 i32) (param $2 f64) (result i32)
local.get $1
i32.const 1
i32.shl
@ -8108,7 +8204,7 @@
local.get $2
call $~lib/util/number/dtoa_core
)
(func $~lib/array/Array<f64>#join_flt (; 136 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<f64>#join_flt (; 139 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -8224,7 +8320,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/array/Array<String>#join_str (; 137 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<String>#join_str (; 140 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -8391,18 +8487,18 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/array/Array<String>#join (; 138 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<String>#join (; 141 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/array/Array<String>#join_str
)
(func $std/array/Ref#constructor (; 139 ;) (type $FUNCSIG$i) (result i32)
(func $std/array/Ref#constructor (; 142 ;) (type $FUNCSIG$i) (result i32)
i32.const 0
call $~lib/runtime/doAllocate
i32.const 18
call $~lib/runtime/doRegister
)
(func $~lib/array/Array<Ref | null>#join_ref (; 140 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Ref | null>#join_ref (; 143 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -8535,12 +8631,12 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/array/Array<i32>#toString (; 141 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i32>#toString (; 144 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 4528
call $~lib/array/Array<i32>#join
)
(func $~lib/util/number/itoa_stream<i8> (; 142 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/itoa_stream<i8> (; 145 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
local.get $1
i32.const 1
@ -8595,7 +8691,7 @@
end
local.get $1
)
(func $~lib/array/Array<i8>#join_int (; 143 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i8>#join_int (; 146 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -8707,7 +8803,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/util/number/itoa_stream<u16> (; 144 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/itoa_stream<u16> (; 147 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 1
i32.shl
@ -8737,7 +8833,7 @@
call $~lib/util/number/utoa32_lut
local.get $1
)
(func $~lib/array/Array<u16>#join_int (; 145 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<u16>#join_int (; 148 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -8853,7 +8949,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/util/number/decimalCount64 (; 146 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/decimalCount64 (; 149 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
local.get $0
i64.const 1000000000000000
i64.lt_u
@ -8907,7 +9003,7 @@
end
end
)
(func $~lib/util/number/utoa64_lut (; 147 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(func $~lib/util/number/utoa64_lut (; 150 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -9004,7 +9100,7 @@
local.get $2
call $~lib/util/number/utoa32_lut
)
(func $~lib/util/number/utoa64 (; 148 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/utoa64 (; 151 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -9046,7 +9142,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/util/number/itoa_stream<u64> (; 149 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(func $~lib/util/number/itoa_stream<u64> (; 152 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(local $3 i32)
local.get $1
i32.const 1
@ -9086,7 +9182,7 @@
end
local.get $1
)
(func $~lib/array/Array<u64>#join_int (; 150 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<u64>#join_int (; 153 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -9202,7 +9298,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/util/number/itoa64 (; 151 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(func $~lib/util/number/itoa64 (; 154 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -9267,7 +9363,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/util/number/itoa_stream<i64> (; 152 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(func $~lib/util/number/itoa_stream<i64> (; 155 ;) (type $FUNCSIG$iiij) (param $0 i32) (param $1 i32) (param $2 i64) (result i32)
(local $3 i32)
(local $4 i32)
local.get $1
@ -9330,7 +9426,7 @@
end
local.get $1
)
(func $~lib/array/Array<i64>#join_int (; 153 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<i64>#join_int (; 156 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -9446,12 +9542,12 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/array/Array<String>#toString (; 154 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<String>#toString (; 157 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 4528
call $~lib/array/Array<String>#join
)
(func $~lib/array/Array<Array<i32>>#join_arr (; 155 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<i32>>#join_arr (; 158 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -9544,7 +9640,64 @@
local.get $1
end
)
(func $~lib/util/number/itoa_stream<u8> (; 156 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/array/Array<Array<u8>>#constructor (; 159 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 16
call $~lib/runtime/doAllocate
i32.const 23
call $~lib/runtime/doRegister
i32.const 2
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
local.tee $0
i32.const 0
i32.store offset=12
local.get $0
i32.load offset=4
local.tee $1
i32.const 8
i32.add
local.set $3
loop $continue|0
local.get $1
local.get $3
i32.lt_u
if
i32.const 16
call $~lib/runtime/doAllocate
i32.const 7
call $~lib/runtime/doRegister
i32.const 0
i32.const 0
call $~lib/runtime/ArrayBufferView#constructor
local.tee $2
i32.const 0
i32.store offset=12
local.get $2
i32.const 0
i32.store offset=12
local.get $2
local.get $0
call $~lib/runtime/doRetain
local.get $1
local.get $2
i32.store
local.get $1
i32.const 4
i32.add
local.set $1
br $continue|0
end
end
local.get $0
i32.const 2
i32.store offset=12
local.get $0
)
(func $~lib/util/number/itoa_stream<u8> (; 160 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
local.get $1
i32.const 1
i32.shl
@ -9574,7 +9727,7 @@
call $~lib/util/number/utoa32_lut
local.get $1
)
(func $~lib/array/Array<u8>#join_int (; 157 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<u8>#join_int (; 161 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -9686,7 +9839,7 @@
i32.const 1
call $~lib/runtime/doRegister
)
(func $~lib/array/Array<Array<u8>>#join_arr (; 158 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<u8>>#join_arr (; 162 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -9776,7 +9929,112 @@
local.get $1
end
)
(func $~lib/array/Array<Array<u32>>#join_arr (; 159 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<u32>>#constructor (; 163 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
i32.const 16
call $~lib/runtime/doAllocate
i32.const 24
call $~lib/runtime/doRegister
local.get $0
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
local.tee $1
i32.const 0
i32.store offset=12
local.get $1
i32.load offset=4
local.tee $2
local.get $0
i32.const 2
i32.shl
i32.add
local.set $4
loop $continue|0
local.get $2
local.get $4
i32.lt_u
if
i32.const 16
call $~lib/runtime/doAllocate
i32.const 8
call $~lib/runtime/doRegister
i32.const 0
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
local.tee $3
i32.const 0
i32.store offset=12
local.get $3
i32.const 0
i32.store offset=12
local.get $3
local.get $1
call $~lib/runtime/doRetain
local.get $2
local.get $3
i32.store
local.get $2
i32.const 4
i32.add
local.set $2
br $continue|0
end
end
local.get $1
local.get $0
i32.store offset=12
local.get $1
)
(func $~lib/array/Array<Array<Array<u32>>>#constructor (; 164 ;) (type $FUNCSIG$i) (result i32)
(local $0 i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
i32.const 16
call $~lib/runtime/doAllocate
i32.const 25
call $~lib/runtime/doRegister
i32.const 1
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
local.tee $0
i32.const 0
i32.store offset=12
local.get $0
i32.load offset=4
local.tee $1
i32.const 4
i32.add
local.set $2
loop $continue|0
local.get $1
local.get $2
i32.lt_u
if
i32.const 0
call $~lib/array/Array<Array<u32>>#constructor
local.tee $3
local.get $0
call $~lib/runtime/doRetain
local.get $1
local.get $3
i32.store
local.get $1
i32.const 4
i32.add
local.set $1
br $continue|0
end
end
local.get $0
i32.const 1
i32.store offset=12
local.get $0
)
(func $~lib/array/Array<Array<u32>>#join_arr (; 165 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -9869,7 +10127,7 @@
local.get $1
end
)
(func $~lib/array/Array<Array<Array<u32>>>#join_arr (; 160 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<Array<u32>>>#join_arr (; 166 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(local $1 i32)
(local $2 i32)
(local $3 i32)
@ -9959,7 +10217,7 @@
local.get $1
end
)
(func $start:std/array (; 161 ;) (type $FUNCSIG$v)
(func $start:std/array (; 167 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -14158,20 +14416,8 @@
call $~lib/env/abort
unreachable
end
i32.const 16
call $~lib/runtime/doAllocate
i32.const 23
call $~lib/runtime/doRegister
i32.const 2
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
call $~lib/array/Array<Array<u8>>#constructor
local.tee $0
i32.const 0
i32.store offset=12
local.get $0
i32.const 2
i32.store offset=12
local.get $0
i32.load offset=4
local.set $2
i32.const 7936
@ -14209,36 +14455,13 @@
call $~lib/env/abort
unreachable
end
i32.const 16
call $~lib/runtime/doAllocate
i32.const 25
call $~lib/runtime/doRegister
i32.const 1
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
call $~lib/array/Array<Array<Array<u32>>>#constructor
local.tee $0
i32.const 0
i32.store offset=12
local.get $0
i32.const 1
i32.store offset=12
local.get $0
i32.load offset=4
local.set $2
i32.const 16
call $~lib/runtime/doAllocate
i32.const 24
call $~lib/runtime/doRegister
i32.const 1
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
call $~lib/array/Array<Array<u32>>#constructor
local.tee $1
i32.const 0
i32.store offset=12
local.get $1
i32.const 1
i32.store offset=12
local.get $1
i32.load offset=4
local.set $3
i32.const 8056
@ -14273,7 +14496,7 @@
unreachable
end
)
(func $std/array/main (; 162 ;) (type $FUNCSIG$v)
(func $std/array/main (; 168 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -14282,7 +14505,7 @@
global.set $~lib/started
end
)
(func $null (; 163 ;) (type $FUNCSIG$v)
(func $null (; 169 ;) (type $FUNCSIG$v)
nop
)
)

View File

@ -779,7 +779,7 @@ function createReverseOrderedNestedArray(size: i32): Array<Array<i32>> {
}
class Proxy<T> {
constructor(public x: T) {}
constructor(public x: T = 0) {}
}
function createReverseOrderedElementsArray(size: i32): Proxy<i32>[] {

View File

@ -2564,7 +2564,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -2732,7 +2732,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -3023,7 +3023,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -3048,7 +3048,7 @@
if
i32.const 0
i32.const 272
i32.const 204
i32.const 220
i32.const 20
call $~lib/env/abort
unreachable
@ -3407,7 +3407,7 @@
if
i32.const 0
i32.const 272
i32.const 265
i32.const 281
i32.const 20
call $~lib/env/abort
unreachable
@ -4337,7 +4337,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -5379,7 +5379,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -5989,7 +5989,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -6128,7 +6128,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -6624,7 +6624,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -7128,7 +7128,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -7459,6 +7459,9 @@
)
(func $~lib/array/Array<Array<i32>>#constructor (; 150 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
local.get $0
if (result i32)
local.get $0
@ -7482,6 +7485,45 @@
i32.const 0
i32.store offset=12
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $1
i32.const 2
i32.shl
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
block $~lib/runtime/RETAIN<Array<i32>,Array<Array<i32>>>|inlined.0 (result i32)
i32.const 0
i32.const 0
call $~lib/array/Array<i32>#constructor
local.set $5
local.get $0
local.set $4
local.get $5
local.get $4
call $~lib/runtime/doRetain
local.get $5
end
i32.store
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
local.get $0
local.get $1
i32.store offset=12
local.get $0
@ -7542,7 +7584,7 @@
end
end
local.get $3
block $~lib/runtime/RETAIN<Array<i32>,Array<Array<i32>>>|inlined.0 (result i32)
block $~lib/runtime/RETAIN<Array<i32>,Array<Array<i32>>>|inlined.1 (result i32)
local.get $2
local.set $6
local.get $0
@ -7576,7 +7618,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -7752,7 +7794,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -7879,9 +7921,36 @@
unreachable
end
)
(func $~lib/array/Array<Proxy<i32>>#constructor (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $std/array/Proxy<i32>#constructor (; 162 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.eqz
if
block $~lib/runtime/REGISTER<Proxy<i32>>|inlined.0 (result i32)
block $~lib/runtime/ALLOCATE|inlined.8 (result i32)
i32.const 4
local.set $2
local.get $2
call $~lib/runtime/doAllocate
end
local.set $2
local.get $2
i32.const 13
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
local.get $1
i32.store
local.get $0
)
(func $~lib/array/Array<Proxy<i32>>#constructor (; 163 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
local.get $0
if (result i32)
local.get $0
else
@ -7904,38 +7973,53 @@
i32.const 0
i32.store offset=12
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $1
i32.const 2
i32.shl
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
block $~lib/runtime/RETAIN<Proxy<i32>,Array<Proxy<i32>>>|inlined.0 (result i32)
i32.const 0
i32.const 0
call $std/array/Proxy<i32>#constructor
local.set $5
local.get $0
local.set $4
local.get $5
local.get $4
call $~lib/runtime/doRetain
local.get $5
end
i32.store
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
local.get $0
local.get $1
i32.store offset=12
local.get $0
)
(func $~lib/array/Array<Proxy<i32>>#get:length (; 163 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Proxy<i32>>#get:length (; 164 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.load offset=12
)
(func $std/array/Proxy<i32>#constructor (; 164 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
i32.eqz
if
block $~lib/runtime/REGISTER<Proxy<i32>>|inlined.0 (result i32)
block $~lib/runtime/ALLOCATE|inlined.8 (result i32)
i32.const 4
local.set $2
local.get $2
call $~lib/runtime/doAllocate
end
local.set $2
local.get $2
i32.const 13
call $~lib/runtime/doRegister
end
local.set $0
end
local.get $0
local.get $1
i32.store
local.get $0
)
(func $~lib/array/Array<Proxy<i32>>#__set (; 165 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32)
(local $3 i32)
(local $4 i32)
@ -7976,7 +8060,7 @@
end
end
local.get $3
block $~lib/runtime/RETAIN<Proxy<i32>,Array<Proxy<i32>>>|inlined.0 (result i32)
block $~lib/runtime/RETAIN<Proxy<i32>,Array<Proxy<i32>>>|inlined.1 (result i32)
local.get $2
local.set $6
local.get $0
@ -8153,7 +8237,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -8226,7 +8310,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -8410,7 +8494,7 @@
if
i32.const 0
i32.const 272
i32.const 377
i32.const 393
i32.const 4
call $~lib/env/abort
unreachable
@ -8487,7 +8571,7 @@
if
i32.const 0
i32.const 272
i32.const 69
i32.const 85
i32.const 61
call $~lib/env/abort
unreachable
@ -8826,6 +8910,7 @@
)
(func $~lib/array/Array<String>#constructor (; 186 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
local.get $0
if (result i32)
local.get $0
@ -8849,6 +8934,34 @@
i32.const 0
i32.store offset=12
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $1
i32.const 2
i32.shl
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
i32.const 4200
i32.store
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
local.get $0
local.get $1
i32.store offset=12
local.get $0
@ -13656,9 +13769,41 @@
i32.const 4528
call $~lib/array/Array<Array<i32>>#join
)
(func $~lib/array/Array<Array<u8>>#constructor (; 252 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u8>#constructor (; 252 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
if (result i32)
local.get $0
else
block $~lib/runtime/ALLOCATE|inlined.33 (result i32)
i32.const 16
local.set $2
local.get $2
call $~lib/runtime/doAllocate
end
local.set $2
local.get $2
i32.const 7
call $~lib/runtime/doRegister
end
local.get $1
i32.const 0
call $~lib/runtime/ArrayBufferView#constructor
local.set $0
local.get $0
i32.const 0
i32.store offset=12
local.get $0
local.get $1
i32.store offset=12
local.get $0
)
(func $~lib/array/Array<Array<u8>>#constructor (; 253 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
local.get $0
if (result i32)
local.get $0
else
@ -13681,18 +13826,57 @@
i32.const 0
i32.store offset=12
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $1
i32.const 2
i32.shl
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
block $~lib/runtime/RETAIN<Array<u8>,Array<Array<u8>>>|inlined.0 (result i32)
i32.const 0
i32.const 0
call $~lib/array/Array<u8>#constructor
local.set $5
local.get $0
local.set $4
local.get $5
local.get $4
call $~lib/runtime/doRetain
local.get $5
end
i32.store
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
local.get $0
local.get $1
i32.store offset=12
local.get $0
)
(func $~lib/util/number/itoa<u8> (; 253 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/util/number/itoa<u8> (; 254 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 255
i32.and
call $~lib/util/number/utoa32
return
)
(func $~lib/util/number/itoa_stream<u8> (; 254 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(func $~lib/util/number/itoa_stream<u8> (; 255 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
@ -13737,7 +13921,7 @@
end
local.get $3
)
(func $~lib/array/Array<u8>#join_int (; 255 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u8>#join_int (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -13781,7 +13965,7 @@
i32.const 10
i32.add
local.set $5
block $~lib/runtime/ALLOCATE|inlined.33 (result i32)
block $~lib/runtime/ALLOCATE|inlined.34 (result i32)
local.get $5
i32.const 1
i32.shl
@ -13883,13 +14067,13 @@
call $~lib/runtime/doRegister
end
)
(func $~lib/array/Array<u8>#join (; 256 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u8>#join (; 257 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/array/Array<u8>#join_int
return
)
(func $~lib/array/Array<Array<u8>>#join_arr (; 257 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<u8>>#join_arr (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -13993,24 +14177,56 @@
end
local.get $3
)
(func $~lib/array/Array<Array<u8>>#join (; 258 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<u8>>#join (; 259 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/array/Array<Array<u8>>#join_arr
return
)
(func $~lib/array/Array<Array<u8>>#toString (; 259 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<u8>>#toString (; 260 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 4528
call $~lib/array/Array<Array<u8>>#join
)
(func $~lib/array/Array<Array<u32>>#constructor (; 260 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<u32>#constructor (; 261 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
local.get $0
if (result i32)
local.get $0
else
block $~lib/runtime/ALLOCATE|inlined.34 (result i32)
block $~lib/runtime/ALLOCATE|inlined.36 (result i32)
i32.const 16
local.set $2
local.get $2
call $~lib/runtime/doAllocate
end
local.set $2
local.get $2
i32.const 8
call $~lib/runtime/doRegister
end
local.get $1
i32.const 2
call $~lib/runtime/ArrayBufferView#constructor
local.set $0
local.get $0
i32.const 0
i32.store offset=12
local.get $0
local.get $1
i32.store offset=12
local.get $0
)
(func $~lib/array/Array<Array<u32>>#constructor (; 262 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
local.get $0
if (result i32)
local.get $0
else
block $~lib/runtime/ALLOCATE|inlined.35 (result i32)
i32.const 16
local.set $2
local.get $2
@ -14029,17 +14245,59 @@
i32.const 0
i32.store offset=12
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $1
i32.const 2
i32.shl
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
block $~lib/runtime/RETAIN<Array<u32>,Array<Array<u32>>>|inlined.0 (result i32)
i32.const 0
i32.const 0
call $~lib/array/Array<u32>#constructor
local.set $5
local.get $0
local.set $4
local.get $5
local.get $4
call $~lib/runtime/doRetain
local.get $5
end
i32.store
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
local.get $0
local.get $1
i32.store offset=12
local.get $0
)
(func $~lib/array/Array<Array<Array<u32>>>#constructor (; 261 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<Array<u32>>>#constructor (; 263 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
(local $5 i32)
local.get $0
if (result i32)
local.get $0
else
block $~lib/runtime/ALLOCATE|inlined.35 (result i32)
block $~lib/runtime/ALLOCATE|inlined.37 (result i32)
i32.const 16
local.set $2
local.get $2
@ -14058,11 +14316,50 @@
i32.const 0
i32.store offset=12
local.get $0
i32.load offset=4
local.set $2
local.get $2
local.get $1
i32.const 2
i32.shl
i32.add
local.set $3
block $break|0
loop $continue|0
local.get $2
local.get $3
i32.lt_u
if
block
local.get $2
block $~lib/runtime/RETAIN<Array<Array<u32>>,Array<Array<Array<u32>>>>|inlined.0 (result i32)
i32.const 0
i32.const 0
call $~lib/array/Array<Array<u32>>#constructor
local.set $5
local.get $0
local.set $4
local.get $5
local.get $4
call $~lib/runtime/doRetain
local.get $5
end
i32.store
local.get $2
i32.const 4
i32.add
local.set $2
end
br $continue|0
end
end
end
local.get $0
local.get $1
i32.store offset=12
local.get $0
)
(func $~lib/array/Array<Array<u32>>#join_arr (; 262 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<u32>>#join_arr (; 264 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -14166,13 +14463,13 @@
end
local.get $3
)
(func $~lib/array/Array<Array<u32>>#join (; 263 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<u32>>#join (; 265 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/array/Array<Array<u32>>#join_arr
return
)
(func $~lib/array/Array<Array<Array<u32>>>#join_arr (; 264 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<Array<u32>>>#join_arr (; 266 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(local $2 i32)
(local $3 i32)
(local $4 i32)
@ -14276,18 +14573,18 @@
end
local.get $3
)
(func $~lib/array/Array<Array<Array<u32>>>#join (; 265 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
(func $~lib/array/Array<Array<Array<u32>>>#join (; 267 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32)
local.get $0
local.get $1
call $~lib/array/Array<Array<Array<u32>>>#join_arr
return
)
(func $~lib/array/Array<Array<Array<u32>>>#toString (; 266 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
(func $~lib/array/Array<Array<Array<u32>>>#toString (; 268 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32)
local.get $0
i32.const 4528
call $~lib/array/Array<Array<Array<u32>>>#join
)
(func $start:std/array (; 267 ;) (type $FUNCSIG$v)
(func $start:std/array (; 269 ;) (type $FUNCSIG$v)
(local $0 i32)
(local $1 i32)
(local $2 i32)
@ -19023,7 +19320,7 @@
i32.load offset=4
local.set $0
local.get $0
block $~lib/runtime/RETAIN<Array<i32>,Array<Array<i32>>>|inlined.1 (result i32)
block $~lib/runtime/RETAIN<Array<i32>,Array<Array<i32>>>|inlined.2 (result i32)
block $~lib/runtime/WRAPARRAY<i32>|inlined.71 (result i32)
i32.const 7832
local.set $2
@ -19040,7 +19337,7 @@
end
i32.store
local.get $0
block $~lib/runtime/RETAIN<Array<i32>,Array<Array<i32>>>|inlined.2 (result i32)
block $~lib/runtime/RETAIN<Array<i32>,Array<Array<i32>>>|inlined.3 (result i32)
block $~lib/runtime/WRAPARRAY<i32>|inlined.72 (result i32)
i32.const 7856
local.set $2
@ -19081,7 +19378,7 @@
i32.load offset=4
local.set $1
local.get $1
block $~lib/runtime/RETAIN<Array<u8>,Array<Array<u8>>>|inlined.0 (result i32)
block $~lib/runtime/RETAIN<Array<u8>,Array<Array<u8>>>|inlined.1 (result i32)
block $~lib/runtime/WRAPARRAY<u8>|inlined.6 (result i32)
i32.const 7936
local.set $2
@ -19098,7 +19395,7 @@
end
i32.store
local.get $1
block $~lib/runtime/RETAIN<Array<u8>,Array<Array<u8>>>|inlined.1 (result i32)
block $~lib/runtime/RETAIN<Array<u8>,Array<Array<u8>>>|inlined.2 (result i32)
block $~lib/runtime/WRAPARRAY<u8>|inlined.7 (result i32)
i32.const 7960
local.set $2
@ -19139,7 +19436,7 @@
i32.load offset=4
local.set $1
local.get $1
block $~lib/runtime/RETAIN<Array<Array<u32>>,Array<Array<Array<u32>>>>|inlined.0 (result i32)
block $~lib/runtime/RETAIN<Array<Array<u32>>,Array<Array<Array<u32>>>>|inlined.1 (result i32)
block (result i32)
i32.const 0
i32.const 1
@ -19149,7 +19446,7 @@
i32.load offset=4
local.set $3
local.get $3
block $~lib/runtime/RETAIN<Array<u32>,Array<Array<u32>>>|inlined.1 (result i32)
block $~lib/runtime/RETAIN<Array<u32>,Array<Array<u32>>>|inlined.2 (result i32)
block $~lib/runtime/WRAPARRAY<u32>|inlined.11 (result i32)
i32.const 8056
local.set $4
@ -19191,7 +19488,7 @@
unreachable
end
)
(func $std/array/main (; 268 ;) (type $FUNCSIG$v)
(func $std/array/main (; 270 ;) (type $FUNCSIG$v)
global.get $~lib/started
i32.eqz
if
@ -19200,9 +19497,9 @@
global.set $~lib/started
end
)
(func $start (; 269 ;) (type $FUNCSIG$v)
(func $start (; 271 ;) (type $FUNCSIG$v)
call $start:std/array
)
(func $null (; 270 ;) (type $FUNCSIG$v)
(func $null (; 272 ;) (type $FUNCSIG$v)
)
)