diff --git a/src/compiler.ts b/src/compiler.ts index ee9be37002..48d3a1088c 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -6652,28 +6652,46 @@ export class Compiler extends DiagnosticEmitter { ): void { // Differs from `performAutoreleases` in that concluding this flow also // concludes all its parent flows, for example on a `return`. - var module = this.module; if (flow.is(FlowFlags.INLINE_CONTEXT)) { // Traverse to the top-most flow containing the inlined function's // locals as scoped locals and release these instead of all the locals. + let current = flow; let parent: Flow | null; - while (parent = flow.parent) flow = parent; - this.performAutoreleases(flow, stmts, /* finalize */ false); + while (parent = current.parent) current = parent; + let scopedLocals = current.scopedLocals; + if (scopedLocals) { + for (let local of scopedLocals.values()) { + this.maybeFinishAutorelease(local, flow, stmts); + } + } } else { for (let local of flow.parentFunction.localsByIndex) { - let localIndex = local.index; - if (flow.isAnyLocalFlag(localIndex, LocalFlags.ANY_RETAINED)) { - flow.unsetLocalFlag(localIndex, LocalFlags.ANY_RETAINED); - stmts.push( - this.makeRelease( - module.local_get(localIndex, local.type.toNativeType()) - ) - ); - } + this.maybeFinishAutorelease(local, flow, stmts); } } } + /** Finishes a single autorelease of the specified local. */ + private maybeFinishAutorelease( + /** Local to finish autoreleasing. */ + local: Local, + /** Flow releasing its queued autoreleases. */ + flow: Flow, + /** Array of statements to append the releases to. */ + stmts: ExpressionRef[] + ): void { + var localIndex = local.index; + var module = this.module; + if (~localIndex && flow.isAnyLocalFlag(localIndex, LocalFlags.ANY_RETAINED)) { + flow.unsetLocalFlag(localIndex, LocalFlags.ANY_RETAINED); + stmts.push( + this.makeRelease( + module.local_get(localIndex, local.type.toNativeType()) + ) + ); + } + } + // /** Creates a direct call to the specified function. */ diff --git a/std/assembly/typedarray.ts b/std/assembly/typedarray.ts index 5b11008c0c..b06dc04326 100644 --- a/std/assembly/typedarray.ts +++ b/std/assembly/typedarray.ts @@ -58,7 +58,8 @@ export class Int8Array extends ArrayBufferView { } sort(comparator: (a: i8, b: i8) => i32 = COMPARATOR()): Int8Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Int8Array { @@ -186,7 +187,8 @@ export class Uint8Array extends ArrayBufferView { } sort(comparator: (a: u8, b: u8) => i32 = COMPARATOR()): Uint8Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint8Array { @@ -314,7 +316,8 @@ export class Uint8ClampedArray extends ArrayBufferView { } sort(fn: (a: u8, b: u8) => i32 = COMPARATOR()): Uint8ClampedArray { - return SORT(this, fn); + SORT(this, fn); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint8ClampedArray { @@ -442,7 +445,8 @@ export class Int16Array extends ArrayBufferView { } sort(comparator: (a: i16, b: i16) => i32 = COMPARATOR()): Int16Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Int16Array { @@ -570,7 +574,8 @@ export class Uint16Array extends ArrayBufferView { } sort(comparator: (a: u16, b: u16) => i32 = COMPARATOR()): Uint16Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint16Array { @@ -698,7 +703,8 @@ export class Int32Array extends ArrayBufferView { } sort(comparator: (a: i32, b: i32) => i32 = COMPARATOR()): Int32Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Int32Array { @@ -826,7 +832,8 @@ export class Uint32Array extends ArrayBufferView { } sort(comparator: (a: u32, b: u32) => i32 = COMPARATOR()): Uint32Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint32Array { @@ -954,7 +961,8 @@ export class Int64Array extends ArrayBufferView { } sort(comparator: (a: i64, b: i64) => i32 = COMPARATOR()): Int64Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Int64Array { @@ -1082,7 +1090,8 @@ export class Uint64Array extends ArrayBufferView { } sort(comparator: (a: u64, b: u64) => i32 = COMPARATOR()): Uint64Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint64Array { @@ -1210,7 +1219,8 @@ export class Float32Array extends ArrayBufferView { } sort(comparator: (a: f32, b: f32) => i32 = COMPARATOR()): Float32Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Float32Array { @@ -1338,7 +1348,8 @@ export class Float64Array extends ArrayBufferView { } sort(comparator: (a: f64, b: f64) => i32 = COMPARATOR()): Float64Array { - return SORT(this, comparator); + SORT(this, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Float64Array { @@ -1439,9 +1450,9 @@ function FILL( function SORT( array: TArray, comparator: (a: T, b: T) => i32 -): TArray { +): void { var len = array.length; - if (len <= 1) return array; + if (len <= 1) return; var base = array.dataStart; if (len == 2) { let a: T = load(base, sizeof()); // a = arr[1] @@ -1450,10 +1461,9 @@ function SORT( store(base, b, sizeof()); // arr[1] = b store(base, a); // arr[0] = a } - return array; + } else { + SORT_IMPL(base, len, comparator); } - SORT_IMPL(base, len, comparator); - return array; } // @ts-ignore: decorator diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index bc2c5bce8f..06a36b2c3c 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -224,7 +224,7 @@ if i32.const 144 i32.const 208 - i32.const 1187 + i32.const 1196 i32.const 63 call $~lib/builtins/abort unreachable @@ -248,7 +248,7 @@ if i32.const 144 i32.const 208 - i32.const 1176 + i32.const 1185 i32.const 63 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index 556cda77cd..ee0908860c 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -527,7 +527,7 @@ if i32.const 144 i32.const 208 - i32.const 1187 + i32.const 1196 i32.const 63 call $~lib/builtins/abort unreachable @@ -551,7 +551,7 @@ if i32.const 144 i32.const 208 - i32.const 1176 + i32.const 1185 i32.const 63 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index e96889c47c..c82ffdd719 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -1870,7 +1870,7 @@ if i32.const 304 i32.const 416 - i32.const 163 + i32.const 164 i32.const 44 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index f4e818ce4a..df104bc85b 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -3622,7 +3622,7 @@ if i32.const 304 i32.const 416 - i32.const 163 + i32.const 164 i32.const 44 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index d03a156916..85a317c846 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -196,8 +196,8 @@ (data (i32.const 7472) "\n\00\00\00\01\00\00\00\00\00\00\00\n\00\00\00\00\ff\00\00\00d\n\ff\ff") (data (i32.const 7504) "\n\00\00\00\01\00\00\00\00\00\00\00\n\00\00\00\01\ffd\ff\00\00d\n\ff") (data (i32.const 7536) "\18\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\04\00\00\02\00\00\001\00\00\00\02\00\00\001\00\00\00\02\00\00\00Q\04\00\00\02\00\00\00Q\00\00\00\02\00\00\00\91\04\00\00\02\00\00\00\91\00\00\00\02\00\00\00\11\05\00\00\02\00\00\00\11\01\00\00\02\00\00\00\91\0c\00\00\02\00\00\00\11\0d\00\00\02\00\00\003\04\00\00\02\00\00\00\93\04\00\00\02\00\00\00\13\01\00\00\02\00\00\00S\04\00\00\02\00\00\00\93\00\00\00\02\00\00\00\93\0c\00\00\02\00\00\00\13\0d\00\00\02\00\00\003\00\00\00\02\00\00\00S\00\00\00\02\00\00\00\13\05\00\00\02") - (table $0 123 funcref) - (elem (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) + (table $0 124 funcref) + (elem (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/collectLock (mut i32) (i32.const 0)) (global $~lib/rt/pure/ROOTS (mut i32) (i32.const 0)) @@ -2816,7 +2816,7 @@ if i32.const 304 i32.const 480 - i32.const 675 + i32.const 680 i32.const 63 call $~lib/builtins/abort unreachable @@ -2840,7 +2840,7 @@ if i32.const 304 i32.const 480 - i32.const 664 + i32.const 669 i32.const 63 call $~lib/builtins/abort unreachable @@ -2945,7 +2945,7 @@ if i32.const 304 i32.const 480 - i32.const 1315 + i32.const 1325 i32.const 63 call $~lib/builtins/abort unreachable @@ -3380,30 +3380,23 @@ (local $2 i32) (local $3 f64) (local $4 f64) - block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.tee $2 + i32.const 1 + i32.gt_s + if local.get $0 - call $~lib/rt/pure/__retain - local.tee $1 - call $~lib/typedarray/Int64Array#get:length - local.tee $2 - i32.const 1 - i32.le_s - if - local.get $1 - call $~lib/rt/pure/__release - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $1 i32.load offset=4 - local.set $0 + local.set $1 local.get $2 i32.const 2 i32.eq if - local.get $0 + local.get $1 f64.load offset=8 local.set $3 - local.get $0 + local.get $1 f64.load local.set $4 i32.const 2 @@ -3414,31 +3407,30 @@ i32.const 0 i32.lt_s if - local.get $0 + local.get $1 local.get $4 f64.store offset=8 - local.get $0 + local.get $1 local.get $3 f64.store end - local.get $1 - call $~lib/rt/pure/__release - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $2 - i32.const 256 - i32.lt_s - if - local.get $0 - local.get $2 - call $~lib/util/sort/insertionSort else - local.get $0 local.get $2 - call $~lib/util/sort/weakHeapSort + i32.const 256 + i32.lt_s + if + local.get $1 + local.get $2 + call $~lib/util/sort/insertionSort + else + local.get $1 + local.get $2 + call $~lib/util/sort/weakHeapSort + end end end - local.get $1 + local.get $0 + call $~lib/rt/pure/__retain ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 57 ;) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) @@ -3479,7 +3471,7 @@ if i32.const 304 i32.const 480 - i32.const 1304 + i32.const 1314 i32.const 63 call $~lib/builtins/abort unreachable @@ -3500,7 +3492,7 @@ if i32.const 304 i32.const 480 - i32.const 291 + i32.const 293 i32.const 44 call $~lib/builtins/abort unreachable @@ -3532,7 +3524,7 @@ if i32.const 304 i32.const 480 - i32.const 280 + i32.const 282 i32.const 44 call $~lib/builtins/abort unreachable @@ -4242,7 +4234,7 @@ if i32.const 304 i32.const 480 - i32.const 163 + i32.const 164 i32.const 44 call $~lib/builtins/abort unreachable @@ -4373,7 +4365,7 @@ if i32.const 304 i32.const 480 - i32.const 419 + i32.const 422 i32.const 63 call $~lib/builtins/abort unreachable @@ -4470,7 +4462,7 @@ if i32.const 304 i32.const 480 - i32.const 547 + i32.const 551 i32.const 63 call $~lib/builtins/abort unreachable @@ -4640,7 +4632,7 @@ if i32.const 304 i32.const 480 - i32.const 803 + i32.const 809 i32.const 63 call $~lib/builtins/abort unreachable @@ -4698,7 +4690,7 @@ if i32.const 304 i32.const 480 - i32.const 931 + i32.const 938 i32.const 63 call $~lib/builtins/abort unreachable @@ -4800,7 +4792,7 @@ if i32.const 304 i32.const 480 - i32.const 1059 + i32.const 1067 i32.const 63 call $~lib/builtins/abort unreachable @@ -4858,7 +4850,7 @@ if i32.const 304 i32.const 480 - i32.const 1187 + i32.const 1196 i32.const 63 call $~lib/builtins/abort unreachable @@ -5907,7 +5899,7 @@ if i32.const 304 i32.const 480 - i32.const 152 + i32.const 153 i32.const 44 call $~lib/builtins/abort unreachable @@ -6183,7 +6175,7 @@ if i32.const 304 i32.const 480 - i32.const 408 + i32.const 411 i32.const 63 call $~lib/builtins/abort unreachable @@ -6339,7 +6331,7 @@ if i32.const 304 i32.const 480 - i32.const 536 + i32.const 540 i32.const 63 call $~lib/builtins/abort unreachable @@ -6628,7 +6620,7 @@ if i32.const 304 i32.const 480 - i32.const 792 + i32.const 798 i32.const 63 call $~lib/builtins/abort unreachable @@ -6789,7 +6781,7 @@ if i32.const 304 i32.const 480 - i32.const 920 + i32.const 927 i32.const 63 call $~lib/builtins/abort unreachable @@ -6945,7 +6937,7 @@ if i32.const 304 i32.const 480 - i32.const 1048 + i32.const 1056 i32.const 63 call $~lib/builtins/abort unreachable @@ -7106,7 +7098,7 @@ if i32.const 304 i32.const 480 - i32.const 1176 + i32.const 1185 i32.const 63 call $~lib/builtins/abort unreachable @@ -25429,7 +25421,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -25441,7 +25433,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -25456,7 +25448,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -25583,7 +25575,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -25595,7 +25587,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -25610,7 +25602,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -25735,7 +25727,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -25747,7 +25739,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -25762,7 +25754,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -25887,7 +25879,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -25899,7 +25891,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -25914,7 +25906,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -26041,7 +26033,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -26053,7 +26045,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -26068,7 +26060,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -26193,7 +26185,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -26205,7 +26197,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -26220,7 +26212,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -26343,7 +26335,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -26355,7 +26347,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -26370,7 +26362,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -26493,7 +26485,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -26505,7 +26497,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -26520,7 +26512,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -26644,7 +26636,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -26656,7 +26648,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -26671,7 +26663,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -26795,7 +26787,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -26807,7 +26799,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -26822,7 +26814,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -26944,7 +26936,7 @@ if i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -26956,7 +26948,7 @@ if (result i32) i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -26971,7 +26963,7 @@ if i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -27095,7 +27087,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -27211,7 +27203,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -27276,7 +27268,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -27332,7 +27324,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -27393,7 +27385,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -27419,7 +27411,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -27471,7 +27463,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -27708,7 +27700,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -27775,7 +27767,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -27978,7 +27970,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28107,7 +28099,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28172,7 +28164,7 @@ if i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -28187,7 +28179,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28260,7 +28252,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28325,7 +28317,7 @@ if i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -28340,7 +28332,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28409,7 +28401,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28613,7 +28605,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28731,7 +28723,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28798,7 +28790,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28856,7 +28848,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28921,7 +28913,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -28971,7 +28963,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29000,7 +28992,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29264,7 +29256,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29333,7 +29325,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29532,7 +29524,7 @@ if i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -29547,7 +29539,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29642,7 +29634,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29708,7 +29700,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29766,7 +29758,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29831,7 +29823,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29883,7 +29875,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -29940,7 +29932,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -30199,7 +30191,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -30267,7 +30259,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -30473,7 +30465,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -30591,7 +30583,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -30656,7 +30648,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -30687,7 +30679,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -30751,7 +30743,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -30803,7 +30795,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -30860,7 +30852,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -31116,7 +31108,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -31186,7 +31178,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -31390,7 +31382,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -31514,7 +31506,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -31569,7 +31561,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -31622,7 +31614,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -31680,7 +31672,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -31861,7 +31853,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -31985,7 +31977,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -32043,7 +32035,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -32097,7 +32089,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -32150,7 +32142,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -32208,7 +32200,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -32389,7 +32381,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -32459,7 +32451,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -32525,7 +32517,7 @@ if i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -32570,7 +32562,426 @@ end end ) - (func $start:std/typedarray (; 520 ;) + (func $~lib/util/sort/insertionSort (; 520 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + loop $loop|0 + block $break|0 + local.get $4 + local.get $1 + i32.ge_s + br_if $break|0 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.set $3 + loop $continue|1 + block $break|1 + local.get $3 + i32.const 0 + i32.lt_s + br_if $break|1 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + i32.const 2 + global.set $~lib/argc + local.get $5 + local.get $6 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + br_if $break|1 + local.get $3 + local.tee $7 + i32.const 1 + i32.sub + local.set $3 + local.get $0 + local.get $7 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + br $continue|1 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $loop|0 + end + end + ) + (func $~lib/util/sort/weakHeapSort (; 521 ;) (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 i32) + local.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + local.tee $3 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.tee $5 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill + local.get $1 + i32.const 1 + i32.sub + local.set $4 + loop $loop|0 + local.get $4 + i32.const 0 + i32.gt_s + if + local.get $4 + local.set $3 + loop $continue|1 + local.get $3 + i32.const 1 + i32.and + local.get $5 + local.get $3 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $3 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + if + local.get $3 + i32.const 1 + i32.shr_s + local.set $3 + br $continue|1 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shr_s + local.tee $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + i32.const 2 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $5 + local.get $4 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + local.tee $8 + local.get $8 + i32.load + i32.const 1 + local.get $4 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $loop|0 + end + end + local.get $1 + i32.const 1 + i32.sub + local.set $4 + loop $loop|2 + local.get $4 + i32.const 2 + i32.ge_s + if + local.get $0 + i32.load + local.set $1 + local.get $0 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $3 + local.get $1 + i32.store + i32.const 1 + local.set $1 + loop $continue|3 + local.get $5 + local.get $1 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $1 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $3 + local.get $4 + i32.lt_s + if + local.get $3 + local.set $1 + br $continue|3 + end + end + loop $continue|4 + local.get $1 + i32.const 0 + i32.gt_s + if + local.get $0 + i32.load + local.set $3 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + i32.const 2 + global.set $~lib/argc + local.get $3 + local.get $6 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $5 + local.get $1 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + local.tee $7 + local.get $7 + i32.load + i32.const 1 + local.get $1 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store + local.get $0 + local.get $6 + i32.store + end + local.get $1 + i32.const 1 + i32.shr_s + local.set $1 + br $continue|4 + end + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $loop|2 + end + end + local.get $5 + call $~lib/rt/tlsf/__free + local.get $0 + i32.load offset=4 + local.set $1 + local.get $0 + local.get $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/typedarray/Int32Array#sort (; 522 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.tee $2 + i32.const 1 + i32.gt_s + if + local.get $0 + i32.load offset=4 + local.set $3 + local.get $2 + i32.const 2 + i32.eq + if + local.get $3 + i32.load offset=4 + local.set $4 + local.get $3 + i32.load + local.set $2 + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $2 + local.get $1 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $3 + local.get $2 + i32.store offset=4 + local.get $3 + local.get $4 + i32.store + end + else + local.get $2 + i32.const 256 + i32.lt_s + if + local.get $3 + local.get $2 + local.get $1 + call $~lib/util/sort/insertionSort + else + local.get $3 + local.get $2 + local.get $1 + call $~lib/util/sort/weakHeapSort + end + end + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 523 ;) (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/typedarray/Int32Array#sort|trampoline (; 524 ;) (param $0 i32) (result i32) + (local $1 i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~lib/argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + i32.const 123 + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int32Array#sort + ) + (func $start:std/typedarray (; 525 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -34612,8 +35023,101 @@ call $~lib/rt/pure/__release local.get $7 call $~lib/rt/pure/__release + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + i32.const 0 + global.set $~lib/argc + local.get $1 + call $~lib/typedarray/Int32Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + if (result i32) + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 817 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + i32.const 0 + global.set $~lib/argc + local.get $0 + call $~lib/typedarray/Int32Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + if (result i32) + local.get $0 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 824 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/pure/__release + local.get $0 + call $~lib/rt/pure/__release ) - (func $start (; 521 ;) + (func $start (; 526 ;) global.get $~lib/started if return @@ -34623,7 +35127,7 @@ end call $start:std/typedarray ) - (func $~lib/rt/pure/__visit (; 522 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 527 ;) (param $0 i32) (param $1 i32) local.get $0 i32.const 7732 i32.lt_u @@ -34726,7 +35230,7 @@ unreachable end ) - (func $~lib/rt/__visit_members (; 523 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 528 ;) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$2 diff --git a/tests/compiler/std/typedarray.ts b/tests/compiler/std/typedarray.ts index fb2f05f4cb..fa7a5ef01a 100644 --- a/tests/compiler/std/typedarray.ts +++ b/tests/compiler/std/typedarray.ts @@ -807,4 +807,19 @@ testTypedArraySet(); targetClampedArray.set(d, 0); targetClampedArray.set(e, 5); valuesEqual(targetClampedArray, [1, 255, 100, 255, 0, 0, 100, 10, 255, 0]); +} + +{ + let arr2 = new Int32Array(2); + arr2[0] = 2; + arr2[1] = 1; + arr2.sort(); + assert(arr2[0] == 1 && arr2[1] == 2); + + let arr3 = new Int32Array(3); + arr3[0] = 3; + arr3[1] = 2; + arr3[2] = 1; + arr3.sort(); + assert(arr3[0] == 1 && arr3[1] == 2 && arr3[2] == 3); } \ No newline at end of file diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index ecb313497e..b0269dd8eb 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -188,8 +188,8 @@ (data (i32.const 7920) "\n\00\00\00\01\00\00\00\00\00\00\00\n\00\00\00\00\ff\00\00\00d\n\ff\ff\00") (data (i32.const 7952) "\n\00\00\00\01\00\00\00\00\00\00\00\n\00\00\00\01\ffd\ff\00\00d\n\ff\00") (data (i32.const 7984) "\18\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\10\00\00\00\00\00\00\001\04\00\00\02\00\00\001\00\00\00\02\00\00\001\00\00\00\02\00\00\00Q\04\00\00\02\00\00\00Q\00\00\00\02\00\00\00\91\04\00\00\02\00\00\00\91\00\00\00\02\00\00\00\11\05\00\00\02\00\00\00\11\01\00\00\02\00\00\00\91\0c\00\00\02\00\00\00\11\0d\00\00\02\00\00\003\04\00\00\02\00\00\00\93\04\00\00\02\00\00\00\93\00\00\00\02\00\00\00\13\01\00\00\02\00\00\00S\04\00\00\02\00\00\00\93\0c\00\00\02\00\00\00\13\0d\00\00\02\00\00\003\00\00\00\02\00\00\00S\00\00\00\02\00\00\00\13\05\00\00\02\00\00\00") - (table $0 123 funcref) - (elem (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0) + (table $0 124 funcref) + (elem (i32.const 1) $~lib/util/sort/COMPARATOR~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArraySome<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayFindIndex<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int8Array,i8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8Array,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int16Array,i16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint16Array,u16>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int32Array,i32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint32Array,u32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Int64Array,i64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Uint64Array,u64>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float32Array,f32>~anonymous|1 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|0 $std/typedarray/testArrayEvery<~lib/typedarray/Float64Array,f64>~anonymous|1 $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8Array,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint8ClampedArray,u8>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>~anonymous|0 $std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0) (global $~lib/typedarray/Int8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) (global $~lib/typedarray/Uint8Array.BYTES_PER_ELEMENT i32 (i32.const 1)) (global $~lib/typedarray/Uint8ClampedArray.BYTES_PER_ELEMENT i32 (i32.const 1)) @@ -4567,7 +4567,7 @@ if i32.const 304 i32.const 480 - i32.const 675 + i32.const 680 i32.const 63 call $~lib/builtins/abort unreachable @@ -4591,7 +4591,7 @@ if i32.const 304 i32.const 480 - i32.const 664 + i32.const 669 i32.const 63 call $~lib/builtins/abort unreachable @@ -4721,7 +4721,7 @@ if i32.const 304 i32.const 480 - i32.const 1315 + i32.const 1325 i32.const 63 call $~lib/builtins/abort unreachable @@ -5232,7 +5232,7 @@ (local $8 i32) (local $9 i32) (local $10 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) + block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $0 call $~lib/rt/pure/__retain local.set $3 @@ -5245,11 +5245,8 @@ i32.const 1 i32.le_s if - local.get $3 - local.set $5 local.get $3 call $~lib/rt/pure/__release - local.get $5 br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 end local.get $3 @@ -5281,35 +5278,33 @@ local.get $6 f64.store end - local.get $3 - local.set $8 - local.get $3 - call $~lib/rt/pure/__release - local.get $8 - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - end - local.get $5 - local.set $10 - local.get $4 - local.set $9 - local.get $2 - local.set $8 - local.get $9 - i32.const 256 - i32.lt_s - if - local.get $10 - local.get $9 - local.get $8 - call $~lib/util/sort/insertionSort else - local.get $10 + local.get $5 + local.set $10 + local.get $4 + local.set $9 + local.get $2 + local.set $8 local.get $9 - local.get $8 - call $~lib/util/sort/weakHeapSort + i32.const 256 + i32.lt_s + if + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/sort/insertionSort + else + local.get $10 + local.get $9 + local.get $8 + call $~lib/util/sort/weakHeapSort + end end local.get $3 + call $~lib/rt/pure/__release end + local.get $0 + call $~lib/rt/pure/__retain ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 66 ;) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) @@ -5373,7 +5368,7 @@ if i32.const 304 i32.const 480 - i32.const 1304 + i32.const 1314 i32.const 63 call $~lib/builtins/abort unreachable @@ -5394,7 +5389,7 @@ if i32.const 304 i32.const 480 - i32.const 291 + i32.const 293 i32.const 44 call $~lib/builtins/abort unreachable @@ -5426,7 +5421,7 @@ if i32.const 304 i32.const 480 - i32.const 280 + i32.const 282 i32.const 44 call $~lib/builtins/abort unreachable @@ -6385,7 +6380,7 @@ if i32.const 304 i32.const 480 - i32.const 163 + i32.const 164 i32.const 44 call $~lib/builtins/abort unreachable @@ -6639,7 +6634,7 @@ if i32.const 304 i32.const 480 - i32.const 419 + i32.const 422 i32.const 63 call $~lib/builtins/abort unreachable @@ -6781,7 +6776,7 @@ if i32.const 304 i32.const 480 - i32.const 547 + i32.const 551 i32.const 63 call $~lib/builtins/abort unreachable @@ -7035,7 +7030,7 @@ if i32.const 304 i32.const 480 - i32.const 803 + i32.const 809 i32.const 63 call $~lib/builtins/abort unreachable @@ -7173,7 +7168,7 @@ if i32.const 304 i32.const 480 - i32.const 931 + i32.const 938 i32.const 63 call $~lib/builtins/abort unreachable @@ -7312,7 +7307,7 @@ if i32.const 304 i32.const 480 - i32.const 1059 + i32.const 1067 i32.const 63 call $~lib/builtins/abort unreachable @@ -7451,7 +7446,7 @@ if i32.const 304 i32.const 480 - i32.const 1187 + i32.const 1196 i32.const 63 call $~lib/builtins/abort unreachable @@ -9233,7 +9228,7 @@ if i32.const 304 i32.const 480 - i32.const 152 + i32.const 153 i32.const 44 call $~lib/builtins/abort unreachable @@ -9598,7 +9593,7 @@ if i32.const 304 i32.const 480 - i32.const 408 + i32.const 411 i32.const 63 call $~lib/builtins/abort unreachable @@ -9793,7 +9788,7 @@ if i32.const 304 i32.const 480 - i32.const 536 + i32.const 540 i32.const 63 call $~lib/builtins/abort unreachable @@ -10160,7 +10155,7 @@ if i32.const 304 i32.const 480 - i32.const 792 + i32.const 798 i32.const 63 call $~lib/builtins/abort unreachable @@ -10355,7 +10350,7 @@ if i32.const 304 i32.const 480 - i32.const 920 + i32.const 927 i32.const 63 call $~lib/builtins/abort unreachable @@ -10550,7 +10545,7 @@ if i32.const 304 i32.const 480 - i32.const 1048 + i32.const 1056 i32.const 63 call $~lib/builtins/abort unreachable @@ -10745,7 +10740,7 @@ if i32.const 304 i32.const 480 - i32.const 1176 + i32.const 1185 i32.const 63 call $~lib/builtins/abort unreachable @@ -37650,7 +37645,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -37672,7 +37667,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -37686,7 +37681,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -37708,7 +37703,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -37915,7 +37910,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -37937,7 +37932,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -37951,7 +37946,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -37973,7 +37968,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -38178,7 +38173,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -38200,7 +38195,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -38214,7 +38209,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -38236,7 +38231,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -38441,7 +38436,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -38463,7 +38458,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -38477,7 +38472,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -38499,7 +38494,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -38706,7 +38701,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -38728,7 +38723,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -38742,7 +38737,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -38764,7 +38759,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -38969,7 +38964,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -38991,7 +38986,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -39005,7 +39000,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -39027,7 +39022,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -39230,7 +39225,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -39252,7 +39247,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -39266,7 +39261,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -39288,7 +39283,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -39491,7 +39486,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -39513,7 +39508,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -39527,7 +39522,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -39549,7 +39544,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -39753,7 +39748,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -39775,7 +39770,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -39789,7 +39784,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -39811,7 +39806,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -40015,7 +40010,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -40037,7 +40032,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -40051,7 +40046,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -40073,7 +40068,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -40277,7 +40272,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1739 + i32.const 1749 i32.const 4 call $~lib/builtins/abort unreachable @@ -40299,7 +40294,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1746 + i32.const 1756 i32.const 8 call $~lib/builtins/abort unreachable @@ -40313,7 +40308,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1751 + i32.const 1761 i32.const 6 call $~lib/builtins/abort unreachable @@ -40335,7 +40330,7 @@ call $~lib/rt/pure/__release i32.const 32 i32.const 480 - i32.const 1757 + i32.const 1767 i32.const 4 call $~lib/builtins/abort unreachable @@ -40539,7 +40534,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -40558,7 +40553,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -40729,7 +40724,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -40748,7 +40743,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -40843,7 +40838,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -40862,7 +40857,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -40950,7 +40945,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -40969,7 +40964,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -41060,7 +41055,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -41079,7 +41074,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -41131,7 +41126,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -41150,7 +41145,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -41229,7 +41224,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -41248,7 +41243,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -41463,7 +41458,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -41482,7 +41477,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -41662,7 +41657,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -41681,7 +41676,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -41776,7 +41771,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -41795,7 +41790,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -41879,7 +41874,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -41898,7 +41893,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -41989,7 +41984,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -42008,7 +42003,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -42060,7 +42055,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -42079,7 +42074,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -42158,7 +42153,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -42177,7 +42172,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -42393,7 +42388,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -42412,7 +42407,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -42593,7 +42588,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -42612,7 +42607,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -42712,7 +42707,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -42731,7 +42726,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -42833,7 +42828,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -42852,7 +42847,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -42947,7 +42942,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -42966,7 +42961,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -43019,7 +43014,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -43038,7 +43033,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -43136,7 +43131,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -43155,7 +43150,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -43415,7 +43410,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -43434,7 +43429,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -43605,7 +43600,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -43624,7 +43619,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -43719,7 +43714,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -43738,7 +43733,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -43822,7 +43817,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -43841,7 +43836,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -43936,7 +43931,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -43955,7 +43950,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -44034,7 +44029,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -44053,7 +44048,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -44105,7 +44100,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -44124,7 +44119,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -44370,7 +44365,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -44389,7 +44384,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -44569,7 +44564,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -44588,7 +44583,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -44683,7 +44678,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -44702,7 +44697,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -44786,7 +44781,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -44805,7 +44800,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -44900,7 +44895,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -44919,7 +44914,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -44998,7 +44993,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -45017,7 +45012,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -45069,7 +45064,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -45088,7 +45083,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -45330,7 +45325,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -45349,7 +45344,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -45485,7 +45480,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -45504,7 +45499,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -45599,7 +45594,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -45618,7 +45613,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -45702,7 +45697,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -45721,7 +45716,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -45816,7 +45811,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -45835,7 +45830,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -45918,7 +45913,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -45937,7 +45932,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -46020,7 +46015,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -46039,7 +46034,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -46281,7 +46276,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -46300,7 +46295,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -46449,7 +46444,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -46468,7 +46463,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -46563,7 +46558,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -46582,7 +46577,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -46666,7 +46661,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -46685,7 +46680,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -46780,7 +46775,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -46799,7 +46794,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -46882,7 +46877,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -46901,7 +46896,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -46984,7 +46979,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -47003,7 +46998,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -47249,7 +47244,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -47268,7 +47263,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -47448,7 +47443,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -47467,7 +47462,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -47558,7 +47553,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -47577,7 +47572,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -47630,7 +47625,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -47649,7 +47644,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -47744,7 +47739,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -47763,7 +47758,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -47846,7 +47841,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -47865,7 +47860,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -47948,7 +47943,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -47967,7 +47962,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -48213,7 +48208,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -48232,7 +48227,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -48403,7 +48398,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -48422,7 +48417,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -48513,7 +48508,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -48532,7 +48527,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -48585,7 +48580,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -48604,7 +48599,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -48699,7 +48694,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -48718,7 +48713,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -48801,7 +48796,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -48820,7 +48815,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -48903,7 +48898,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -48922,7 +48917,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -49168,7 +49163,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -49187,7 +49182,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -49359,7 +49354,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -49378,7 +49373,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -49430,7 +49425,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -49449,7 +49444,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -49533,7 +49528,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -49552,7 +49547,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -49636,7 +49631,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -49655,7 +49650,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -49739,7 +49734,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -49758,7 +49753,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -49990,7 +49985,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -50009,7 +50004,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -50183,7 +50178,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -50202,7 +50197,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -50286,7 +50281,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -50305,7 +50300,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -50389,7 +50384,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -50408,7 +50403,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -50492,7 +50487,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -50511,7 +50506,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -50595,7 +50590,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -50614,7 +50609,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -50847,7 +50842,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -50866,7 +50861,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -50966,7 +50961,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -50985,7 +50980,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -51085,7 +51080,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1775 + i32.const 1785 i32.const 18 call $~lib/builtins/abort unreachable @@ -51104,7 +51099,7 @@ call $~lib/rt/pure/__release i32.const 304 i32.const 480 - i32.const 1776 + i32.const 1786 i32.const 46 call $~lib/builtins/abort unreachable @@ -51167,7 +51162,493 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $start:std/typedarray (; 705 ;) + (func $~lib/util/sort/insertionSort (; 705 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + block $break|0 + i32.const 0 + local.set $3 + loop $loop|0 + local.get $3 + local.get $1 + i32.lt_s + i32.eqz + br_if $break|0 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $4 + local.get $3 + i32.const 1 + i32.sub + local.set $5 + block $break|1 + loop $continue|1 + local.get $5 + i32.const 0 + i32.ge_s + i32.eqz + br_if $break|1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + i32.const 2 + global.set $~lib/argc + local.get $4 + local.get $6 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $5 + local.tee $7 + i32.const 1 + i32.sub + local.set $5 + local.get $7 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + else + br $break|1 + end + br $continue|1 + end + unreachable + end + local.get $0 + local.get $5 + i32.const 1 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $4 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $loop|0 + end + unreachable + end + ) + (func $~lib/util/sort/weakHeapSort (; 706 ;) (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 i32) + (local $9 i32) + (local $10 i32) + local.get $1 + i32.const 31 + i32.add + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + local.set $3 + local.get $3 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $4 + local.get $4 + i32.const 0 + local.get $3 + call $~lib/memory/memory.fill + block $break|0 + local.get $1 + i32.const 1 + i32.sub + local.set $5 + loop $loop|0 + local.get $5 + i32.const 0 + i32.gt_s + i32.eqz + br_if $break|0 + local.get $5 + local.set $6 + block $break|1 + loop $continue|1 + local.get $6 + i32.const 1 + i32.and + local.get $4 + local.get $6 + i32.const 6 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $6 + i32.const 1 + i32.shr_s + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.eq + i32.eqz + br_if $break|1 + local.get $6 + i32.const 1 + i32.shr_s + local.set $6 + br $continue|1 + end + unreachable + end + local.get $6 + i32.const 1 + i32.shr_s + local.set $7 + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + i32.const 2 + global.set $~lib/argc + local.get $8 + local.get $9 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $4 + local.get $5 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $5 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + local.get $5 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.get $9 + i32.store + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $loop|0 + end + unreachable + end + block $break|2 + local.get $1 + i32.const 1 + i32.sub + local.set $5 + loop $loop|2 + local.get $5 + i32.const 2 + i32.ge_s + i32.eqz + br_if $break|2 + local.get $0 + i32.load + local.set $9 + local.get $0 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $9 + i32.store + i32.const 1 + local.set $8 + block $break|3 + loop $continue|3 + local.get $8 + i32.const 1 + i32.shl + local.get $4 + local.get $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $8 + i32.const 31 + i32.and + i32.shr_u + i32.const 1 + i32.and + i32.add + local.tee $7 + local.get $5 + i32.lt_s + i32.eqz + br_if $break|3 + local.get $7 + local.set $8 + br $continue|3 + end + unreachable + end + block $break|4 + loop $continue|4 + local.get $8 + i32.const 0 + i32.gt_s + i32.eqz + br_if $break|4 + local.get $0 + i32.load + local.set $9 + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + i32.const 2 + global.set $~lib/argc + local.get $9 + local.get $6 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $4 + local.get $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + local.get $4 + local.get $8 + i32.const 5 + i32.shr_s + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + local.get $8 + i32.const 31 + i32.and + i32.shl + i32.xor + i32.store + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.get $9 + i32.store + local.get $0 + local.get $6 + i32.store + end + local.get $8 + i32.const 1 + i32.shr_s + local.set $8 + br $continue|4 + end + unreachable + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $loop|2 + end + unreachable + end + local.get $4 + call $~lib/rt/tlsf/__free + local.get $0 + i32.load offset=4 + local.set $10 + local.get $0 + local.get $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $10 + i32.store + ) + (func $~lib/typedarray/Int32Array#sort (; 707 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + block $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0 + local.get $0 + call $~lib/rt/pure/__retain + local.set $3 + local.get $1 + local.set $2 + local.get $3 + call $~lib/typedarray/Int32Array#get:length + local.set $4 + local.get $4 + i32.const 1 + i32.le_s + if + local.get $3 + call $~lib/rt/pure/__release + br $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0 + end + local.get $3 + i32.load offset=4 + local.set $5 + local.get $4 + i32.const 2 + i32.eq + if + local.get $5 + i32.load offset=4 + local.set $6 + local.get $5 + i32.load + local.set $7 + i32.const 2 + global.set $~lib/argc + local.get $6 + local.get $7 + local.get $2 + call_indirect (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $5 + local.get $7 + i32.store offset=4 + local.get $5 + local.get $6 + i32.store + end + else + local.get $5 + local.set $8 + local.get $4 + local.set $7 + local.get $2 + local.set $6 + local.get $7 + i32.const 256 + i32.lt_s + if + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/sort/insertionSort + else + local.get $8 + local.get $7 + local.get $6 + call $~lib/util/sort/weakHeapSort + end + end + local.get $3 + call $~lib/rt/pure/__release + end + local.get $0 + call $~lib/rt/pure/__retain + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 708 ;) (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/typedarray/Int32Array#sort|trampoline (; 709 ;) (param $0 i32) (param $1 i32) (result i32) + block $1of1 + block $0of1 + block $outOfRange + global.get $~lib/argc + br_table $0of1 $1of1 $outOfRange + end + unreachable + end + block $~lib/util/sort/COMPARATOR|inlined.0 (result i32) + i32.const 123 + br $~lib/util/sort/COMPARATOR|inlined.0 + end + local.set $1 + end + local.get $0 + local.get $1 + call $~lib/typedarray/Int32Array#sort + ) + (func $start:std/typedarray (; 710 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -53355,8 +53836,107 @@ call $~lib/rt/pure/__release local.get $18 call $~lib/rt/pure/__release + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.set $18 + local.get $18 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $18 + i32.const 1 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + i32.const 0 + global.set $~lib/argc + local.get $18 + i32.const 0 + call $~lib/typedarray/Int32Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $18 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + if (result i32) + local.get $18 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 817 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.set $20 + local.get $20 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $20 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $20 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + i32.const 0 + global.set $~lib/argc + local.get $20 + i32.const 0 + call $~lib/typedarray/Int32Array#sort|trampoline + call $~lib/rt/pure/__release + local.get $20 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.eq + if (result i32) + local.get $20 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.eq + else + i32.const 0 + end + if (result i32) + local.get $20 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 824 + i32.const 2 + call $~lib/builtins/abort + unreachable + end + local.get $18 + call $~lib/rt/pure/__release + local.get $20 + call $~lib/rt/pure/__release ) - (func $start (; 706 ;) + (func $start (; 711 ;) global.get $~lib/started if return @@ -53366,37 +53946,37 @@ end call $start:std/typedarray ) - (func $~lib/array/Array#__visit_impl (; 707 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 712 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 708 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 713 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 709 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 714 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 710 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 715 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 711 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 716 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 712 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 717 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 713 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 718 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 714 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 719 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 715 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 720 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 716 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 721 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/pure/__visit (; 717 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 722 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -53526,7 +54106,7 @@ end end ) - (func $~lib/rt/__visit_members (; 718 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 723 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default