diff --git a/std/assembly/array.ts b/std/assembly/array.ts index dfaf90df41..5ff758502a 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -440,19 +440,7 @@ export class Array { } sort(comparator: (a: T, b: T) => i32 = COMPARATOR()): this { - var length = this.length_; - if (length <= 1) return this; - var base = this.dataStart; - if (length == 2) { - let a: T = load(base, sizeof()); // a = arr[1] - let b: T = load(base); // b = arr[0] - if (comparator(a, b) < 0) { - store(base, b, sizeof()); // arr[1] = b; - store(base, a); // arr[0] = a; - } - return this; - } - SORT(base, length, comparator); + SORT(this.dataStart, this.length_, comparator); return this; } diff --git a/std/assembly/typedarray.ts b/std/assembly/typedarray.ts index 80e4b13620..3baa1337eb 100644 --- a/std/assembly/typedarray.ts +++ b/std/assembly/typedarray.ts @@ -1,4 +1,4 @@ -import { COMPARATOR, SORT as SORT_IMPL } from "./util/sort"; +import { COMPARATOR, SORT } from "./util/sort"; import { E_INDEXOUTOFRANGE, E_INVALIDLENGTH, E_NOTIMPLEMENTED } from "./util/error"; import { joinIntegerArray, joinFloatArray } from "./util/string"; import { idof } from "./builtins"; @@ -65,7 +65,8 @@ export class Int8Array extends ArrayBufferView { } sort(comparator: (a: i8, b: i8) => i32 = COMPARATOR()): Int8Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Int8Array { @@ -200,7 +201,8 @@ export class Uint8Array extends ArrayBufferView { } sort(comparator: (a: u8, b: u8) => i32 = COMPARATOR()): Uint8Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint8Array { @@ -334,8 +336,9 @@ export class Uint8ClampedArray extends ArrayBufferView { return FILL(this, value, start, end); } - sort(fn: (a: u8, b: u8) => i32 = COMPARATOR()): Uint8ClampedArray { - return SORT(this, fn); + sort(comparator: (a: u8, b: u8) => i32 = COMPARATOR()): Uint8ClampedArray { + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint8ClampedArray { @@ -470,7 +473,8 @@ export class Int16Array extends ArrayBufferView { } sort(comparator: (a: i16, b: i16) => i32 = COMPARATOR()): Int16Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Int16Array { @@ -605,7 +609,8 @@ export class Uint16Array extends ArrayBufferView { } sort(comparator: (a: u16, b: u16) => i32 = COMPARATOR()): Uint16Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint16Array { @@ -740,7 +745,8 @@ export class Int32Array extends ArrayBufferView { } sort(comparator: (a: i32, b: i32) => i32 = COMPARATOR()): Int32Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Int32Array { @@ -875,7 +881,8 @@ export class Uint32Array extends ArrayBufferView { } sort(comparator: (a: u32, b: u32) => i32 = COMPARATOR()): Uint32Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint32Array { @@ -1010,7 +1017,8 @@ export class Int64Array extends ArrayBufferView { } sort(comparator: (a: i64, b: i64) => i32 = COMPARATOR()): Int64Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Int64Array { @@ -1145,7 +1153,8 @@ export class Uint64Array extends ArrayBufferView { } sort(comparator: (a: u64, b: u64) => i32 = COMPARATOR()): Uint64Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Uint64Array { @@ -1280,7 +1289,8 @@ export class Float32Array extends ArrayBufferView { } sort(comparator: (a: f32, b: f32) => i32 = COMPARATOR()): Float32Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Float32Array { @@ -1415,7 +1425,8 @@ export class Float64Array extends ArrayBufferView { } sort(comparator: (a: f64, b: f64) => i32 = COMPARATOR()): Float64Array { - return SORT(this, comparator); + SORT(this.dataStart, this.length, comparator); + return this; } slice(begin: i32 = 0, end: i32 = i32.MAX_VALUE): Float64Array { @@ -1511,28 +1522,6 @@ function FILL( return array; } -// @ts-ignore: decorator -@inline -function SORT( - array: TArray, - comparator: (a: T, b: T) => i32 -): TArray { - var len = array.length; - if (len <= 1) return array; - var base = array.dataStart; - if (len == 2) { - let a: T = load(base, sizeof()); // a = arr[1] - let b: T = load(base); // b = arr[0] - if (comparator(a, b) < 0) { - store(base, b, sizeof()); // arr[1] = b - store(base, a); // arr[0] = a - } - return array; - } - SORT_IMPL(base, len, comparator); - return array; -} - // @ts-ignore: decorator @inline function SLICE( diff --git a/std/assembly/util/sort.ts b/std/assembly/util/sort.ts index 0b6e040f53..ac401fd30f 100644 --- a/std/assembly/util/sort.ts +++ b/std/assembly/util/sort.ts @@ -1,142 +1,309 @@ import { compareImpl } from "./string"; +type Comparator = (a: T, b: T) => i32; + +// @ts-ignore: decorator +@lazy @inline const EMPTY = u32.MAX_VALUE; +// @ts-ignore: decorator +@inline const INSERTION_SORT_THRESHOLD = 128; +// @ts-ignore: decorator +@inline const MIN_RUN_LENGTH = 32; + // @ts-ignore: decorator @inline -export function COMPARATOR(): (a: T, b: T) => i32 { +function log2u(n: u32): u32 { + return 31 - clz(n); +} + +// @ts-ignore: decorator +@inline +export function COMPARATOR(): Comparator { if (isInteger()) { if (isSigned() && sizeof() <= 4) { - return (a: T, b: T): i32 => (i32(a) - i32(b)); + return (a, b) => i32(a) - i32(b); } else { - return (a: T, b: T): i32 => (i32(a > b) - i32(a < b)); + return (a, b) => i32(a > b) - i32(a < b); } } else if (isFloat()) { if (sizeof() == 4) { - return (a: T, b: T): i32 => { + return (a, b) => { var ia = reinterpret(f32(a)); var ib = reinterpret(f32(b)); - ia ^= (ia >> 31) >>> 1; - ib ^= (ib >> 31) >>> 1; + ia ^= ia >> 31 >>> 1; + ib ^= ib >> 31 >>> 1; return i32(ia > ib) - i32(ia < ib); }; } else { - return (a: T, b: T): i32 => { + return (a, b) => { var ia = reinterpret(f64(a)); var ib = reinterpret(f64(b)); - ia ^= (ia >> 63) >>> 1; - ib ^= (ib >> 63) >>> 1; + ia ^= ia >> 63 >>> 1; + ib ^= ib >> 63 >>> 1; return i32(ia > ib) - i32(ia < ib); }; } } else if (isString()) { - return (a: T, b: T): i32 => { + return (a, b) => { if (a === b || a === null || b === null) return 0; var alen = changetype(a).length; var blen = changetype(b).length; if (!(alen | blen)) return 0; if (!alen) return -1; if (!blen) return 1; - let res = compareImpl(changetype(a), 0, changetype(b), 0, min(alen, blen)); + let res = compareImpl( + changetype(a), 0, + changetype(b), 0, + min(alen, blen) + ); return res ? res : alen - blen; }; } else { - return (a: T, b: T): i32 => (i32(a > b) - i32(a < b)); + return (a, b) => i32(a > b) - i32(a < b); } } -// @ts-ignore: decorator -@inline +// Power Sort implementation (stable) from paper "Nearly-Optimal Mergesorts" +// https://arxiv.org/pdf/1805.04154.pdf +// This method usually outperform TimSort. +// TODO: refactor c >>> 31 to c < 0 when binaryen will support this opt export function SORT( - dataStart: usize, - length: i32, - comparator: (a: T, b: T) => i32 + ptr: usize, + len: i32, + comparator: Comparator ): void { - if (isReference()) { - // TODO replace this to faster stable sort (TimSort) when it implemented - insertionSort(dataStart, length, comparator); - } else { - if (length < 256) { - insertionSort(dataStart, length, comparator); - } else { - weakHeapSort(dataStart, length, comparator); + if (len <= INSERTION_SORT_THRESHOLD) { + if (len <= 1) return; + if (ASC_SHRINK_LEVEL < 1) { + switch (len) { + case 3: { + let a = load(ptr, 0); + let b = load(ptr, 1 << alignof()); + let c = comparator(a, b) > 0; + store(ptr, select(b, a, c), 0); + a = select(a, b, c); + b = load(ptr, 2 << alignof()); + c = comparator(a, b) > 0; + store(ptr, select(b, a, c), 1 << alignof()); + store(ptr, select(a, b, c), 2 << alignof()); + } + case 2: { + let a = load(ptr, 0); + let b = load(ptr, 1 << alignof()); + let c = comparator(a, b) > 0; + store(ptr, select(b, a, c), 0); + store(ptr, select(a, b, c), 1 << alignof()); + return; + } + } } + insertionSort(ptr, 0, len - 1, 0, comparator); + return; } -} -function insertionSort( - dataStart: usize, - length: i32, - comparator: (a: T, b: T) => i32 -): void { - for (let i = 0; i < length; i++) { - let a: T = load(dataStart + (i << alignof())); // a = arr[i] - let j = i - 1; - while (j >= 0) { - let b: T = load(dataStart + (j << alignof())); // b = arr[j] - if (comparator(a, b) < 0) { - store(dataStart + ((j-- + 1) << alignof()), b); // arr[j + 1] = b - } else break; - } - store(dataStart + ((j + 1) << alignof()), a); // arr[j + 1] = a + var lgPlus2 = log2u(len) + 2; + var lgPlus2Size = lgPlus2 << alignof(); + var leftRunStartBuf = __alloc(lgPlus2Size << 1); + var leftRunEndBuf = leftRunStartBuf + lgPlus2Size; + + for (let i: u32 = 0; i < lgPlus2; ++i) { + store(leftRunStartBuf + (i << alignof()), EMPTY); } -} -function weakHeapSort( - dataStart: usize, - length: i32, - comparator: (a: T, b: T) => i32 -): void { - const shift32 = alignof(); + var buffer = __alloc(len << alignof()); - var bitsetSize = (length + 31) >> 5 << shift32; - var bitset = __alloc(bitsetSize); // indexed in 32-bit chunks below - memory.fill(bitset, 0, bitsetSize); + var hi = len - 1; + var endA = extendRunRight(ptr, 0, hi, comparator); + var lenA = endA + 1; - // see: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.21.1863&rep=rep1&type=pdf + if (lenA < MIN_RUN_LENGTH) { + endA = min(hi, MIN_RUN_LENGTH - 1); + insertionSort(ptr, 0, endA, lenA, comparator); + } - for (let i = length - 1; i > 0; i--) { - let j = i; - while ((j & 1) == (load(bitset + (j >> 6 << shift32)) >> (j >> 1 & 31) & 1)) j >>= 1; + var top: u32 = 0, startA = 0; + while (endA < hi) { + let startB = endA + 1; + let endB = extendRunRight(ptr, startB, hi, comparator); + let lenB = endB - startB + 1; - let p = j >> 1; - let a: T = load(dataStart + (p << alignof())); // a = arr[p] - let b: T = load(dataStart + (i << alignof())); // b = arr[i] - if (comparator(a, b) < 0) { - store( - bitset + (i >> 5 << shift32), - load(bitset + (i >> 5 << shift32)) ^ (1 << (i & 31)) - ); - store(dataStart + (i << alignof()), a); // arr[i] = a - store(dataStart + (p << alignof()), b); // arr[p] = b + if (lenB < MIN_RUN_LENGTH) { + endB = min(hi, startB + MIN_RUN_LENGTH - 1); + insertionSort(ptr, startB, endB, lenB, comparator); } - } - for (let i = length - 1; i >= 2; i--) { - let a: T = load(dataStart); // a = arr[0] - store(dataStart, load(dataStart + (i << alignof()))); // arr[0] = arr[i] - store(dataStart + (i << alignof()), a); // arr[i] = a + let k = nodePower(0, hi, startA, startB, endB); - let x = 1, y: i32; - while ((y = (x << 1) + ((load(bitset + (x >> 5 << shift32)) >> (x & 31)) & 1)) < i) x = y; + for (let i = top; i > k; --i) { + let start = load(leftRunStartBuf + (i << alignof())); + if (start != EMPTY) { + mergeRuns( + ptr, + start, + load(leftRunEndBuf + (i << alignof())) + 1, + endA, + buffer, + comparator + ); + startA = start; + store(leftRunStartBuf + (i << alignof()), EMPTY); + } + } - while (x > 0) { - a = load(dataStart); // a = arr[0] - let b: T = load(dataStart + (x << alignof())); // b = arr[x] + store(leftRunStartBuf + (k << alignof()), startA); + store(leftRunEndBuf + (k << alignof()), endA); + startA = startB; + endA = endB; + top = k; + } - if (comparator(a, b) < 0) { - store( - bitset + (x >> 5 << shift32), - load(bitset + (x >> 5 << shift32)) ^ (1 << (x & 31)) - ); - store(dataStart + (x << alignof()), a); // arr[x] = a - store(dataStart, b); // arr[0] = b + for (let i = top; i != 0; --i) { + let start = load(leftRunStartBuf + (i << alignof())); + if (start != EMPTY) { + mergeRuns( + ptr, + start, + load(leftRunEndBuf + (i << alignof())) + 1, + hi, + buffer, + comparator + ); + } + } + // dealloc aux buffers + __free(buffer); + __free(leftRunStartBuf); +} + +function insertionSort( + ptr: usize, + left: i32, + right: i32, + presorted: i32, + comparator: Comparator +): void { + if (ASC_SHRINK_LEVEL >= 1) { + // slightly improved original insertion sort + for (let i = left + presorted; i <= right; ++i) { + let j = i - 1; + let a = load(ptr + (i << alignof())); + while (j >= left) { + let b = load(ptr + (j << alignof())); + if (comparator(a, b) < 0) { + store(ptr + (j << alignof()), b, 1 << alignof()); --j; + } else break; + } + store(ptr + (j << alignof()), a, 1 << alignof()); + } + } else { + // even-odd two-way insertion sort which allow increase minRunLen + let range = right - left + 1; + let i = left + select(range & 1, presorted - ((range - presorted) & 1), presorted == 0); + for (; i <= right; i += 2) { + let a = load(ptr + (i << alignof()), 0); + let b = load(ptr + (i << alignof()), 1 << alignof()); + let min = b, max = a; + if (comparator(a, b) <= 0) { + min = a, max = b; + } + let j = i - 1; + while (j >= left) { + a = load(ptr + (j << alignof())); + if (comparator(a, max) > 0) { + store(ptr + (j << alignof()), a, 2 << alignof()); --j; + } else break; + } + store(ptr + (j << alignof()), max, 2 << alignof()); + while (j >= left) { + a = load(ptr + (j << alignof())); + if (comparator(a, min) > 0) { + store(ptr + (j << alignof()), a, 1 << alignof()); --j; + } else break; } - x >>= 1; + store(ptr + (j << alignof()), min, 1 << alignof()); } } +} + +function nodePower(left: u32, right: u32, startA: u32, startB: u32, endB: u32): u32 { + var n: u64 = right - left + 1; + var s = startB - (left << 1); + var l = startA + s; + var r = endB + s + 1; + var a = (l << 30) / n; + var b = (r << 30) / n; + return clz((a ^ b)); +} - __free(bitset); +function extendRunRight( + ptr: usize, + i: i32, + right: i32, + comparator: Comparator +): i32 { + if (i == right) return i; + var j = i; + if (comparator( + load(ptr + ( j << alignof())), + load(ptr + (++j << alignof())) + ) > 0) { + while ( + j < right && + (comparator( + load(ptr + (j << alignof()), 1 << alignof()), + load(ptr + (j << alignof())) + ) >>> 31) // < 0 + ) ++j; + // reverse + let k = j; + while (i < k) { + let tmp = load(ptr + (i << alignof())); + store(ptr + (i << alignof()), load(ptr + (k << alignof()))); ++i; + store(ptr + (k << alignof()), tmp); --k; + } + } else { + while ( + j < right && + comparator( + load(ptr + (j << alignof()), 1 << alignof()), + load(ptr + (j << alignof())) + ) >= 0 + ) ++j; + } + return j; +} - var t: T = load(dataStart, sizeof()); // t = arr[1] - store(dataStart, load(dataStart), sizeof()); // arr[1] = arr[0] - store(dataStart, t); // arr[0] = t +// Merges arr[l..m - 1] and arr[m..r] +function mergeRuns( + ptr: usize, + l: i32, + m: i32, + r: i32, + buffer: usize, + comparator: Comparator +): void { + --m; + var i: i32, j: i32, t = r + m; + for (i = m + 1; i > l; --i) { + store( + buffer + ((i - 1) << alignof()), + load(ptr + ((i - 1) << alignof())) + ); + } + for (j = m; j < r; ++j) { + store( + buffer + ((t - j) << alignof()), + load(ptr + (j << alignof()), 1 << alignof()) + ); + } + for (let k = l; k <= r; ++k) { + let a = load(buffer + (j << alignof())); + let b = load(buffer + (i << alignof())); + if (comparator(a, b) < 0) { + store(ptr + (k << alignof()), a); + --j; + } else { + store(ptr + (k << alignof()), b); + ++i; + } + } } diff --git a/tests/compiler/resolve-elementaccess.optimized.wat b/tests/compiler/resolve-elementaccess.optimized.wat index f028db980e..2e6ef64fbf 100644 --- a/tests/compiler/resolve-elementaccess.optimized.wat +++ b/tests/compiler/resolve-elementaccess.optimized.wat @@ -1858,7 +1858,7 @@ if i32.const 1360 i32.const 1568 - i32.const 1250 + i32.const 1259 i32.const 64 call $~lib/builtins/abort unreachable @@ -1882,7 +1882,7 @@ if i32.const 1360 i32.const 1568 - i32.const 1239 + i32.const 1248 i32.const 64 call $~lib/builtins/abort unreachable @@ -4217,7 +4217,7 @@ if i32.const 1360 i32.const 1568 - i32.const 170 + i32.const 171 i32.const 45 call $~lib/builtins/abort unreachable @@ -4237,7 +4237,7 @@ if i32.const 1360 i32.const 1568 - i32.const 159 + i32.const 160 i32.const 45 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/resolve-elementaccess.untouched.wat b/tests/compiler/resolve-elementaccess.untouched.wat index 3760f257b0..99e702c0fd 100644 --- a/tests/compiler/resolve-elementaccess.untouched.wat +++ b/tests/compiler/resolve-elementaccess.untouched.wat @@ -2483,7 +2483,7 @@ if i32.const 336 i32.const 544 - i32.const 1250 + i32.const 1259 i32.const 64 call $~lib/builtins/abort unreachable @@ -2507,7 +2507,7 @@ if i32.const 336 i32.const 544 - i32.const 1239 + i32.const 1248 i32.const 64 call $~lib/builtins/abort unreachable @@ -5389,7 +5389,7 @@ if i32.const 336 i32.const 544 - i32.const 170 + i32.const 171 i32.const 45 call $~lib/builtins/abort unreachable @@ -5409,7 +5409,7 @@ if i32.const 336 i32.const 544 - i32.const 159 + i32.const 160 i32.const 45 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index 6cdd9c5ad6..563938aaaf 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -4221,7 +4221,7 @@ if i32.const 1472 i32.const 1680 - i32.const 159 + i32.const 160 i32.const 45 call $~lib/wasi/index/abort unreachable @@ -4952,7 +4952,7 @@ if i32.const 1472 i32.const 1680 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/wasi/index/abort unreachable @@ -4971,7 +4971,7 @@ else i32.const 1168 i32.const 1680 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/wasi/index/abort unreachable @@ -4986,7 +4986,7 @@ if i32.const 1168 i32.const 1680 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/wasi/index/abort unreachable diff --git a/tests/compiler/std-wasi/crypto.untouched.wat b/tests/compiler/std-wasi/crypto.untouched.wat index e63521db77..88aba0c0bd 100644 --- a/tests/compiler/std-wasi/crypto.untouched.wat +++ b/tests/compiler/std-wasi/crypto.untouched.wat @@ -5749,7 +5749,7 @@ if i32.const 448 i32.const 656 - i32.const 159 + i32.const 160 i32.const 45 call $~lib/wasi/index/abort unreachable @@ -6247,7 +6247,7 @@ if i32.const 448 i32.const 656 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/wasi/index/abort unreachable @@ -6266,7 +6266,7 @@ if i32.const 144 i32.const 656 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/wasi/index/abort unreachable @@ -6278,7 +6278,7 @@ else i32.const 144 i32.const 656 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/wasi/index/abort unreachable @@ -6296,7 +6296,7 @@ if i32.const 144 i32.const 656 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/wasi/index/abort unreachable diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 437a63f7db..8d8ddab899 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -1,20 +1,22 @@ (module (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_none (func (param i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) (type $none_=>_none (func)) (type $none_=>_f64 (func (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) - (type $none_=>_i32 (func (result i32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) (type $i64_=>_none (func (param i64))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) @@ -41,16 +43,18 @@ (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $std/array/inputStabArr (mut i32) (i32.const 0)) + (global $std/array/outputStabArr (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) (global $~lib/util/number/_exp (mut i32) (i32.const 0)) (global $~lib/util/number/_K (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $std/array/ArrayU32 i32 (i32.const 40)) - (global $std/array/ArrayU8 i32 (i32.const 41)) - (global $std/array/ArrayStr i32 (i32.const 42)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 31428)) + (global $std/array/ArrayU32 i32 (i32.const 43)) + (global $std/array/ArrayU8 i32 (i32.const 44)) + (global $std/array/ArrayStr i32 (i32.const 45)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 31548)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 1036) ",") @@ -349,242 +353,249 @@ (data (i32.const 7256) "\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") (data (i32.const 7292) "\bc") (data (i32.const 7304) "\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?") - (data (i32.const 7484) "<") - (data (i32.const 7500) " \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") + (data (i32.const 7484) "\1c") + (data (i32.const 7500) "\0c\00\00\00\00\00\00@\00\00\80\bf") + (data (i32.const 7516) "\1c") + (data (i32.const 7528) "\14\00\00\00\08\00\00\00,") (data (i32.const 7548) "\1c") - (data (i32.const 7560) "\12\00\00\00\08\00\00\00,") + (data (i32.const 7564) "\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") (data (i32.const 7580) "<") - (data (i32.const 7596) " \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") - (data (i32.const 7644) "\\") - (data (i32.const 7660) "@") - (data (i32.const 7670) "\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?") - (data (i32.const 7710) "\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") - (data (i32.const 7740) "\1c") - (data (i32.const 7752) "\13\00\00\00\08\00\00\00-") - (data (i32.const 7772) "\\") - (data (i32.const 7788) "@") - (data (i32.const 7798) "\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf") - (data (i32.const 7830) "\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") - (data (i32.const 7868) ",") - (data (i32.const 7884) "\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02") - (data (i32.const 7916) "\1c") - (data (i32.const 7928) "\14\00\00\00\08\00\00\00.") - (data (i32.const 7948) ",") - (data (i32.const 7964) "\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02") - (data (i32.const 7996) ",") - (data (i32.const 8012) "\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02") - (data (i32.const 8044) "\1c") - (data (i32.const 8056) "\15\00\00\00\08\00\00\00/") - (data (i32.const 8076) ",") - (data (i32.const 8092) "\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") - (data (i32.const 8124) "\1c") - (data (i32.const 8156) "\1c") - (data (i32.const 8172) "\04\00\00\00\01") + (data (i32.const 7596) " \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") + (data (i32.const 7644) "<") + (data (i32.const 7660) " \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") + (data (i32.const 7708) "\\") + (data (i32.const 7724) "@") + (data (i32.const 7734) "\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?") + (data (i32.const 7774) "\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") + (data (i32.const 7804) "\1c") + (data (i32.const 7816) "\15\00\00\00\08\00\00\00-") + (data (i32.const 7836) "\\") + (data (i32.const 7852) "@") + (data (i32.const 7862) "\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf") + (data (i32.const 7894) "\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") + (data (i32.const 7932) ",") + (data (i32.const 7948) "\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02") + (data (i32.const 7980) "\1c") + (data (i32.const 7992) "\16\00\00\00\08\00\00\00.") + (data (i32.const 8012) ",") + (data (i32.const 8028) "\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02") + (data (i32.const 8060) ",") + (data (i32.const 8076) "\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02") + (data (i32.const 8108) "\1c") + (data (i32.const 8120) "\17\00\00\00\08\00\00\00/") + (data (i32.const 8140) ",") + (data (i32.const 8156) "\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") (data (i32.const 8188) "\1c") - (data (i32.const 8204) "\08\00\00\00\02\00\00\00\01") - (data (i32.const 8220) ",") - (data (i32.const 8236) "\10\00\00\00\03\00\00\00\02\00\00\00\01") - (data (i32.const 8268) ",") - (data (i32.const 8284) "\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data (i32.const 8316) "\1c") - (data (i32.const 8328) "\14\00\00\00\08\00\00\000") - (data (i32.const 8348) "\1c") - (data (i32.const 8364) "\04\00\00\00\01") + (data (i32.const 8220) "\1c") + (data (i32.const 8236) "\04\00\00\00\01") + (data (i32.const 8252) "\1c") + (data (i32.const 8268) "\08\00\00\00\02\00\00\00\01") + (data (i32.const 8284) ",") + (data (i32.const 8300) "\10\00\00\00\03\00\00\00\02\00\00\00\01") + (data (i32.const 8332) ",") + (data (i32.const 8348) "\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") (data (i32.const 8380) "\1c") - (data (i32.const 8396) "\08\00\00\00\01\00\00\00\02") + (data (i32.const 8392) "\16\00\00\00\08\00\00\000") (data (i32.const 8412) "\1c") - (data (i32.const 8424) "\14\00\00\00\08\00\00\001") + (data (i32.const 8428) "\04\00\00\00\01") (data (i32.const 8444) "\1c") - (data (i32.const 8456) "\14\00\00\00\08\00\00\002") + (data (i32.const 8460) "\08\00\00\00\01\00\00\00\02") (data (i32.const 8476) "\1c") - (data (i32.const 8488) "\14\00\00\00\08\00\00\003") + (data (i32.const 8488) "\18\00\00\00\08\00\00\001") (data (i32.const 8508) "\1c") - (data (i32.const 8520) "\14\00\00\00\08\00\00\004") + (data (i32.const 8520) "\16\00\00\00\08\00\00\002") (data (i32.const 8540) "\1c") - (data (i32.const 8552) "\17\00\00\00\08\00\00\005") + (data (i32.const 8552) "\16\00\00\00\08\00\00\003") (data (i32.const 8572) "\1c") - (data (i32.const 8584) "\1a\00\00\00\08\00\00\006") + (data (i32.const 8584) "\16\00\00\00\08\00\00\004") (data (i32.const 8604) "\1c") - (data (i32.const 8616) "\01\00\00\00\02\00\00\00a") + (data (i32.const 8616) "\16\00\00\00\08\00\00\005") (data (i32.const 8636) "\1c") - (data (i32.const 8648) "\01\00\00\00\02\00\00\00b") + (data (i32.const 8648) "\1a\00\00\00\08\00\00\006") (data (i32.const 8668) "\1c") - (data (i32.const 8680) "\01\00\00\00\04\00\00\00a\00b") + (data (i32.const 8680) "\1d\00\00\00\08\00\00\007") (data (i32.const 8700) "\1c") - (data (i32.const 8712) "\01\00\00\00\04\00\00\00b\00a") + (data (i32.const 8712) "\01\00\00\00\02\00\00\00a") (data (i32.const 8732) "\1c") - (data (i32.const 8744) "\01") - (data (i32.const 8764) ",") - (data (i32.const 8780) "\1c\00\00\00\b0!\00\00\d0!\00\00\b0!\00\00\f0!\00\00\10\"\00\000\"") - (data (i32.const 8812) ",") - (data (i32.const 8828) "\1c\00\00\000\"\00\00\b0!\00\00\b0!\00\00\f0!\00\00\d0!\00\00\10\"") - (data (i32.const 8860) "\1c") - (data (i32.const 8872) "\1c\00\00\00\08\00\00\007") - (data (i32.const 8892) "\1c") - (data (i32.const 8904) "\1e\00\00\00\08\00\00\008") - (data (i32.const 8924) "\1c") - (data (i32.const 8940) "\02\00\00\00\01") + (data (i32.const 8744) "\01\00\00\00\02\00\00\00b") + (data (i32.const 8764) "\1c") + (data (i32.const 8776) "\01\00\00\00\04\00\00\00a\00b") + (data (i32.const 8796) "\1c") + (data (i32.const 8808) "\01\00\00\00\04\00\00\00b\00a") + (data (i32.const 8828) "\1c") + (data (i32.const 8840) "\01") + (data (i32.const 8860) ",") + (data (i32.const 8876) "\1c\00\00\00\10\"\00\000\"\00\00\10\"\00\00P\"\00\00p\"\00\00\90\"") + (data (i32.const 8908) ",") + (data (i32.const 8924) "\1c\00\00\00\90\"\00\00\10\"\00\00\10\"\00\00P\"\00\000\"\00\00p\"") (data (i32.const 8956) "\1c") - (data (i32.const 8968) "\01\00\00\00\08\00\00\00t\00r\00u\00e") + (data (i32.const 8968) "\1f\00\00\00\08\00\00\008") (data (i32.const 8988) "\1c") - (data (i32.const 9000) "\01\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data (i32.const 9000) "!\00\00\00\08\00\00\009") (data (i32.const 9020) "\1c") - (data (i32.const 9032) "\01\00\00\00\02\00\00\00,") - (data (i32.const 9052) ",") - (data (i32.const 9064) "\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") - (data (i32.const 9100) "\1c") - (data (i32.const 9116) "\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") - (data (i32.const 9132) "|") - (data (i32.const 9144) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") - (data (i32.const 9260) "<") - (data (i32.const 9272) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 9324) "\1c") - (data (i32.const 9336) "\01\00\00\00\02\00\00\000") - (data (i32.const 9356) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 9756) "\1c\04") - (data (i32.const 9768) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") - (data (i32.const 10812) "\\") - (data (i32.const 10824) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") - (data (i32.const 10908) "\1c") - (data (i32.const 10920) "\01\00\00\00\n\00\00\001\00-\002\00-\003") - (data (i32.const 10940) "\1c") - (data (i32.const 10956) "\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data (i32.const 10972) "\1c") - (data (i32.const 10984) "\01\00\00\00\02\00\00\00-") + (data (i32.const 9036) "\02\00\00\00\01") + (data (i32.const 9052) "\1c") + (data (i32.const 9064) "\01\00\00\00\08\00\00\00t\00r\00u\00e") + (data (i32.const 9084) "\1c") + (data (i32.const 9096) "\01\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data (i32.const 9116) "\1c") + (data (i32.const 9128) "\01\00\00\00\02\00\00\00,") + (data (i32.const 9148) ",") + (data (i32.const 9160) "\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") + (data (i32.const 9196) "\1c") + (data (i32.const 9212) "\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 9228) "|") + (data (i32.const 9240) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") + (data (i32.const 9356) "<") + (data (i32.const 9368) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") + (data (i32.const 9420) "\1c") + (data (i32.const 9432) "\01\00\00\00\02\00\00\000") + (data (i32.const 9452) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") + (data (i32.const 9852) "\1c\04") + (data (i32.const 9864) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") + (data (i32.const 10908) "\\") + (data (i32.const 10920) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") (data (i32.const 11004) "\1c") - (data (i32.const 11020) "\08\00\00\00\00\00\00\80\00\00\00\80") + (data (i32.const 11016) "\01\00\00\00\n\00\00\001\00-\002\00-\003") (data (i32.const 11036) "\1c") - (data (i32.const 11048) "\01\00\00\00\04\00\00\00_\00_") - (data (i32.const 11068) "L") - (data (i32.const 11080) "\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008") - (data (i32.const 11148) "L") - (data (i32.const 11164) "0") - (data (i32.const 11182) "\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") - (data (i32.const 11228) "\1c") - (data (i32.const 11240) "\01\00\00\00\04\00\00\00,\00 ") - (data (i32.const 11260) "\1c") - (data (i32.const 11272) "\01\00\00\00\06\00\00\000\00.\000") - (data (i32.const 11292) "\1c") - (data (i32.const 11304) "\01\00\00\00\06\00\00\00N\00a\00N") - (data (i32.const 11324) ",") - (data (i32.const 11336) "\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 11372) ",") - (data (i32.const 11384) "\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 11480) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") - (data (i32.const 12828) "\1c") - (data (i32.const 12860) "\1c") - (data (i32.const 12876) "\04\00\00\00\01") - (data (i32.const 12892) "\1c") - (data (i32.const 12908) "\08\00\00\00\01\00\00\00\02") - (data (i32.const 12924) ",") - (data (i32.const 12940) "\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data (i32.const 12972) "\1c") - (data (i32.const 12984) "\01\00\00\00\06\00\00\001\00,\002") - (data (i32.const 13004) ",") - (data (i32.const 13016) "\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003") - (data (i32.const 13052) "\1c") - (data (i32.const 13068) "\03\00\00\00\01\ff") - (data (i32.const 13084) "\1c") - (data (i32.const 13096) "\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000") - (data (i32.const 13116) "\1c") - (data (i32.const 13132) "\06\00\00\00\01\00\ff\ff") - (data (i32.const 13148) ",") - (data (i32.const 13160) "\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000") - (data (i32.const 13196) ",") - (data (i32.const 13212) "\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff") - (data (i32.const 13244) "L") - (data (i32.const 13256) "\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000") - (data (i32.const 13324) "<") - (data (i32.const 13340) " \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") - (data (i32.const 13388) "l") - (data (i32.const 13400) "\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") - (data (i32.const 13500) ",") - (data (i32.const 13516) "\1c\00\00\000\"\00\00\b0!\00\00\b0!\00\00\f0!\00\00\d0!\00\00\10\"") - (data (i32.const 13548) ",") - (data (i32.const 13560) "\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,") - (data (i32.const 13596) "\1c") - (data (i32.const 13608) "\01\00\00\00\02\00\00\002") - (data (i32.const 13628) "\1c") - (data (i32.const 13640) "\01\00\00\00\02\00\00\004") - (data (i32.const 13660) ",") - (data (i32.const 13676) "\10\00\00\00\f00\00\0005\00\00\00\00\00\00P5") - (data (i32.const 13708) "\1c") - (data (i32.const 13720) "\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004") - (data (i32.const 13740) "\1c") - (data (i32.const 13756) "\08\00\00\00\01\00\00\00\02") - (data (i32.const 13772) "\1c") - (data (i32.const 13788) "\08\00\00\00\03\00\00\00\04") - (data (i32.const 13804) ",") - (data (i32.const 13816) "\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004") - (data (i32.const 13852) "\1c") - (data (i32.const 13868) "\02\00\00\00\01\02") - (data (i32.const 13884) "\1c") - (data (i32.const 13900) "\02\00\00\00\03\04") - (data (i32.const 13916) "\1c") - (data (i32.const 13932) "\04\00\00\00\01") + (data (i32.const 12744) "\01\00\00\00@\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") + (data (i32.const 12828) "\\") + (data (i32.const 12840) "\01\00\00\00>\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") + (data (i32.const 12924) "\1c") + (data (i32.const 12956) "\1c") + (data (i32.const 12972) "\04\00\00\00\01") + (data (i32.const 12988) "\1c") + (data (i32.const 13004) "\08\00\00\00\01\00\00\00\02") + (data (i32.const 13020) ",") + (data (i32.const 13036) "\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 13068) "\1c") + (data (i32.const 13080) "\01\00\00\00\06\00\00\001\00,\002") + (data (i32.const 13100) ",") + (data (i32.const 13112) "\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003") + (data (i32.const 13148) "\1c") + (data (i32.const 13164) "\03\00\00\00\01\ff") + (data (i32.const 13180) "\1c") + (data (i32.const 13192) "\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000") + (data (i32.const 13212) "\1c") + (data (i32.const 13228) "\06\00\00\00\01\00\ff\ff") + (data (i32.const 13244) ",") + (data (i32.const 13256) "\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000") + (data (i32.const 13292) ",") + (data (i32.const 13308) "\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 13340) "L") + (data (i32.const 13352) "\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000") + (data (i32.const 13420) "<") + (data (i32.const 13436) " \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") + (data (i32.const 13484) "l") + (data (i32.const 13496) "\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") + (data (i32.const 13596) ",") + (data (i32.const 13612) "\1c\00\00\00\90\"\00\00\10\"\00\00\10\"\00\00P\"\00\000\"\00\00p\"") + (data (i32.const 13644) ",") + (data (i32.const 13656) "\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,") + (data (i32.const 13692) "\1c") + (data (i32.const 13704) "\01\00\00\00\02\00\00\002") + (data (i32.const 13724) "\1c") + (data (i32.const 13736) "\01\00\00\00\02\00\00\004") + (data (i32.const 13756) ",") + (data (i32.const 13772) "\10\00\00\00P1\00\00\905\00\00\00\00\00\00\b05") + (data (i32.const 13804) "\1c") + (data (i32.const 13816) "\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004") + (data (i32.const 13836) "\1c") + (data (i32.const 13852) "\08\00\00\00\01\00\00\00\02") + (data (i32.const 13868) "\1c") + (data (i32.const 13884) "\08\00\00\00\03\00\00\00\04") + (data (i32.const 13900) ",") + (data (i32.const 13912) "\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004") (data (i32.const 13948) "\1c") - (data (i32.const 13964) "\04") + (data (i32.const 13964) "\02\00\00\00\01\02") (data (i32.const 13980) "\1c") - (data (i32.const 13996) "\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 13996) "\02\00\00\00\03\04") (data (i32.const 14012) "\1c") - (data (i32.const 14028) "\0c\00\00\00\04\00\00\00\05\00\00\00\06") + (data (i32.const 14028) "\04\00\00\00\01") (data (i32.const 14044) "\1c") - (data (i32.const 14060) "\0c\00\00\00\07\00\00\00\08\00\00\00\t") + (data (i32.const 14060) "\04") (data (i32.const 14076) "\1c") - (data (i32.const 14088) "\01\00\00\00\06\00\00\00o\00n\00e") + (data (i32.const 14092) "\0c\00\00\00\01\00\00\00\02\00\00\00\03") (data (i32.const 14108) "\1c") - (data (i32.const 14124) "\04\00\00\00\107") + (data (i32.const 14124) "\0c\00\00\00\04\00\00\00\05\00\00\00\06") (data (i32.const 14140) "\1c") - (data (i32.const 14152) "\01\00\00\00\06\00\00\00t\00w\00o") + (data (i32.const 14156) "\0c\00\00\00\07\00\00\00\08\00\00\00\t") (data (i32.const 14172) "\1c") - (data (i32.const 14184) "\01\00\00\00\n\00\00\00t\00h\00r\00e\00e") + (data (i32.const 14184) "\01\00\00\00\06\00\00\00o\00n\00e") (data (i32.const 14204) "\1c") - (data (i32.const 14220) "\0c\00\00\00P7\00\00\00\00\00\00p7") + (data (i32.const 14220) "\04\00\00\00p7") (data (i32.const 14236) "\1c") - (data (i32.const 14248) "\01\00\00\00\08\00\00\00f\00o\00u\00r") + (data (i32.const 14248) "\01\00\00\00\06\00\00\00t\00w\00o") (data (i32.const 14268) "\1c") - (data (i32.const 14280) "\01\00\00\00\08\00\00\00f\00i\00v\00e") + (data (i32.const 14280) "\01\00\00\00\n\00\00\00t\00h\00r\00e\00e") (data (i32.const 14300) "\1c") - (data (i32.const 14312) "\01\00\00\00\06\00\00\00s\00i\00x") + (data (i32.const 14316) "\0c\00\00\00\b07\00\00\00\00\00\00\d07") (data (i32.const 14332) "\1c") - (data (i32.const 14348) "\0c\00\00\00\b07\00\00\d07\00\00\f07") + (data (i32.const 14344) "\01\00\00\00\08\00\00\00f\00o\00u\00r") (data (i32.const 14364) "\1c") - (data (i32.const 14376) "\01\00\00\00\n\00\00\00s\00e\00v\00e\00n") + (data (i32.const 14376) "\01\00\00\00\08\00\00\00f\00i\00v\00e") (data (i32.const 14396) "\1c") - (data (i32.const 14412) "\04\00\00\0008") - (data (i32.const 14428) "<") - (data (i32.const 14444) " \00\00\00\107\00\00P7\00\00\00\00\00\00p7\00\00\b07\00\00\d07\00\00\f07\00\0008") + (data (i32.const 14408) "\01\00\00\00\06\00\00\00s\00i\00x") + (data (i32.const 14428) "\1c") + (data (i32.const 14444) "\0c\00\00\00\108\00\0008\00\00P8") + (data (i32.const 14460) "\1c") + (data (i32.const 14472) "\01\00\00\00\n\00\00\00s\00e\00v\00e\00n") (data (i32.const 14492) "\1c") - (data (i32.const 14524) "\1c") - (data (i32.const 14556) "<") - (data (i32.const 14568) "\01\00\00\00(\00\00\00I\00l\00l\00e\00g\00a\00l\00 \00g\00e\00n\00e\00r\00i\00c\00 \00t\00y\00p\00e") + (data (i32.const 14508) "\04\00\00\00\908") + (data (i32.const 14524) "<") + (data (i32.const 14540) " \00\00\00p7\00\00\b07\00\00\00\00\00\00\d07\00\00\108\00\0008\00\00P8\00\00\908") + (data (i32.const 14588) "\1c") (data (i32.const 14620) "\1c") - (data (i32.const 14632) "+\00\00\00\08\00\00\009") - (data (i32.const 14652) "\1c") - (data (i32.const 14664) "\1e\00\00\00\08\00\00\00:") - (data (i32.const 14688) ",\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 14716) "\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00A\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02a") - (data (i32.const 14868) "\02A") - (data (i32.const 14884) " \00\00\00\00\00\00\00\02A") - (data (i32.const 14908) "\02a") - (data (i32.const 14924) "\02A") - (data (i32.const 14940) "B\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\01\00\00\07\00\00\00B\00\00\00\06\00\00\00\02A\00\00\1d") - (table $0 59 funcref) - (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|16 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0) + (data (i32.const 14652) "<") + (data (i32.const 14664) "\01\00\00\00(\00\00\00I\00l\00l\00e\00g\00a\00l\00 \00g\00e\00n\00e\00r\00i\00c\00 \00t\00y\00p\00e") + (data (i32.const 14716) "\1c") + (data (i32.const 14728) ".\00\00\00\08\00\00\00:") + (data (i32.const 14748) "\1c") + (data (i32.const 14760) "!\00\00\00\08\00\00\00;") + (data (i32.const 14784) "/\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 14812) "\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00A\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02a") + (data (i32.const 14932) " \00\00\00\00\00\00\00\02A") + (data (i32.const 14988) "\02A") + (data (i32.const 15004) " \00\00\00\00\00\00\00\02A") + (data (i32.const 15028) "\02a") + (data (i32.const 15044) "\02A") + (data (i32.const 15060) "B\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\01\00\00\07\00\00\00B\00\00\00\06\00\00\00\02A\00\00 ") + (table $0 60 funcref) + (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|16 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $start:std/array~anonymous|47 $std/array/assertStableSortedForComplexObjects~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0) (export "ArrayU32" (global $std/array/ArrayU32)) (export "ArrayU8" (global $std/array/ArrayU8)) (export "ArrayStr" (global $std/array/ArrayStr)) @@ -683,11 +694,23 @@ end i32.const 7312 call $~lib/rt/itcms/__visit + global.get $std/array/inputStabArr + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array/outputStabArr + local.tee $0 + if + local.get $0 + call $~lib/rt/itcms/__visit + end i32.const 1344 call $~lib/rt/itcms/__visit i32.const 1056 call $~lib/rt/itcms/__visit - i32.const 14576 + i32.const 14672 call $~lib/rt/itcms/__visit i32.const 2176 call $~lib/rt/itcms/__visit @@ -695,9 +718,9 @@ call $~lib/rt/itcms/__visit i32.const 1152 call $~lib/rt/itcms/__visit - i32.const 9776 + i32.const 9872 call $~lib/rt/itcms/__visit - i32.const 10832 + i32.const 10928 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -770,7 +793,7 @@ if i32.const 0 local.get $0 - i32.const 31428 + i32.const 31548 i32.lt_u local.get $0 i32.load offset=8 @@ -821,7 +844,7 @@ i32.const 1 else local.get $1 - i32.const 14688 + i32.const 14784 i32.load i32.gt_u if @@ -835,7 +858,7 @@ local.get $1 i32.const 3 i32.shl - i32.const 14692 + i32.const 14788 i32.add i32.load i32.const 32 @@ -1431,10 +1454,10 @@ if unreachable end - i32.const 31440 + i32.const 31552 i32.const 0 i32.store - i32.const 33008 + i32.const 33120 i32.const 0 i32.store loop $for-loop|0 @@ -1445,7 +1468,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 31440 + i32.const 31552 i32.add i32.const 0 i32.store offset=4 @@ -1463,7 +1486,7 @@ i32.add i32.const 2 i32.shl - i32.const 31440 + i32.const 31552 i32.add i32.const 0 i32.store offset=96 @@ -1481,20 +1504,20 @@ br $for-loop|0 end end - i32.const 31440 - i32.const 33012 + i32.const 31552 + i32.const 33124 memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 31440 + i32.const 31552 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 - i32.const 31428 + i32.const 31548 i32.lt_u if return @@ -1623,7 +1646,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 31428 + i32.const 31548 i32.lt_u if local.get $0 @@ -1718,7 +1741,7 @@ unreachable end local.get $0 - i32.const 31428 + i32.const 31548 i32.lt_u if local.get $0 @@ -4553,3106 +4576,6000 @@ unreachable end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 f32) - (local $6 i32) + (local $6 f32) (local $7 f32) (local $8 i32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 + local.get $2 + local.get $1 + i32.sub + i32.const 1 i32.add - local.tee $6 - i32.const 0 + local.tee $8 + i32.const 1 + i32.and local.get $3 - call $~lib/memory/memory.fill - local.get $1 + local.get $8 + local.get $3 + i32.sub i32.const 1 + i32.and i32.sub - local.set $4 + local.get $3 + i32.eqz + select + i32.add + local.set $8 loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s + local.get $2 + local.get $8 + i32.ge_s if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $6 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end local.get $0 - local.get $3 - i32.const 1 - i32.shr_s - local.tee $3 + local.get $8 i32.const 2 i32.shl i32.add + local.tee $3 f32.load local.set $5 - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $7 + local.get $3 + f32.load offset=4 + local.tee $7 + local.set $6 i32.const 2 global.set $~argumentsLength local.get $5 local.get $7 - local.get $2 + local.get $4 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 - i32.lt_s + i32.le_s if - local.get $6 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add local.get $5 - f32.store - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add + local.set $6 local.get $7 - f32.store + local.set $5 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s - if - local.get $0 - f32.load - local.set $5 - local.get $0 - local.get $0 - local.get $4 - i32.const 2 - i32.shl - i32.add - local.tee $1 - f32.load - f32.store - local.get $1 - local.get $5 - f32.store - i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 + local.set $3 + loop $while-continue|1 local.get $1 - i32.const 0 - i32.gt_s + local.get $3 + i32.le_s if - local.get $0 - f32.load - local.set $5 - local.get $0 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 - i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u + block $while-break|1 + local.get $0 + local.get $3 i32.const 2 i32.shl i32.add - local.tee $3 - local.get $3 + f32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $5 + local.get $4 i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 local.get $0 - local.get $1 + local.get $3 i32.const 2 i32.shl i32.add - local.get $5 - f32.store - local.get $0 local.get $7 - f32.store + f32.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 end end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 - end - end - local.get $6 - call $~lib/rt/tlsf/__free - local.get $0 - f32.load offset=4 - local.set $5 - local.get $0 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store offset=4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $6 + f32.store offset=4 + local.get $8 + i32.const 2 + i32.add + local.set $8 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add f32.load - f32.store offset=4 - local.get $0 - local.get $5 - f32.store - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) - (local $2 i32) - (local $3 i32) local.get $0 - i32.reinterpret_f32 - local.tee $2 - local.get $2 - i32.const 31 - i32.shr_s - i32.const 1 - i32.shr_u - i32.xor - local.tee $2 local.get $1 - i32.reinterpret_f32 - local.tee $3 - local.get $3 - i32.const 31 - i32.shr_s i32.const 1 - i32.shr_u - i32.xor - local.tee $3 - i32.gt_s - local.get $2 - local.get $3 - i32.lt_s - i32.sub - ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) - (local $6 i32) - (local $7 f64) - (local $8 i32) - local.get $1 - i32.const 31 i32.add - i32.const 5 - i32.shr_u + local.tee $4 i32.const 2 i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 i32.add - local.tee $6 - i32.const 0 + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s - if + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $6 - local.get $3 - i32.const 6 - i32.shr_u + i32.gt_s + if (result i32) + local.get $0 + local.get $4 i32.const 2 i32.shl i32.add - i32.load + local.tee $7 + f32.load offset=4 + local.get $7 + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - i32.const 1 - i32.shr_s + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 31 i32.shr_u + else + i32.const 0 + end + if + local.get $4 i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $0 - local.get $3 - i32.const 1 - i32.shr_s - local.tee $3 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 local.get $2 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 i32.lt_s if - local.get $6 - local.get $4 - i32.const 5 - i32.shr_u + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store + local.tee $3 + f32.load + local.set $5 + local.get $3 local.get $0 - local.get $4 - i32.const 3 + local.get $2 + i32.const 2 i32.shl i32.add + local.tee $3 + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 local.get $5 - f64.store + f32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) local.get $0 - local.get $3 - i32.const 3 + local.get $4 + i32.const 2 i32.shl i32.add - local.get $7 - f64.store - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 + local.tee $1 + f32.load offset=4 + local.get $1 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 i32.const 1 i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $10 + i32.add local.get $0 - f64.load - local.set $5 - local.get $0 + local.get $10 + i32.add + f32.load + f32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if local.get $4 - i32.const 3 + local.get $6 + i32.const 2 i32.shl i32.add - local.tee $1 - f64.load - f64.store - local.get $1 + f32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 local.get $5 - f64.store - i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $6 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $1 - i32.const 5 - i32.shr_u i32.const 2 i32.shl i32.add - i32.load - local.get $1 - i32.shr_u + local.get $7 + f32.store + local.get $6 i32.const 1 - i32.and + i32.sub + local.set $6 + else + local.get $0 local.get $1 - i32.const 1 + i32.const 2 i32.shl i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s - if - local.get $0 - f64.load - local.set $5 - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store - local.get $0 - local.get $7 - f64.store - end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 - end + local.get $8 + f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 end - local.get $4 + local.get $1 i32.const 1 - i32.sub - local.set $4 + i32.add + local.set $1 br $for-loop|2 end end - local.get $6 - call $~lib/rt/tlsf/__free - local.get $0 - f64.load offset=8 - local.set $5 - local.get $0 - local.get $0 - f64.load - f64.store offset=8 - local.get $0 - local.get $5 - f64.store - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - local.get $0 - i64.reinterpret_f64 - local.tee $2 - local.get $2 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.tee $2 - local.get $1 - i64.reinterpret_f64 - local.tee $3 - local.get $3 - i64.const 63 - i64.shr_s - i64.const 1 - i64.shr_u - i64.xor - local.tee $3 - i64.gt_s - local.get $2 - local.get $3 - i64.lt_s - i32.sub ) - (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) + (func $~lib/util/sort/SORT (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 i64) + (local $10 i32) + (local $11 i32) + (local $12 f32) + (local $13 i32) + (local $14 f32) + (local $15 i32) + (local $16 f32) local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + i32.const 128 + i32.le_s if - i32.const 1344 - i32.const 1104 - i32.const 99 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $16 + local.get $0 + f32.load offset=4 + local.set $14 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $14 + local.get $16 + local.get $16 + local.get $14 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + f32.load offset=8 + local.set $12 + i32.const 2 + global.set $~argumentsLength + local.get $16 + local.get $14 + local.get $1 + select + local.tee $16 + local.get $12 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $1 + local.get $0 + local.get $12 + local.get $16 + local.get $1 + select + f32.store offset=4 + local.get $0 + local.get $16 + local.get $12 + local.get $1 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $16 + local.get $0 + f32.load offset=4 + local.set $14 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $14 + local.get $16 + local.get $16 + local.get $14 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + local.get $16 + local.get $14 + local.get $1 + select + f32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return end - local.get $0 - i32.load offset=4 + i32.const 33 local.get $1 - i32.const 3 + i32.clz + i32.sub + local.tee $5 + i32.const 2 i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 i32.add - f64.load - ) - (func $~lib/util/sort/weakHeapSort (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 + local.tee $13 + local.get $7 i32.add - i32.const 5 - i32.shr_u + local.set $11 + i32.const 0 + local.set $7 + loop $for-loop|1 + local.get $5 + local.get $7 + i32.gt_u + if + local.get $13 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 i32.const 2 i32.shl - local.tee $3 - local.set $4 + local.set $7 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $4 + local.get $7 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $5 + local.set $10 + local.get $0 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill local.get $1 i32.const 1 i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 + local.tee $15 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 i32.const 0 - i32.gt_s + local.get $15 + i32.const 31 + local.get $15 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $15 + i32.lt_s if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $5 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end local.get $0 - local.get $3 + local.get $1 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 $~argumentsLength - local.get $3 - local.get $6 + local.tee $5 + local.get $15 local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 + call $~lib/util/sort/extendRunRight + local.tee $7 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $4 + i32.const 32 i32.lt_s if - local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store local.get $0 - local.get $4 - i32.const 2 - i32.shl + local.get $5 + local.get $15 + local.get $5 + i32.const 31 i32.add - local.get $3 - i32.store - local.get $0 + local.tee $7 local.get $7 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store + local.get $15 + i32.gt_s + select + local.tee $7 + local.get $4 + local.get $2 + call $~lib/util/sort/insertionSort end - local.get $4 + local.get $3 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $15 i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-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 + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $7 + i32.add i32.const 1 - local.set $1 - loop $while-continue|3 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $4 + loop $for-loop|3 local.get $4 - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s + local.get $6 + i32.lt_u if - local.get $0 - i32.load - local.set $3 - local.get $0 - local.get $1 + local.get $13 + local.get $6 i32.const 2 i32.shl i32.add i32.load - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s + local.tee $8 + i32.const -1 + i32.ne if - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u + local.get $0 + local.get $8 + local.get $11 + local.get $6 i32.const 2 i32.shl + local.tee $3 i32.add - local.tee $7 - local.get $7 i32.load i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 2 - i32.shl i32.add + local.get $1 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns local.get $3 + local.get $13 + i32.add + i32.const -1 i32.store - local.get $0 - local.get $6 - i32.store + local.get $8 + local.set $3 end - local.get $1 + local.get $6 i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 + i32.sub + local.set $6 + br $for-loop|3 end end + local.get $13 + local.get $4 + i32.const 2 + i32.shl + local.tee $6 + i32.add + local.get $3 + i32.store + local.get $6 + local.get $11 + i32.add + local.get $1 + i32.store + local.get $5 + local.set $3 + local.get $7 + local.set $1 local.get $4 + local.set $6 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $6 + if + local.get $13 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $11 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $15 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $6 i32.const 1 i32.sub - local.set $4 - br $for-loop|2 + local.set $6 + br $for-loop|4 end end - local.get $5 + local.get $10 call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) + (local $2 i32) + (local $3 i32) 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 + i32.reinterpret_f32 + local.tee $2 + local.get $2 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + local.tee $2 local.get $1 - i32.store + i32.reinterpret_f32 + local.tee $3 + local.get $3 + i32.const 31 + i32.shr_s + i32.const 1 + i32.shr_u + i32.xor + local.tee $3 + i32.gt_s + local.get $2 + local.get $3 + i32.lt_s + i32.sub ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) - (local $3 i32) + (local $3 f32) (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) local.get $0 i32.load offset=12 - local.tee $3 - i32.const 1 - i32.le_s + local.tee $4 + local.get $1 + i32.load offset=12 + i32.ne if - local.get $0 + i32.const 0 return end local.get $0 - i32.load offset=4 - local.set $2 - local.get $3 - i32.const 2 + local.get $1 i32.eq if + i32.const 1 + return + end + loop $for-loop|0 local.get $2 - i32.load offset=4 - local.set $4 - local.get $2 - i32.load - local.set $3 - i32.const 2 - global.set $~argumentsLength local.get $4 - local.get $3 - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s if + local.get $0 local.get $2 + call $~lib/array/Array#__get + local.tee $3 local.get $3 - i32.store offset=4 - local.get $2 - local.get $4 - i32.store - end - local.get $0 - return - end - local.get $3 - local.tee $4 - i32.const 256 - i32.lt_s - if - local.get $2 - local.set $3 - local.get $1 - local.set $5 - loop $for-loop|0 - local.get $4 - local.get $6 - i32.gt_s - if + f32.ne + if (result i32) + local.get $1 + local.get $2 + call $~lib/array/Array#__get + local.tee $3 local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 + f32.ne + else + i32.const 0 + end + i32.eqz + if + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.get $1 + local.get $2 + call $~lib/array/Array#__get + f32.ne + if i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $1 - local.tee $2 - i32.const 1 - i32.sub - local.set $1 - local.get $3 - local.get $2 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - br $while-continue|1 - end - end + return end - local.get $3 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - else - local.get $2 - local.get $4 - local.get $1 - call $~lib/util/sort/weakHeapSort end - local.get $0 - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub + i32.const 1 ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 f64) (local $8 i32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 + local.get $2 + local.get $1 + i32.sub + i32.const 1 i32.add - local.tee $5 - i32.const 0 + local.tee $8 + i32.const 1 + i32.and local.get $3 - call $~lib/memory/memory.fill - local.get $1 + local.get $8 + local.get $3 + i32.sub i32.const 1 + i32.and i32.sub - local.set $4 + local.get $3 + i32.eqz + select + i32.add + local.set $8 loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s + local.get $2 + local.get $8 + i32.ge_s if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $5 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-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 + local.get $8 + i32.const 3 i32.shl i32.add - i32.load + local.tee $3 + f64.load + local.set $5 + local.get $3 + f64.load offset=8 + local.tee $7 local.set $6 i32.const 2 global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 + local.get $5 + local.get $7 + local.get $4 i32.load - call_indirect $0 (type $i32_i32_=>_i32) + call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 - i32.lt_s + i32.le_s if local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - 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.set $6 local.get $7 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store + local.set $5 end - local.get $4 + local.get $8 i32.const 1 i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-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 $while-continue|3 - local.get $4 - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and + local.set $3 + loop $while-continue|1 local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.gt_s + local.get $3 + i32.le_s if - local.get $3 - local.set $1 - br $while-continue|3 + block $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $7 + f64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end end end - loop $while-continue|4 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store offset=16 + loop $while-continue|2 local.get $1 - i32.const 0 - i32.gt_s + local.get $3 + i32.le_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 $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 + block $while-break|2 + local.get $0 + local.get $3 + i32.const 3 i32.shl i32.add - local.tee $7 - local.get $7 + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 local.get $0 - local.get $1 - i32.const 2 + local.get $3 + i32.const 3 i32.shl i32.add + local.get $5 + f64.store offset=8 local.get $3 - i32.store - local.get $0 - local.get $6 - i32.store + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 end end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $6 + f64.store offset=8 + local.get $8 + i32.const 2 + i32.add + local.set $8 + br $for-loop|0 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/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u - i32.sub - ) - (func $~lib/math/NativeMath.random (result f64) - (local $0 i64) - (local $1 i64) - global.get $~lib/math/random_seeded - i32.eqz - if - call $~lib/builtins/seed - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom - end - global.get $~lib/math/random_state0_64 - local.set $0 - global.get $~lib/math/random_state1_64 - local.tee $1 - global.set $~lib/math/random_state0_64 - local.get $1 - local.get $0 - local.get $0 - i64.const 23 - i64.shl - i64.xor - local.tee $0 - local.get $0 - i64.const 17 - i64.shr_u - i64.xor - i64.xor - local.get $1 - i64.const 26 - i64.shr_u - i64.xor - global.set $~lib/math/random_state1_64 - local.get $1 - i64.const 12 - i64.shr_u - i64.const 4607182418800017408 - i64.or - f64.reinterpret_i64 - f64.const 1 - f64.sub - ) - (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 i32) local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + local.get $2 + i32.eq if local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1344 - i32.const 1104 - i32.const 115 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $3 - i32.store offset=12 + return end local.get $0 local.get $1 - local.get $2 - call $~lib/array/Array#__uset - ) - (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 0 - call $~lib/array/Array#__get - local.get $1 - i32.const 0 - call $~lib/array/Array#__get - i32.sub - ) - (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) + i32.const 3 + i32.shl + i32.add + f64.load local.get $0 - i32.load local.get $1 - i32.load - i32.sub - ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.const 0 - i32.const 0 - local.get $0 - local.get $0 - local.get $1 - i32.eq - select - select - i32.eqz - if - i32.const 0 - return - end - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u - local.tee $6 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.or - i32.eqz - if - i32.const 0 - return - end - local.get $6 - i32.eqz - if - i32.const -1 - return - end - local.get $5 - i32.eqz + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s if - i32.const 1 - return - end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.const 1 - local.get $6 - local.get $5 - local.get $5 - local.get $6 - i32.gt_s - select - local.tee $3 - i32.const 4 - i32.ge_u - select - i32.eqz - if - loop $do-continue|0 + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) local.get $0 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $0 - i32.const 8 - i32.add - local.set $0 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $3 - i32.const 4 - i32.sub - local.tee $3 - i32.const 4 - i32.ge_u - br_if $do-continue|0 - end + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $7 + f64.load offset=8 + local.get $7 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 end end + local.get $4 + local.set $2 loop $while-continue|1 - local.get $3 - local.tee $2 - i32.const 1 - i32.sub - local.set $3 + local.get $1 local.get $2 + i32.lt_s if local.get $0 - i32.load16_u - local.tee $2 local.get $1 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $2 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end + i32.const 3 + i32.shl + i32.add + local.tee $3 + f64.load + local.set $5 + local.get $3 local.get $0 - i32.const 2 + local.get $2 + i32.const 3 + i32.shl i32.add - local.set $0 + local.tee $3 + f64.load + f64.store local.get $1 - i32.const 2 + i32.const 1 i32.add local.set $1 + local.get $3 + local.get $5 + f64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 br $while-continue|1 end end - i32.const 0 + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $1 + f64.load offset=8 + local.get $1 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end end - local.tee $0 - local.get $6 - local.get $5 - i32.sub - local.get $0 - select + local.get $4 ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $1 - i32.const 0 - local.get $0 - select - i32.eqz - if - i32.const 0 - return - end - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 i32.const 1 - i32.shr_u - local.tee $2 - local.get $1 - i32.const 20 i32.sub - i32.load offset=16 + local.tee $6 + i32.add + local.set $9 + local.get $6 i32.const 1 - i32.shr_u - i32.ne - if - i32.const 0 - return - end - block $__inlined_func$~lib/util/string/compareImpl (result i32) - local.get $0 - local.tee $3 - i32.const 7 - i32.and + i32.add + local.set $2 + loop $for-loop|0 local.get $1 - i32.const 7 - i32.and - i32.or - i32.const 1 local.get $2 - local.tee $0 - i32.const 4 - i32.ge_u - select - i32.eqz + i32.lt_s if - loop $do-continue|0 - local.get $3 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $3 - i32.const 8 - i32.add - local.set $3 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-continue|0 - end - end + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + f64.load + f64.store + br $for-loop|0 end - loop $while-continue|1 + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add local.get $0 - local.tee $2 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + f64.store + local.get $6 i32.const 1 - i32.sub - local.set $0 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + local.get $4 local.get $2 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s if - local.get $3 - i32.load16_u - local.tee $2 + local.get $0 local.get $1 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $2 - local.get $4 - i32.sub - br $__inlined_func$~lib/util/string/compareImpl - end - local.get $3 - i32.const 2 + i32.const 3 + i32.shl i32.add - local.set $3 + local.get $7 + f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 local.get $1 - i32.const 2 + i32.const 3 + i32.shl i32.add - local.set $1 - br $while-continue|1 + local.get $8 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - i32.const 0 end - i32.eqz ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15044 - i32.lt_s + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 f64) + (local $13 i32) + (local $14 f64) + (local $15 i32) + (local $16 f64) + local.get $1 + i32.const 128 + i32.le_s if - i32.const 31456 - i32.const 31504 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/string/String#concat - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $4 - i32.add - local.tee $2 - i32.eqz + i32.le_s if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - local.set $2 - br $__inlined_func$~lib/string/String#concat + return end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $3 - call $~lib/memory/memory.copy - local.get $2 - local.get $3 - i32.add - local.get $1 - local.get $4 - call $~lib/memory/memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $2 - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 9356 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $16 + local.get $0 + f64.load offset=8 + local.set $14 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $14 + local.get $16 + local.get $16 + local.get $14 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + f64.load offset=16 + local.set $12 + i32.const 2 + global.set $~argumentsLength + local.get $16 + local.get $14 + local.get $1 + select + local.tee $16 + local.get $12 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $1 + local.get $0 + local.get $12 + local.get $16 + local.get $1 + select + f64.store offset=8 + local.get $0 + local.get $16 + local.get $12 + local.get $1 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $16 + local.get $0 + f64.load offset=8 + local.set $14 i32.const 2 - i32.shl - i32.const 9356 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + global.set $~argumentsLength + local.get $0 + local.get $14 + local.get $16 + local.get $16 + local.get $14 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + local.get $16 + local.get $14 + local.get $1 + select + f64.store offset=8 + return end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 9356 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if local.get $0 - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add + i32.const 0 local.get $1 - i32.const 2 - i32.shl - i32.const 9356 - i32.add - i32.load - i32.store - else - local.get $0 - local.get $2 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return end - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + i32.const 33 local.get $1 - i32.const 0 - i32.lt_s - local.tee $2 + i32.clz + i32.sub + local.tee $5 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $0 - i32.const 45 - i32.store16 - i32.const 0 - local.get $1 - i32.sub - local.set $1 + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + local.get $7 + i32.add + local.set $11 + i32.const 0 + local.set $7 + loop $for-loop|1 + local.get $5 + local.get $7 + i32.gt_u + if + local.get $13 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end end local.get $1 - i32.const 10 - i32.lt_u + i32.const 3 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.or - i32.store16 - local.get $2 - i32.const 1 - i32.add - return + call $~lib/rt/tlsf/initialize end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $10 local.get $0 + i32.const 0 local.get $1 - local.get $1 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) + i32.const 1 + i32.sub + local.tee $15 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if local.get $0 - i32.const 100 - i32.lt_u - if (result i32) + i32.const 0 + local.get $15 + i32.const 31 + local.get $15 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $15 + i32.lt_s + if local.get $0 - i32.const 10 - i32.ge_u + local.get $1 i32.const 1 i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 + local.tee $5 + local.get $15 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $7 + local.get $5 + i32.sub + i32.const 1 i32.add - local.get $0 - i32.const 1000 - i32.ge_u + local.tee $4 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $5 + local.get $15 + local.get $5 + i32.const 31 + i32.add + local.tee $7 + local.get $7 + local.get $15 + i32.gt_s + select + local.tee $7 + local.get $4 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $5 i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $15 + i32.const 1 i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $7 i32.add - local.get $0 - i32.const 100000000 - i32.ge_u + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $4 + loop $for-loop|3 + local.get $4 + local.get $6 + i32.lt_u + if + local.get $13 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.const -1 + i32.ne + if + local.get $0 + local.get $8 + local.get $11 + local.get $6 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $8 + local.set $3 + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|3 + end + end + local.get $13 + local.get $4 + i32.const 2 + i32.shl + local.tee $6 + i32.add + local.get $3 + i32.store + local.get $6 + local.get $11 i32.add + local.get $1 + i32.store + local.get $5 + local.set $3 + local.get $7 + local.set $1 + local.get $4 + local.set $6 + br $while-continue|2 end end - local.get $2 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $0 - ) - (func $~lib/array/Array#join (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.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15044 - i32.lt_s - if - i32.const 31456 - i32.const 31504 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s + loop $for-loop|4 + local.get $6 if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $13 + local.get $6 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - local.get $3 - i32.eqz - if - local.get $4 i32.load - call $~lib/util/number/itoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 11 - i32.add - i32.mul - i32.const 11 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s + local.tee $1 + i32.const -1 + i32.ne if local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 + local.get $1 + local.get $11 local.get $6 i32.const 2 i32.shl i32.add i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $5 - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $6 i32.const 1 i32.add - local.set $6 - br $for-loop|0 + local.get $15 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|4 end - local.get $7 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $1 - i32.gt_s - if - local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) local.get $0 + i64.reinterpret_f64 + local.tee $2 + local.get $2 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.tee $2 + local.get $1 + i64.reinterpret_f64 + local.tee $3 + local.get $3 + i64.const 63 + i64.shr_s + i64.const 1 + i64.shr_u + i64.xor + local.tee $3 + i64.gt_s + local.get $2 + local.get $3 + i64.lt_s + i32.sub ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result f64) local.get $1 - i32.const 10 - i32.lt_u + local.get $0 + i32.load offset=12 + i32.ge_u if - local.get $0 - local.get $1 - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return + i32.const 1344 + i32.const 1104 + i32.const 99 + i32.const 42 + call $~lib/builtins/abort + unreachable end local.get $0 + i32.load offset=4 local.get $1 - local.get $1 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $0 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $0 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $0 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $0 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + (local $8 i32) + local.get $1 + local.get $2 + local.get $1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15044 - i32.lt_s - if - i32.const 31456 - i32.const 31504 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 - i32.lt_s + i32.const 1 + i32.add + local.tee $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $7 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - local.get $3 - i32.eqz - if - local.get $4 + local.tee $5 i32.load - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - loop $for-loop|0 + local.set $3 + local.get $5 + i32.load offset=4 + local.tee $6 + local.set $5 + i32.const 2 + global.set $~argumentsLength local.get $3 local.get $6 - i32.gt_s + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 + local.get $3 + local.set $5 local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $5 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end end - end - local.get $7 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $1 - i32.gt_s - if local.get $0 - local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $6 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end - local.get $0 ) - (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) - (local $7 i64) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i64) - (local $12 i64) - local.get $3 + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i64.sub - local.set $9 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - i64.const 1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - local.get $4 - i32.sub - local.tee $10 - i64.extend_i32_s - local.tee $1 - i64.shl - local.tee $11 - i64.const 1 - i64.sub - local.tee $12 - i64.and - local.set $7 - local.get $3 - local.get $1 - i64.shr_u - i32.wrap_i64 - local.tee $2 - local.set $4 - local.get $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $4 - i32.const 100 - i32.lt_u - if (result i32) - local.get $4 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $4 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add + i32.gt_s + if + loop $while-continue|0 + local.get $2 local.get $4 - i32.const 1000 - i32.ge_u - i32.add + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end end - else local.get $4 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $4 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $4 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $4 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $8 - loop $while-continue|0 - local.get $8 - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $8 - i32.const 1 - i32.sub - br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 - end - local.get $2 - i32.const 1000000000 - i32.div_u - local.set $4 - local.get $2 - i32.const 1000000000 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - i32.const 100000000 - i32.div_u - local.set $4 - local.get $2 - i32.const 100000000 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - i32.const 10000000 - i32.div_u - local.set $4 - local.get $2 - i32.const 10000000 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - i32.const 1000000 - i32.div_u - local.set $4 - local.get $2 - i32.const 1000000 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - i32.const 100000 - i32.div_u - local.set $4 - local.get $2 - i32.const 100000 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - i32.const 10000 - i32.div_u - local.set $4 - local.get $2 - i32.const 10000 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - i32.const 1000 - i32.div_u - local.set $4 - local.get $2 - i32.const 1000 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - i32.const 100 - i32.div_u - local.set $4 - local.get $2 - i32.const 100 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - i32.const 10 - i32.div_u - local.set $4 - local.get $2 - i32.const 10 - i32.rem_u - local.set $2 - br $break|1 - end - local.get $2 - local.set $4 - i32.const 0 - local.set $2 - br $break|1 - end - i32.const 0 - local.set $4 - end - local.get $4 - local.get $6 - i32.or + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s if local.get $0 - local.get $6 - i32.const 1 + local.get $1 + i32.const 2 i32.shl i32.add - local.get $4 - i32.const 65535 - i32.and - i32.const 48 + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl i32.add - i32.store16 - local.get $6 + local.tee $3 + i32.load + i32.store + local.get $1 i32.const 1 i32.add - local.set $6 + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $7 + end + else + loop $while-continue|2 local.get $2 - i64.extend_i32_u - local.get $10 - i64.extend_i32_s - i64.shl - i64.add - local.tee $1 - local.get $5 - i64.le_u - if - local.get $8 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $8 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 i32.const 2 i32.shl - i32.const 12352 i32.add - i64.load32_u - local.get $10 - i64.extend_i32_s - i64.shl - local.set $3 - local.get $0 - local.get $6 - i32.const 1 - i32.sub + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 i32.const 1 - i32.shl i32.add - local.tee $2 - i32.load16_u local.set $4 - loop $while-continue|3 - local.get $3 - local.get $5 - local.get $1 - i64.sub - i64.le_u - i32.const 0 - local.get $1 - local.get $9 - i64.lt_u - select - if (result i32) - i32.const 1 - local.get $9 - local.get $1 - i64.sub - local.get $1 - local.get $3 - i64.add - local.tee $7 - local.get $9 - i64.sub - i64.gt_u - local.get $7 - local.get $9 - i64.lt_u - select - else - i32.const 0 - end - if - local.get $4 - i32.const 1 - i32.sub - local.set $4 - local.get $1 - local.get $3 - i64.add - local.set $1 - br $while-continue|3 - end - end - local.get $2 - local.get $4 - i32.store16 - local.get $6 - return + br $while-continue|2 end - br $while-continue|0 end end - local.get $10 - i64.extend_i32_s - local.set $1 - loop $while-continue|4 - local.get $5 - i64.const 10 - i64.mul - local.set $5 - local.get $7 - i64.const 10 - i64.mul - local.tee $3 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 local.get $1 - i64.shr_u - local.tee $7 - local.get $6 - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne + local.get $2 + i32.lt_s if - local.get $0 - local.get $6 + local.get $4 + local.get $2 i32.const 1 + i32.sub + local.tee $2 + i32.const 2 i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 local.get $7 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.const 48 + local.get $6 + i32.sub + i32.const 2 + i32.shl i32.add - i32.store16 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store local.get $6 i32.const 1 i32.add local.set $6 + br $for-loop|1 end - local.get $8 - i32.const 1 - i32.sub - local.set $8 - local.get $5 - local.get $3 - local.get $12 - i64.and - local.tee $7 - i64.le_u - br_if $while-continue|4 end - local.get $8 - global.get $~lib/util/number/_K - i32.add - global.set $~lib/util/number/_K - local.get $7 - local.set $1 - local.get $9 - i32.const 0 - local.get $8 - i32.sub - i32.const 2 - i32.shl - i32.const 12352 - i32.add - i64.load32_u - i64.mul - local.set $3 - local.get $0 - local.get $6 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.tee $2 - i32.load16_u - local.set $4 - loop $while-continue|6 - local.get $11 - local.get $5 - local.get $1 - i64.sub - i64.le_u - i32.const 0 + loop $for-loop|2 local.get $1 local.get $3 - i64.lt_u - select - if (result i32) - i32.const 1 - local.get $3 - local.get $1 - i64.sub - local.get $1 - local.get $11 - i64.add - local.tee $7 - local.get $3 - i64.sub - i64.gt_u - local.get $3 - local.get $7 - i64.gt_u - select - else - i32.const 0 - end + i32.le_s if local.get $4 - i32.const 1 - i32.sub - local.set $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end local.get $1 - local.get $11 - i64.add + i32.const 1 + i32.add local.set $1 - br $while-continue|6 + br $for-loop|2 end end - local.get $2 - local.get $4 - i32.store16 - local.get $6 ) - (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - local.get $2 - i32.eqz + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 128 + i32.le_s if - local.get $0 local.get $1 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $1 - i32.const 2 - i32.add - return - end - local.get $1 - local.get $2 - i32.add - local.tee $4 - i32.const 21 - i32.le_s - i32.const 0 - local.get $1 - local.get $4 - i32.le_s - select - if (result i32) - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s - if + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $4 + i32.const 2 + global.set $~argumentsLength local.get $0 + local.get $4 local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 48 - i32.store16 local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $4 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store offset=8 end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store offset=4 + return end local.get $0 - local.get $4 + i32.const 0 + local.get $1 i32.const 1 - i32.shl - i32.add - i32.const 3145774 - i32.store - local.get $4 - i32.const 2 - i32.add - else - local.get $4 - i32.const 21 - i32.le_s + i32.sub i32.const 0 - local.get $4 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 i32.const 0 - i32.gt_s + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s select - if (result i32) + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if local.get $0 - local.get $4 + local.get $1 i32.const 1 - i32.shl - i32.add - local.tee $0 - i32.const 2 i32.add - local.get $0 - i32.const 0 + local.tee $6 + local.get $8 local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 i32.sub i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - i32.const 46 - i32.store16 - local.get $1 - i32.const 1 i32.add - else - local.get $4 - i32.const 0 - i32.le_s - i32.const 0 - local.get $4 - i32.const -6 - i32.gt_s - select - if (result i32) + local.tee $7 + i32.const 32 + i32.lt_s + if local.get $0 - i32.const 2 - local.get $4 - i32.sub - local.tee $5 - i32.const 1 - i32.shl + local.get $6 + local.get $8 + local.get $6 + i32.const 31 i32.add - local.get $0 - local.get $1 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $0 - i32.const 3014704 - i32.store - i32.const 2 - local.set $2 - loop $for-loop|1 - local.get $2 - local.get $5 - i32.lt_s + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne if local.get $0 - local.get $2 - i32.const 1 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 i32.shl + local.tee $3 i32.add - i32.const 48 - i32.store16 - local.get $2 + i32.load i32.const 1 i32.add - local.set $2 - br $for-loop|1 + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 local.get $1 - local.get $5 + local.get $10 + local.get $4 + i32.const 2 + i32.shl i32.add - else - local.get $1 + i32.load i32.const 1 - i32.eq - if (result i32) - local.get $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - local.tee $3 - i32.const 4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $2 - if + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.set $3 + local.get $5 + i32.load offset=4 + local.tee $6 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 + i32.le_s + br_if $while-break|1 local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 i32.sub - local.set $0 + local.set $6 + br $while-continue|1 end - local.get $0 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $1 - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $3 - i32.const 45 - i32.const 43 - local.get $2 - select - i32.store16 offset=4 - local.get $0 - i32.const 2 - i32.add - else - local.get $0 - i32.const 4 - i32.add - local.get $0 - i32.const 2 - i32.add - local.get $1 - i32.const 1 - i32.shl - local.tee $2 - i32.const 2 - i32.sub - call $~lib/memory/memory.copy - local.get $0 - i32.const 46 - i32.store16 offset=2 - local.get $0 - local.get $2 - i32.add - local.tee $0 - i32.const 101 - i32.store16 offset=2 - local.get $0 - local.tee $3 - i32.const 4 - i32.add - local.get $4 - i32.const 1 - i32.sub - local.tee $0 - i32.const 0 - i32.lt_s - local.tee $5 - if + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 + i32.le_s + br_if $while-break|2 local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 i32.sub - local.set $0 - end - local.get $0 - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end + local.set $6 + br $while-continue|2 end - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - local.get $3 - i32.const 45 - i32.const 43 - local.get $5 - select - i32.store16 offset=4 - local.get $0 - local.get $1 - i32.add - i32.const 2 - i32.add end end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end end ) - (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) - (local $2 i64) - (local $3 i64) - (local $4 i64) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) + (local $6 i32) local.get $1 - f64.const 0 - f64.lt - local.tee $10 - if (result f64) - local.get $0 - i32.const 45 - i32.store16 - local.get $1 - f64.neg - else + local.get $2 + i32.eq + if local.get $1 + return end - i64.reinterpret_f64 - local.tee $2 - i64.const 9218868437227405312 - i64.and - i64.const 52 - i64.shr_u - i32.wrap_i64 - local.tee $9 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.ne - i64.extend_i32_u - i64.const 52 - i64.shl - local.get $2 - i64.const 4503599627370495 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $4 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $~lib/math/NativeMath.random (result f64) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.tee $1 + global.set $~lib/math/random_state0_64 + local.get $1 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.tee $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + i64.xor + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $6 + i32.const 1 + i32.and + local.get $3 + local.get $6 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $8 + loop $for-loop|0 + local.get $2 + local.get $8 + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.tee $6 + local.get $0 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.tee $3 + i32.store + local.get $6 + local.get $5 + i32.load offset=4 + local.tee $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.set $5 + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $8 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $3 + i32.store + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store offset=4 + local.get $8 + i32.const 2 + i32.add + local.set $8 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $8 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $7 + i32.add + local.get $0 + local.get $7 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $8 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.tee $7 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $7 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i64) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $5 + i64.const 0 + i64.store + local.get $5 + i32.const 0 + i32.store offset=8 + block $folding-inner0 + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + br_if $folding-inner0 + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $0 + i32.load + local.tee $1 + i32.store + local.get $4 + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.tee $5 + local.get $1 + local.get $4 + local.get $3 + select + local.tee $1 + i32.store + local.get $5 + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $3 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $4 + local.get $3 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $0 + i32.load + local.tee $1 + i32.store offset=8 + local.get $4 + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store offset=4 + br $folding-inner0 + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + br $folding-inner0 + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1344 + i32.const 1104 + i32.const 115 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $3 + i32.store offset=12 + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__uset + ) + (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.sub + ) + (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + i32.const 0 + i32.const 0 + local.get $0 + local.get $0 + local.get $1 + i32.eq + select + select + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $6 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.or + i32.eqz + if + i32.const 0 + return + end + local.get $6 + i32.eqz + if + i32.const -1 + return + end + local.get $5 + i32.eqz + if + i32.const 1 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.const 1 + local.get $6 + local.get $5 + local.get $5 + local.get $6 + i32.gt_s + select + local.tee $3 + i32.const 4 + i32.ge_u + select + i32.eqz + if + loop $do-continue|0 + local.get $0 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $0 + i32.const 8 + i32.add + local.set $0 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $3 + i32.const 4 + i32.sub + local.tee $3 + i32.const 4 + i32.ge_u + br_if $do-continue|0 + end + end + end + loop $while-continue|1 + local.get $3 + local.tee $2 + i32.const 1 + i32.sub + local.set $3 + local.get $2 + if + local.get $0 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + local.tee $0 + local.get $6 + local.get $5 + i32.sub + local.get $0 + select + ) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + local.get $0 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $1 + i32.const 0 + local.get $0 + select + i32.eqz + if + i32.const 0 + return + end + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $2 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.ne + if + i32.const 0 + return + end + block $__inlined_func$~lib/util/string/compareImpl (result i32) + local.get $0 + local.tee $3 + i32.const 7 + i32.and + local.get $1 + i32.const 7 + i32.and + i32.or + i32.const 1 + local.get $2 + local.tee $0 + i32.const 4 + i32.ge_u + select + i32.eqz + if + loop $do-continue|0 + local.get $3 + i64.load + local.get $1 + i64.load + i64.eq + if + local.get $3 + i32.const 8 + i32.add + local.set $3 + local.get $1 + i32.const 8 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.sub + local.tee $0 + i32.const 4 + i32.ge_u + br_if $do-continue|0 + end + end + end + loop $while-continue|1 + local.get $0 + local.tee $2 + i32.const 1 + i32.sub + local.set $0 + local.get $2 + if + local.get $3 + i32.load16_u + local.tee $2 + local.get $1 + i32.load16_u + local.tee $4 + i32.ne + if + local.get $2 + local.get $4 + i32.sub + br $__inlined_func$~lib/util/string/compareImpl + end + local.get $3 + i32.const 2 + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $while-continue|1 + end + end + i32.const 0 + end + i32.eqz + ) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/string/String#concat + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + local.tee $4 + i32.add + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8848 + local.set $2 + br $__inlined_func$~lib/string/String#concat + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + local.get $2 + local.get $0 + local.get $3 + call $~lib/memory/memory.copy + local.get $2 + local.get $3 + i32.add + local.get $1 + local.get $4 + call $~lib/memory/memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $2 + ) + (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $while-continue|0 + local.get $1 + i32.const 10000 + i32.ge_u + if + local.get $1 + i32.const 10000 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10000 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 4 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 9452 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 9452 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $1 + i32.const 100 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 9452 + i32.add + i32.load + i32.store + local.get $1 + i32.const 100 + i32.div_u + local.set $1 + end + local.get $1 + i32.const 10 + i32.ge_u + if + local.get $0 + local.get $2 + i32.const 2 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 2 + i32.shl + i32.const 9452 + i32.add + i32.load + i32.store + else + local.get $0 + local.get $2 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.add + i32.store16 + end + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return + end + local.get $0 + local.get $1 + local.get $1 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.get $2 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/array/Array#join (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.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8848 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $3 + i32.eqz + if + local.get $4 + i32.load + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 11 + i32.add + i32.mul + i32.const 11 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + i32.gt_s + if + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $1 + i32.const 48 + i32.or + i32.store16 + i32.const 1 + return + end + local.get $0 + local.get $1 + local.get $1 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 100 + i32.lt_u + if (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $0 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/array/Array#join (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.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8848 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $3 + i32.eqz + if + local.get $4 + i32.load + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|0 + end + end + local.get $7 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + i32.gt_s + if + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) + (func $~lib/util/number/genDigits (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i64) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $3 + local.get $1 + i64.sub + local.set $9 + local.get $3 + i64.const 1 + i32.const 0 + local.get $4 + i32.sub + local.tee $10 + i64.extend_i32_s + local.tee $1 + i64.shl + local.tee $11 + i64.const 1 + i64.sub + local.tee $12 + i64.and + local.set $7 + local.get $3 + local.get $1 + i64.shr_u + i32.wrap_i64 + local.tee $2 + local.set $4 + local.get $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $4 + i32.const 100 + i32.lt_u + if (result i32) + local.get $4 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $4 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $4 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $4 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $4 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $4 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $4 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $8 + loop $while-continue|0 + local.get $8 + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $8 + i32.const 1 + i32.sub + br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $case0|1 $case10|1 + end + local.get $2 + i32.const 1000000000 + i32.div_u + local.set $4 + local.get $2 + i32.const 1000000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000000 + i32.div_u + local.set $4 + local.get $2 + i32.const 100000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000000 + i32.div_u + local.set $4 + local.get $2 + i32.const 10000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000000 + i32.div_u + local.set $4 + local.get $2 + i32.const 1000000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100000 + i32.div_u + local.set $4 + local.get $2 + i32.const 100000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10000 + i32.div_u + local.set $4 + local.get $2 + i32.const 10000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 1000 + i32.div_u + local.set $4 + local.get $2 + i32.const 1000 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 100 + i32.div_u + local.set $4 + local.get $2 + i32.const 100 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + i32.const 10 + i32.div_u + local.set $4 + local.get $2 + i32.const 10 + i32.rem_u + local.set $2 + br $break|1 + end + local.get $2 + local.set $4 + i32.const 0 + local.set $2 + br $break|1 + end + i32.const 0 + local.set $4 + end + local.get $4 + local.get $6 + i32.or + if + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $4 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $8 + i32.const 1 + i32.sub + local.set $8 + local.get $7 + local.get $2 + i64.extend_i32_u + local.get $10 + i64.extend_i32_s + i64.shl + i64.add + local.tee $1 + local.get $5 + i64.le_u + if + local.get $8 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $8 + i32.const 2 + i32.shl + i32.const 12448 + i32.add + i64.load32_u + local.get $10 + i64.extend_i32_s + i64.shl + local.set $3 + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $2 + i32.load16_u + local.set $4 + loop $while-continue|3 + local.get $3 + local.get $5 + local.get $1 + i64.sub + i64.le_u + i32.const 0 + local.get $1 + local.get $9 + i64.lt_u + select + if (result i32) + i32.const 1 + local.get $9 + local.get $1 + i64.sub + local.get $1 + local.get $3 + i64.add + local.tee $7 + local.get $9 + i64.sub + i64.gt_u + local.get $7 + local.get $9 + i64.lt_u + select + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $1 + local.get $3 + i64.add + local.set $1 + br $while-continue|3 + end + end + local.get $2 + local.get $4 + i32.store16 + local.get $6 + return + end + br $while-continue|0 + end + end + local.get $10 + i64.extend_i32_s + local.set $1 + loop $while-continue|4 + local.get $5 + i64.const 10 + i64.mul + local.set $5 + local.get $7 + i64.const 10 + i64.mul + local.tee $3 + local.get $1 + i64.shr_u + local.tee $7 + local.get $6 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.const 48 + i32.add + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $8 + i32.const 1 + i32.sub + local.set $8 + local.get $5 + local.get $3 + local.get $12 + i64.and + local.tee $7 + i64.le_u + br_if $while-continue|4 + end + local.get $8 + global.get $~lib/util/number/_K + i32.add + global.set $~lib/util/number/_K + local.get $7 + local.set $1 + local.get $9 + i32.const 0 + local.get $8 + i32.sub + i32.const 2 + i32.shl + i32.const 12448 + i32.add + i64.load32_u + i64.mul + local.set $3 + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.tee $2 + i32.load16_u + local.set $4 + loop $while-continue|6 + local.get $11 + local.get $5 + local.get $1 + i64.sub + i64.le_u + i32.const 0 + local.get $1 + local.get $3 + i64.lt_u + select + if (result i32) + i32.const 1 + local.get $3 + local.get $1 + i64.sub + local.get $1 + local.get $11 + i64.add + local.tee $7 + local.get $3 + i64.sub + i64.gt_u + local.get $3 + local.get $7 + i64.gt_u + select + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.sub + local.set $4 + local.get $1 + local.get $11 + i64.add + local.set $1 + br $while-continue|6 + end + end + local.get $2 + local.get $4 + i32.store16 + local.get $6 + ) + (func $~lib/util/number/prettify (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $2 + i32.add + local.tee $4 + i32.const 21 + i32.le_s + i32.const 0 + local.get $1 + local.get $4 + i32.le_s + select + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $4 + i32.const 2 + i32.add + else + local.get $4 + i32.const 21 + i32.le_s + i32.const 0 + local.get $4 + i32.const 0 + i32.gt_s + select + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $4 + i32.const 0 + i32.le_s + i32.const 0 + local.get $4 + i32.const -6 + i32.gt_s + select + if (result i32) + local.get $0 + i32.const 2 + local.get $4 + i32.sub + local.tee $5 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $5 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if (result i32) + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + local.tee $3 + i32.const 4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $1 + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 offset=4 + local.get $0 + i32.const 2 + i32.add + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + local.tee $3 + i32.const 4 + i32.add + local.get $4 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $5 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.tee $2 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $2 + local.get $0 + local.get $2 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $3 + i32.const 45 + i32.const 43 + local.get $5 + select + i32.store16 offset=4 + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.add + end + end + end + end + ) + (func $~lib/util/number/dtoa_core (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + (local $4 i64) + (local $5 i32) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + local.get $1 + f64.const 0 + f64.lt + local.tee $10 + if (result f64) + local.get $0 + i32.const 45 + i32.store16 + local.get $1 + f64.neg + else + local.get $1 + end + i64.reinterpret_f64 + local.tee $2 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $9 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + local.get $2 + i64.const 4503599627370495 i64.and i64.add local.tee $3 @@ -7730,14 +10647,14 @@ i32.sub global.set $~lib/util/number/_K local.get $11 - i32.const 11480 + i32.const 11576 i32.add i64.load global.set $~lib/util/number/_frc_pow local.get $5 i32.const 1 i32.shl - i32.const 12176 + i32.const 12272 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow @@ -7947,67 +10864,285 @@ local.get $0 i32.const 2 i32.add - local.set $0 + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + return + end + unreachable + end + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core + ) + (func $~lib/array/Array<~lib/string/String|null>#join (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.get $0 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=12 + local.set $5 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $6 + i64.const 0 + i64.store + local.get $6 + i32.const 0 + i32.store offset=8 + block $__inlined_func$~lib/util/string/joinStringArray + local.get $5 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 8848 + local.set $0 + br $__inlined_func$~lib/util/string/joinStringArray + end + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $7 + i32.load + local.tee $0 + i32.store + local.get $0 + i32.const 8848 + local.get $0 + select + local.set $0 + local.get $1 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinStringArray + end + loop $for-loop|0 + local.get $3 + local.get $5 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store offset=4 + local.get $4 + if + local.get $0 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.mul + i32.add + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=8 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $4 + i32.store offset=4 + local.get $4 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $4 + local.get $4 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $4 + i32.add + local.set $2 + end + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.store offset=4 + local.get $1 + if local.get $0 - i64.const 29555310648492105 - i64.store - local.get $0 - i64.const 34058970405077102 - i64.store offset=8 local.get $2 - i32.const 8 + i32.const 1 + i32.shl i32.add - return + local.get $1 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + i32.const 1 + i32.shl + call $~lib/memory/memory.copy end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer end local.get $0 - local.get $1 - call $~lib/util/number/dtoa_core ) - (func $~lib/array/Array<~lib/string/String|null>#join (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) local.get $0 i32.load offset=4 - local.set $7 + local.set $1 local.get $0 i32.load offset=12 - local.set $5 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $6 + local.tee $2 i64.const 0 i64.store - local.get $6 + local.get $2 i32.const 0 i32.store offset=8 - block $__inlined_func$~lib/util/string/joinStringArray - local.get $5 + block $__inlined_func$~lib/util/string/joinReferenceArray + local.get $0 i32.const 1 i32.sub - local.tee $6 + local.tee $2 i32.const 0 i32.lt_s if @@ -8015,55 +11150,75 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $0 - br $__inlined_func$~lib/util/string/joinStringArray + br $__inlined_func$~lib/util/string/joinReferenceArray end - local.get $6 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $7 - i32.load local.tee $0 + local.get $1 + i32.load + local.tee $1 i32.store local.get $0 - i32.const 8752 - local.get $0 - select - local.set $0 - local.get $1 i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinStringArray + i32.const 12688 + i32.const 8848 + local.get $1 + select + local.set $0 + br $__inlined_func$~lib/util/string/joinReferenceArray end + i32.const 8848 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8848 + i32.store offset=4 + i32.const 9132 + i32.load + i32.const 1 + i32.shr_u + local.set $5 loop $for-loop|0 + local.get $2 local.get $3 - local.get $5 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 local.get $3 i32.const 2 i32.shl i32.add i32.load local.tee $4 - i32.store offset=4 + i32.store local.get $4 if - local.get $0 + global.get $~lib/memory/__stack_pointer + local.tee $4 + i32.const 12688 + i32.store offset=8 local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.add - local.set $0 + local.get $0 + i32.const 12688 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + local.get $5 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 9136 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 end local.get $3 i32.const 1 @@ -8073,379 +11228,592 @@ end end global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.store + local.get $1 + if + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 12688 + i32.store offset=8 + local.get $1 + local.get $0 + i32.const 12688 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i32.extend8_s + i32.const 0 + i32.lt_s + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + i32.const 0 + local.get $1 + i32.sub + local.set $1 + end + local.get $1 + i32.extend8_s + i32.const 10 + i32.lt_u + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + i32.extend8_s + i32.const 48 + i32.or + i32.store16 + local.get $2 + i32.const 1 + i32.add + return + end + local.get $1 + i32.extend8_s + local.tee $3 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $1 + local.get $0 + local.get $3 + local.get $1 + local.get $2 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + local.get $0 + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $1 + i32.const 65535 + i32.and + i32.const 10 + i32.lt_u + if local.get $0 - local.get $6 local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.mul - i32.add - i32.const 1 - i32.shl + i32.const 65535 + i32.and + i32.const 48 + i32.or + i32.store16 i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=8 - i32.const 0 - local.set $3 - loop $for-loop|1 - local.get $3 - local.get $6 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 - i32.store offset=4 - local.get $4 - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $4 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $5 - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 - end + return + end + local.get $1 + i32.const 65535 + i32.and + local.tee $2 + local.tee $1 + i32.const 100000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 100 + i32.lt_u + if (result i32) + local.get $1 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $1 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $1 + i32.const 1000 + i32.ge_u + i32.add end - global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store offset=4 + else + local.get $1 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $1 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $1 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $1 + i32.const 100000000 + i32.ge_u + i32.add + end + end + local.set $1 + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + local.get $1 + ) + (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + loop $while-continue|0 local.get $1 + i64.const 100000000 + i64.ge_u if local.get $0 local.get $2 + i32.const 4 + i32.sub + local.tee $2 i32.const 1 i32.shl i32.add local.get $1 local.get $1 - i32.const 20 + i64.const 100000000 + i64.div_u + local.tee $1 + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.tee $3 + i32.const 10000 + i32.rem_u + local.tee $4 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 9452 + i32.add + i64.load32_u + local.get $4 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 9452 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + local.get $0 + local.get $2 + i32.const 4 i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u + local.tee $2 i32.const 1 i32.shl - call $~lib/memory/memory.copy + i32.add + local.get $3 + i32.const 10000 + i32.div_u + local.tee $3 + i32.const 100 + i32.div_u + i32.const 2 + i32.shl + i32.const 9452 + i32.add + i64.load32_u + local.get $3 + i32.const 100 + i32.rem_u + i32.const 2 + i32.shl + i32.const 9452 + i32.add + i64.load32_u + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $0 - ) - (func $~lib/array/Array#join (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.load offset=4 - local.set $1 - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15044 - i32.lt_s - if - i32.const 31456 - i32.const 31504 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store + end + local.get $0 + local.get $1 + i32.wrap_i64 local.get $2 - i32.const 0 - i32.store offset=8 - block $__inlined_func$~lib/util/string/joinReferenceArray + call $~lib/util/number/utoa32_dec_lut + ) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) + (local $2 i32) + (local $3 i32) + local.get $1 + i64.const 10 + i64.lt_u + if local.get $0 + local.get $1 + i64.const 48 + i64.or + i64.store16 i32.const 1 - i32.sub + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if + local.get $1 + i32.wrap_i64 + local.tee $3 local.tee $2 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray - end - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $1 - i32.load - local.tee $1 - i32.store - local.get $0 - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 12592 - i32.const 8752 - local.get $1 - select - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray - end - i32.const 8752 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8752 - i32.store offset=4 - i32.const 9036 - i32.load - i32.const 1 - i32.shr_u - local.set $5 - loop $for-loop|0 + i32.const 100000 + i32.lt_u + if (result i32) local.get $2 - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 - i32.store - local.get $4 - if - global.get $~lib/memory/__stack_pointer - local.tee $4 - i32.const 12592 - i32.store offset=8 - local.get $4 - local.get $0 - i32.const 12592 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=4 - end - local.get $5 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 9040 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=4 - end - local.get $3 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u i32.const 1 i32.add - local.set $3 - br $for-loop|0 + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end + else + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add end end - global.get $~lib/memory/__stack_pointer - local.get $1 + local.set $2 + local.get $0 + local.get $3 local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store + local.tee $0 + call $~lib/util/number/utoa32_dec_lut + else + local.get $0 local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 12592 - i32.store offset=8 + local.get $1 + i64.const 1000000000000000 + i64.lt_u + if (result i32) local.get $1 - local.get $0 - i32.const 12592 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=4 + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end + else + local.get $1 + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + call $~lib/util/number/utoa64_dec_lut end local.get $0 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) (local $2 i32) (local $3 i32) + (local $4 i32) local.get $1 - i32.extend8_s - i32.const 0 - i32.lt_s - local.tee $2 + i64.const 0 + i64.lt_s + local.tee $3 if local.get $0 i32.const 45 i32.store16 - i32.const 0 + i64.const 0 local.get $1 - i32.sub + i64.sub local.set $1 end local.get $1 - i32.extend8_s - i32.const 10 - i32.lt_u + i64.const 10 + i64.lt_u if local.get $0 - local.get $2 + local.get $3 i32.const 1 i32.shl i32.add local.get $1 - i32.extend8_s - i32.const 48 - i32.or - i32.store16 - local.get $2 + i64.const 48 + i64.or + i64.store16 + local.get $3 i32.const 1 i32.add - return - end - local.get $1 - i32.extend8_s - local.tee $3 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) + return + end + local.get $1 + i64.const 4294967295 + i64.le_u + if local.get $1 - i32.const 100 + i32.wrap_i64 + local.tee $4 + local.tee $2 + i32.const 100000 i32.lt_u if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add + local.get $2 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add + local.get $2 + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end end + local.set $2 + local.get $0 + local.get $4 + local.get $2 + local.get $3 + i32.add + local.tee $0 + call $~lib/util/number/utoa32_dec_lut else + local.get $0 local.get $1 - i32.const 10000000 - i32.lt_u + local.get $1 + i64.const 1000000000000000 + i64.lt_u if (result i32) local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add + i64.const 1000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 100000000000 + i64.ge_u + i32.const 10 + i32.add + local.get $1 + i64.const 10000000000 + i64.ge_u + i32.add + else + local.get $1 + i64.const 100000000000000 + i64.ge_u + i32.const 13 + i32.add + local.get $1 + i64.const 10000000000000 + i64.ge_u + i32.add + end else local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add + i64.const 100000000000000000 + i64.lt_u + if (result i32) + local.get $1 + i64.const 10000000000000000 + i64.ge_u + i32.const 16 + i32.add + else + local.get $1 + i64.const -8446744073709551616 + i64.ge_u + i32.const 18 + i32.add + local.get $1 + i64.const 1000000000000000000 + i64.ge_u + i32.add + end end + local.get $3 + i32.add + local.tee $0 + call $~lib/util/number/utoa64_dec_lut end - local.set $1 - local.get $0 - local.get $3 - local.get $1 - local.get $2 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut local.get $0 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 - i32.const 65535 + i32.const 255 i32.and i32.const 10 i32.lt_u if local.get $0 local.get $1 - i32.const 65535 + i32.const 255 i32.and i32.const 48 i32.or @@ -8454,7 +11822,7 @@ return end local.get $1 - i32.const 65535 + i32.const 255 i32.and local.tee $2 local.tee $1 @@ -8510,884 +11878,949 @@ call $~lib/util/number/utoa32_dec_lut local.get $1 ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) (local $4 i32) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $0 + i32.load offset=4 + local.set $4 + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + i32.const 1 + i32.sub + local.tee $3 + i32.const 0 + i32.lt_s if - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i64.const 100000000 - i64.div_u - local.tee $1 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 9356 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 9356 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $0 - local.get $2 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 9356 i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 9356 + global.set $~lib/memory/__stack_pointer + i32.const 8848 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray + end + local.get $3 + i32.eqz + if + local.get $4 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray end - end - local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i64.const 10 - i64.lt_u - if - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $3 local.get $1 - i64.const 48 - i64.or - i64.store16 + i32.const 20 + i32.sub + i32.load offset=16 i32.const 1 - return - end - local.get $1 - i64.const 4294967295 - i64.le_u - if - local.get $1 - i32.wrap_i64 - local.tee $3 - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + i32.mul + i32.const 10 + i32.add + local.tee $7 + i32.const 1 + i32.shl + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + loop $for-loop|0 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $0 local.get $2 - i32.const 10 - i32.ge_u i32.const 1 + i32.shl i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 + local.get $4 + local.get $6 i32.add - else + i32.load8_u + call $~lib/util/number/itoa_buffered local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 i32.add - local.get $2 - i32.const 100000000 - i32.ge_u + local.set $2 + local.get $5 + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $1 + local.get $5 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $2 + local.get $5 + i32.add + local.set $2 + end + local.get $6 + i32.const 1 i32.add + local.set $6 + br $for-loop|0 end end - local.set $2 + local.get $7 local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add local.get $3 + local.get $4 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered local.get $2 - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $0 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) + i32.add + local.tee $1 + i32.gt_s + if + local.get $0 local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + end + local.get $0 + ) + (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 + local.get $0 + i32.load offset=12 + local.tee $3 + i32.const 1 + i32.add + local.tee $2 + i32.const 0 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + i32.load offset=4 + local.get $3 + i32.add + local.get $1 + i32.store8 + local.get $0 + local.get $2 + i32.store offset=12 + local.get $2 + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.add + local.tee $5 + i32.load8_u + local.set $3 + local.get $5 + i32.load8_u offset=1 + local.tee $6 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.add + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.add + local.get $8 + i32.store8 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.add + i32.load8_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end end + local.get $0 + local.get $6 + i32.add + local.get $5 + i32.store8 offset=1 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end - local.tee $0 - call $~lib/util/number/utoa64_dec_lut end - local.get $0 ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i64) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) + (local $5 i32) + (local $6 i32) local.get $1 - i64.const 0 - i64.lt_s - local.tee $3 - if - local.get $0 - i32.const 45 - i32.store16 - i64.const 0 - local.get $1 - i64.sub - local.set $1 - end - local.get $1 - i64.const 10 - i64.lt_u + local.get $2 + i32.eq if - local.get $0 - local.get $3 - i32.const 1 - i32.shl - i32.add local.get $1 - i64.const 48 - i64.or - i64.store16 - local.get $3 - i32.const 1 - i32.add return end + local.get $0 local.get $1 - i64.const 4294967295 - i64.le_u + i32.add + i32.load8_u + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s if - local.get $1 - i32.wrap_i64 - local.tee $4 - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else + loop $while-continue|0 local.get $2 - i32.const 10000000 - i32.lt_u + local.get $4 + i32.gt_s if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 + local.get $0 + local.get $4 i32.add + local.tee $5 + i32.load8_u offset=1 + local.get $5 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add + i32.const 0 end - end - local.set $2 - local.get $0 - local.get $4 - local.get $2 - local.get $3 - i32.add - local.tee $0 - call $~lib/util/number/utoa32_dec_lut - else - local.get $0 - local.get $1 - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u + if + local.get $4 + i32.const 1 i32.add + local.set $4 + br $while-continue|0 end - else + end + local.get $4 + local.set $2 + loop $while-continue|1 local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) + local.get $2 + i32.lt_s + if + local.get $0 local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 + local.tee $3 + i32.load8_u + local.set $5 + local.get $3 + local.get $0 + local.get $2 i32.add + local.tee $3 + i32.load8_u + i32.store8 local.get $1 - i64.const 1000000000000000000 - i64.ge_u + i32.const 1 i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 end end - local.get $3 - i32.add - local.tee $0 - call $~lib/util/number/utoa64_dec_lut - end - local.get $0 - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 255 - i32.and - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $1 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $1 - i32.const 255 - i32.and - local.tee $2 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $1 + i32.load8_u offset=1 + local.get $1 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.set $1 - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - local.get $1 + local.get $4 ) - (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (local $6 i32) (local $7 i32) - local.get $0 - i32.load offset=4 - local.set $4 - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15044 - i32.lt_s - if - i32.const 31456 - i32.const 31504 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 - i32.const 1 - i32.sub - local.tee $3 - i32.const 0 + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 i32.lt_s if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + local.tee $8 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8752 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray + local.get $0 + local.get $8 + i32.add + i32.load8_u + i32.store8 + br $for-loop|0 end + end + loop $for-loop|1 local.get $3 - i32.eqz + local.get $6 + i32.gt_s if local.get $4 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $7 + local.get $6 + i32.sub i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 - i32.add - i32.mul - i32.const 10 - i32.add - local.tee $7 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - loop $for-loop|0 - local.get $3 + local.get $0 + local.get $6 + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 local.get $6 - i32.gt_s + i32.add + i32.load8_u + local.set $7 + local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s if local.get $0 - local.get $2 - i32.const 1 - i32.shl + local.get $1 i32.add - local.get $4 + local.get $7 + i32.store8 local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered + local.get $8 + i32.store8 local.get $2 - i32.add - local.set $2 - local.get $5 - if - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - call $~lib/memory/memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $6 i32.const 1 i32.add - local.set $6 - br $for-loop|0 + local.set $2 end - end - local.get $7 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $4 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $1 - i32.gt_s - if - local.get $0 local.get $1 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray + local.set $1 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end - local.get $0 - ) - (func $~lib/array/Array#push (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - local.get $0 - i32.load offset=12 - local.tee $3 - i32.const 1 - i32.add - local.tee $2 - i32.const 0 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - i32.load offset=4 - local.get $3 - i32.add - local.get $1 - i32.store8 - local.get $0 - local.get $2 - i32.store offset=12 - local.get $2 ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i64) + (local $13 i32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store8 + local.get $0 + i32.load8_u offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $4 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 i32.const 2 i32.shl - local.tee $3 - local.set $4 + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $4 + local.get $1 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $5 + local.set $11 + local.get $0 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill local.get $1 i32.const 1 i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 i32.const 0 - i32.gt_s + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $5 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end local.get $0 - local.get $3 + local.get $1 i32.const 1 - i32.shr_s - local.tee $7 i32.add - i32.load8_u - local.set $3 - local.get $0 - local.get $4 - i32.add - i32.load8_u - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 + local.tee $6 + local.get $8 local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 i32.lt_s if - local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store local.get $0 - local.get $4 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 i32.add - local.get $3 - i32.store8 - local.get $0 + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 local.get $7 - i32.add - local.get $6 - i32.store8 + local.get $2 + call $~lib/util/sort/insertionSort end - local.get $4 + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s - if - local.get $0 - i32.load8_u - local.set $1 - local.get $0 - local.get $0 - local.get $4 i32.add - local.tee $3 - i32.load8_u - i32.store8 - local.get $3 - local.get $1 - i32.store8 + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add i32.const 1 - local.set $1 - loop $while-continue|3 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 local.get $4 - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s + local.get $7 + i32.gt_u if - local.get $0 - i32.load8_u - local.set $3 - local.get $0 - local.get $1 - i32.add - i32.load8_u - local.set $6 + local.get $9 + local.get $4 i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 + i32.shl + i32.add i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s + local.tee $13 + i32.const -1 + i32.ne if - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u + local.get $0 + local.get $13 + local.get $10 + local.get $4 i32.const 2 i32.shl + local.tee $3 i32.add - local.tee $7 - local.get $7 i32.load i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns local.get $3 - i32.store8 - local.get $0 - local.get $6 - i32.store8 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 end - local.get $1 + local.get $4 i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 + i32.sub + local.set $4 + br $for-loop|3 end end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end local.get $4 i32.const 1 i32.sub local.set $4 - br $for-loop|2 + br $for-loop|4 end end - local.get $5 + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 call $~lib/rt/tlsf/__free - local.get $0 - i32.load8_u offset=1 - local.set $1 - local.get $0 - local.get $0 - i32.load8_u - i32.store8 offset=1 - local.get $0 - local.get $1 - i32.store8 ) (func $~lib/array/Array<~lib/string/String>#push (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9479,14 +12912,17 @@ block $invalid block $std/array/ArrayStr block $std/array/Proxy - block $std/array/Ref - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner4 $folding-inner0 $std/array/Ref $folding-inner4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $std/array/Proxy $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner3 $folding-inner3 $std/array/ArrayStr $folding-inner2 $invalid + block $std/array/Dim + block $std/array/Ref + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner4 $folding-inner0 $std/array/Ref $folding-inner4 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $std/array/Dim $folding-inner1 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner2 $folding-inner1 $folding-inner2 $std/array/Proxy $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner1 $folding-inner2 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner1 $folding-inner3 $folding-inner3 $std/array/ArrayStr $folding-inner2 $invalid + end + return end return end @@ -9552,11 +12988,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9566,31 +13002,33 @@ i32.const 0 i32.store local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - call $~lib/array/Array#sort - local.set $2 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $0 i32.store block $__inlined_func$std/array/isSorted (result i32) i32.const 1 - local.set $0 - local.get $2 + local.set $2 + local.get $0 i32.load offset=12 local.set $3 loop $for-loop|0 - local.get $0 + local.get $2 local.get $3 i32.lt_s if - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.sub call $~lib/array/Array#__get local.set $4 - local.get $2 local.get $0 + local.get $2 call $~lib/array/Array#__get local.set $5 i32.const 2 @@ -9605,10 +13043,10 @@ i32.gt_s br_if $__inlined_func$std/array/isSorted drop - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end @@ -9618,7 +13056,7 @@ if i32.const 0 i32.const 1552 - i32.const 942 + i32.const 991 i32.const 3 call $~lib/builtins/abort unreachable @@ -9635,30 +13073,230 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 8400 + i32.store + local.get $0 + i32.const 8400 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 8336 - i32.store - local.get $0 - i32.const 8336 - call $std/array/assertSorted - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.tee $4 + i64.const 0 + i64.store + local.get $4 + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + return + end + global.get $~lib/memory/__stack_pointer + local.tee $4 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $5 + i32.store + local.get $4 + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $5 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $6 + i32.load offset=4 + local.tee $7 + i32.store + local.get $5 + local.get $6 + i32.load + local.tee $5 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $5 + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.tee $5 + i32.store offset=8 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.tee $6 + i32.store + local.get $1 + local.get $5 + i32.load + local.tee $1 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $6 + local.get $1 + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $4 ) (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -9671,44 +13309,46 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - call $~lib/array/Array<~lib/array/Array>#sort - local.set $2 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $0 - local.get $2 + local.tee $2 + local.get $0 i32.store block $__inlined_func$std/array/isSorted<~lib/array/Array> (result i32) - local.get $0 + local.get $2 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store i32.const 1 - local.set $0 - local.get $2 + local.set $2 + local.get $0 i32.load offset=12 local.set $5 loop $for-loop|0 - local.get $0 + local.get $2 local.get $5 i32.lt_s if - local.get $2 local.get $0 + local.get $2 i32.const 1 i32.sub call $~lib/array/Array#__get @@ -9716,8 +13356,8 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store - local.get $2 local.get $0 + local.get $2 call $~lib/array/Array#__get local.set $4 global.get $~lib/memory/__stack_pointer @@ -9740,10 +13380,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/array/Array> end - local.get $0 + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 br $for-loop|0 end end @@ -9757,7 +13397,7 @@ if i32.const 0 i32.const 1552 - i32.const 942 + i32.const 991 i32.const 3 call $~lib/builtins/abort unreachable @@ -9768,8 +13408,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9782,11 +13422,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9797,10 +13437,10 @@ i32.const 0 i32.store local.get $1 - i32.const 9040 + i32.const 9136 i32.store local.get $0 - i32.const 9040 + i32.const 9136 call $~lib/array/Array#join global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9814,11 +13454,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9829,10 +13469,10 @@ i32.const 0 i32.store local.get $1 - i32.const 9040 + i32.const 9136 i32.store local.get $0 - i32.const 9040 + i32.const 9136 call $~lib/array/Array<~lib/string/String|null>#join global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9846,11 +13486,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9861,10 +13501,10 @@ i32.const 0 i32.store local.get $1 - i32.const 9040 + i32.const 9136 i32.store local.get $0 - i32.const 9040 + i32.const 9136 call $~lib/array/Array#join global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9878,11 +13518,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -9893,10 +13533,10 @@ i32.const 0 i32.store local.get $1 - i32.const 9040 + i32.const 9136 i32.store local.get $0 - i32.const 9040 + i32.const 9136 call $~lib/array/Array#join global.get $~lib/memory/__stack_pointer i32.const 4 @@ -9916,7 +13556,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9924,7 +13564,7 @@ i32.const 0 i32.store local.get $2 - i32.const 9040 + i32.const 9136 i32.store local.get $0 i32.load offset=4 @@ -9937,7 +13577,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -9959,7 +13599,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $0 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end @@ -9976,7 +13616,7 @@ local.get $0 call $~lib/array/Array#toString else - i32.const 8752 + i32.const 8848 end local.set $0 global.get $~lib/memory/__stack_pointer @@ -9985,12 +13625,12 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - i32.const 8752 + i32.const 8848 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 i32.store offset=4 - i32.const 9036 + i32.const 9132 i32.load i32.const 1 i32.shr_u @@ -10028,7 +13668,7 @@ if global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 9040 + i32.const 9136 call $~lib/string/String.__concat local.tee $0 i32.store offset=4 @@ -10076,8 +13716,8 @@ local.get $0 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -10092,22 +13732,20 @@ (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i64) - (local $9 i32) + (local $8 i32) + (local $9 i64) (local $10 i32) - (local $11 f32) - (local $12 f64) - (local $13 f32) - (local $14 f64) + (local $11 f64) + (local $12 f32) global.get $~lib/memory/__stack_pointer - i32.const 72 + i32.const 172 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner2 + block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -10136,10 +13774,49 @@ local.get $1 i64.const 0 i64.store offset=64 + local.get $1 + i64.const 0 + i64.store offset=72 + local.get $1 + i64.const 0 + i64.store offset=80 + local.get $1 + i64.const 0 + i64.store offset=88 + local.get $1 + i64.const 0 + i64.store offset=96 + local.get $1 + i64.const 0 + i64.store offset=104 + local.get $1 + i64.const 0 + i64.store offset=112 + local.get $1 + i64.const 0 + i64.store offset=120 + local.get $1 + i64.const 0 + i64.store offset=128 + local.get $1 + i64.const 0 + i64.store offset=136 + local.get $1 + i64.const 0 + i64.store offset=144 + local.get $1 + i64.const 0 + i64.store offset=152 + local.get $1 + i64.const 0 + i64.store offset=160 + local.get $1 + i32.const 0 + i32.store offset=168 memory.size i32.const 16 i32.shl - i32.const 31428 + i32.const 31548 i32.sub i32.const 1 i32.shr_u @@ -10183,9 +13860,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 @@ -10202,9 +13879,9 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -10235,21 +13912,21 @@ i32.const 1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 1 call $~lib/memory/memory.fill local.get $1 - local.get $2 + local.get $3 i32.store local.get $1 - local.get $2 + local.get $3 i32.const 0 call $~lib/rt/itcms/__link local.get $1 - local.get $2 + local.get $3 i32.store offset=4 local.get $1 i32.const 1 @@ -10443,22 +14120,22 @@ i32.const 1 local.get $1 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 1 i32.gt_s select local.set $0 i32.const 3 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 3 i32.gt_s select - local.set $2 + local.set $3 loop $for-loop|0 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $4 @@ -10498,7 +14175,7 @@ end local.get $1 i32.load offset=4 - local.set $2 + local.set $3 i32.const 0 local.get $1 i32.load offset=12 @@ -10513,7 +14190,7 @@ local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -10554,25 +14231,25 @@ i32.const 0 local.get $1 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 0 i32.gt_s select local.set $0 - local.get $2 + local.get $3 i32.const 3 i32.sub - local.tee $2 + local.tee $3 i32.const 0 - local.get $2 + local.get $3 i32.const 0 i32.gt_s select - local.set $2 + local.set $3 loop $for-loop|04 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $4 @@ -10615,7 +14292,7 @@ local.set $4 local.get $1 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 2 i32.sub local.tee $0 @@ -10627,7 +14304,7 @@ local.set $0 loop $for-loop|06 local.get $0 - local.get $2 + local.get $3 i32.lt_s if local.get $4 @@ -10672,22 +14349,22 @@ i32.const 1 local.get $1 i32.load offset=12 - local.tee $2 - local.get $2 + local.tee $3 + local.get $3 i32.const 1 i32.gt_s select local.set $1 i32.const 0 - local.get $2 - local.get $2 + local.get $3 + local.get $3 i32.const 0 i32.gt_s select - local.set $2 + local.set $3 loop $for-loop|08 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $4 @@ -11187,7 +14864,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $2 + local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.tee $0 @@ -11196,7 +14873,7 @@ i32.store local.get $0 local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#concat local.tee $0 i32.store offset=16 @@ -11312,11 +14989,11 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 46 call $~lib/array/Array#push drop - local.get $2 + local.get $3 i32.const 47 call $~lib/array/Array#push drop @@ -11327,7 +15004,7 @@ i32.store local.get $0 local.get $1 - local.get $2 + local.get $3 call $~lib/array/Array#concat local.tee $0 i32.store offset=16 @@ -11347,7 +15024,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=12 i32.const 2 i32.ne @@ -11457,9 +15134,9 @@ i32.const 3 i32.const 2304 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.load offset=12 if i32.const 0 @@ -11475,7 +15152,7 @@ local.tee $1 i32.store offset=8 local.get $0 - local.get $2 + local.get $3 local.get $1 call $~lib/array/Array#concat local.tee $1 @@ -11492,7 +15169,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.load offset=12 if i32.const 0 @@ -12463,10 +16140,10 @@ i32.const 3 i32.const 3488 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 2 i32.const 2147483647 call $~lib/array/Array#slice @@ -12495,7 +16172,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 2 i32.const 4 call $~lib/array/Array#slice @@ -12524,7 +16201,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 1 i32.const 5 call $~lib/array/Array#slice @@ -12553,14 +16230,14 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/array/Array#slice local.tee $1 i32.store offset=16 local.get $1 - local.get $2 + local.get $3 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12573,7 +16250,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const -2 i32.const 2147483647 call $~lib/array/Array#slice @@ -12602,7 +16279,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const 2 i32.const -1 call $~lib/array/Array#slice @@ -12631,7 +16308,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.const -3 i32.const -1 call $~lib/array/Array#slice @@ -12659,7 +16336,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const -1 i32.const -3 call $~lib/array/Array#slice @@ -12677,7 +16354,7 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 i32.const 10 i32.const 2147483647 call $~lib/array/Array#slice @@ -12697,16 +16374,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 i32.load offset=12 local.tee $1 if - local.get $2 + local.get $3 i32.load offset=4 local.set $0 - local.get $2 + local.get $3 i32.load offset=4 local.get $1 i32.const 1 @@ -12850,11 +16527,11 @@ block $__inlined_func$~lib/array/Array#indexOf local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 @@ -12866,7 +16543,7 @@ local.set $0 loop $while-continue|09 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -12908,11 +16585,11 @@ block $__inlined_func$~lib/array/Array#indexOf10 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 @@ -12924,7 +16601,7 @@ local.set $0 loop $while-continue|011 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -12968,11 +16645,11 @@ block $__inlined_func$~lib/array/Array#indexOf12 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 @@ -12984,7 +16661,7 @@ local.set $0 loop $while-continue|013 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -13028,11 +16705,11 @@ block $__inlined_func$~lib/array/Array#indexOf14 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 100 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 @@ -13044,7 +16721,7 @@ local.set $0 loop $while-continue|015 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -13086,18 +16763,18 @@ block $__inlined_func$~lib/array/Array#indexOf16 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 local.set $1 br $__inlined_func$~lib/array/Array#indexOf16 end - local.get $2 + local.get $3 i32.const 100 i32.sub local.tee $1 @@ -13112,7 +16789,7 @@ local.set $0 loop $while-continue|017 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -13154,18 +16831,18 @@ block $__inlined_func$~lib/array/Array#indexOf18 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const -2 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 local.set $1 br $__inlined_func$~lib/array/Array#indexOf18 end - local.get $2 + local.get $3 i32.const 2 i32.sub local.tee $1 @@ -13180,7 +16857,7 @@ local.set $0 loop $while-continue|019 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -13222,18 +16899,18 @@ block $__inlined_func$~lib/array/Array#indexOf20 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const -4 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 local.set $1 br $__inlined_func$~lib/array/Array#indexOf20 end - local.get $2 + local.get $3 i32.const 4 i32.sub local.tee $1 @@ -13248,7 +16925,7 @@ local.set $0 loop $while-continue|021 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -13292,11 +16969,11 @@ block $__inlined_func$~lib/array/Array#indexOf22 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 @@ -13308,7 +16985,7 @@ local.set $0 loop $while-continue|023 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -13352,11 +17029,11 @@ block $__inlined_func$~lib/array/Array#indexOf24 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 1 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 @@ -13368,7 +17045,7 @@ local.set $0 loop $while-continue|025 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -13412,11 +17089,11 @@ block $__inlined_func$~lib/array/Array#indexOf26 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 2 i32.le_s i32.const 1 - local.get $2 + local.get $3 select if i32.const -1 @@ -13428,7 +17105,7 @@ local.set $0 loop $while-continue|027 local.get $1 - local.get $2 + local.get $3 i32.lt_s if local.get $0 @@ -13468,16 +17145,16 @@ i32.const 9 i32.const 3744 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store i32.const 0 local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $3 i32.load offset=12 local.tee $4 i32.const 0 @@ -13486,15 +17163,15 @@ local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|02528 local.get $1 local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $1 local.tee $0 i32.const 2 @@ -13530,16 +17207,16 @@ i32.const 10 i32.const 3776 call $~lib/rt/__newArray - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store i32.const 0 local.set $1 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $3 i32.load offset=12 local.tee $4 i32.const 0 @@ -13548,15 +17225,15 @@ local.get $4 select br_if $__inlined_func$~lib/array/Array#indexOf - local.get $2 + local.get $3 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|026 local.get $1 local.get $4 i32.lt_s if - local.get $2 + local.get $3 local.get $1 local.tee $0 i32.const 3 @@ -13599,7 +17276,7 @@ global.set $~argumentsLength local.get $1 i32.load offset=12 - local.set $2 + local.set $3 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf @@ -13608,32 +17285,32 @@ local.tee $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf - local.get $2 + local.get $3 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $3 + local.get $3 local.get $4 i32.ge_s select - local.get $2 + local.get $3 i32.const 0 i32.lt_s select - local.set $2 + local.set $3 local.get $1 i32.load offset=4 local.set $4 loop $while-continue|01 - local.get $2 + local.get $3 i32.const 0 i32.ge_s if local.get $4 - local.get $2 + local.get $3 local.tee $0 i32.const 2 i32.shl @@ -13645,7 +17322,7 @@ local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $3 br $while-continue|01 end end @@ -13667,7 +17344,7 @@ global.set $~argumentsLength local.get $1 i32.load offset=12 - local.set $2 + local.set $3 i32.const -1 local.set $0 block $__inlined_func$~lib/array/Array#lastIndexOf6 @@ -13676,32 +17353,32 @@ local.tee $4 i32.eqz br_if $__inlined_func$~lib/array/Array#lastIndexOf6 - local.get $2 + local.get $3 local.get $4 i32.add local.get $4 i32.const 1 i32.sub - local.get $2 - local.get $2 + local.get $3 + local.get $3 local.get $4 i32.ge_s select - local.get $2 + local.get $3 i32.const 0 i32.lt_s select - local.set $2 + local.set $3 local.get $1 i32.load offset=4 local.set $4 loop $while-continue|07 - local.get $2 + local.get $3 i32.const 0 i32.ge_s if local.get $4 - local.get $2 + local.get $3 local.tee $0 i32.const 2 i32.shl @@ -13713,7 +17390,7 @@ local.get $0 i32.const 1 i32.sub - local.set $2 + local.set $3 br $while-continue|07 end end @@ -13752,13 +17429,13 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|029 local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -13809,13 +17486,13 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|031 local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -13859,13 +17536,13 @@ local.set $0 local.get $1 i32.load offset=4 - local.set $2 + local.set $3 loop $while-continue|033 local.get $0 i32.const 0 i32.ge_s if - local.get $2 + local.get $3 local.get $0 i32.const 2 i32.shl @@ -13951,7 +17628,7 @@ local.tee $1 i32.store i32.const 0 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#indexOf9 local.get $1 i32.load offset=12 @@ -13963,7 +17640,7 @@ select if i32.const -1 - local.set $2 + local.set $3 br $__inlined_func$~lib/array/Array#indexOf9 end local.get $1 @@ -13971,11 +17648,11 @@ local.set $1 loop $while-continue|010 local.get $0 - local.get $2 + local.get $3 i32.gt_s if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add @@ -13983,17 +17660,17 @@ i32.const 44 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf9 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $while-continue|010 end end i32.const -1 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.lt_s if @@ -14009,7 +17686,7 @@ local.tee $1 i32.store i32.const 0 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#indexOf13 local.get $1 i32.load offset=12 @@ -14021,7 +17698,7 @@ select if i32.const -1 - local.set $2 + local.set $3 br $__inlined_func$~lib/array/Array#indexOf13 end local.get $1 @@ -14029,11 +17706,11 @@ local.set $1 loop $while-continue|014 local.get $0 - local.get $2 + local.get $3 i32.gt_s if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add @@ -14041,17 +17718,17 @@ i32.const 42 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf13 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $while-continue|014 end end i32.const -1 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.lt_s if @@ -14067,7 +17744,7 @@ local.tee $1 i32.store i32.const 0 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#indexOf17 local.get $1 i32.load offset=12 @@ -14079,7 +17756,7 @@ select if i32.const -1 - local.set $2 + local.set $3 br $__inlined_func$~lib/array/Array#indexOf17 end local.get $1 @@ -14087,11 +17764,11 @@ local.set $1 loop $while-continue|018 local.get $0 - local.get $2 + local.get $3 i32.gt_s if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add @@ -14099,17 +17776,17 @@ i32.const 45 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf17 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $while-continue|018 end end i32.const -1 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ge_s if @@ -14125,7 +17802,7 @@ local.tee $1 i32.store i32.const 100 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#indexOf21 local.get $1 i32.load offset=12 @@ -14137,7 +17814,7 @@ select if i32.const -1 - local.set $2 + local.set $3 br $__inlined_func$~lib/array/Array#indexOf21 end local.get $1 @@ -14145,11 +17822,11 @@ local.set $1 loop $while-continue|022 local.get $0 - local.get $2 + local.get $3 i32.gt_s if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add @@ -14157,17 +17834,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf21 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $while-continue|022 end end i32.const -1 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.ge_s if @@ -14180,38 +17857,38 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $3 i32.store block $__inlined_func$~lib/array/Array#indexOf25 - local.get $1 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const -100 i32.le_s i32.const 1 - local.get $2 + local.get $4 select if i32.const -1 local.set $0 br $__inlined_func$~lib/array/Array#indexOf25 end - local.get $2 + local.get $4 i32.const 100 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select local.set $0 - local.get $1 + local.get $3 i32.load offset=4 local.set $1 loop $while-continue|028 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $1 @@ -14246,38 +17923,38 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $3 i32.store block $__inlined_func$~lib/array/Array#indexOf30 - local.get $1 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const -2 i32.le_s i32.const 1 - local.get $2 + local.get $4 select if i32.const -1 local.set $0 br $__inlined_func$~lib/array/Array#indexOf30 end - local.get $2 + local.get $4 i32.const 2 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select local.set $0 - local.get $1 + local.get $3 i32.load offset=4 local.set $1 loop $while-continue|032 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $1 @@ -14312,38 +17989,38 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $3 i32.store block $__inlined_func$~lib/array/Array#indexOf34 - local.get $1 + local.get $3 i32.load offset=12 - local.tee $2 + local.tee $4 i32.const -4 i32.le_s i32.const 1 - local.get $2 + local.get $4 select if i32.const -1 local.set $0 br $__inlined_func$~lib/array/Array#indexOf34 end - local.get $2 + local.get $4 i32.const 4 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select local.set $0 - local.get $1 + local.get $3 i32.load offset=4 local.set $1 loop $while-continue|036 local.get $0 - local.get $2 + local.get $4 i32.lt_s if local.get $1 @@ -14381,7 +18058,7 @@ local.tee $1 i32.store i32.const 0 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#indexOf38 local.get $1 i32.load offset=12 @@ -14393,7 +18070,7 @@ select if i32.const -1 - local.set $2 + local.set $3 br $__inlined_func$~lib/array/Array#indexOf38 end local.get $1 @@ -14401,11 +18078,11 @@ local.set $1 loop $while-continue|039 local.get $0 - local.get $2 + local.get $3 i32.gt_s if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add @@ -14413,17 +18090,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf38 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $while-continue|039 end end i32.const -1 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.lt_s if @@ -14439,7 +18116,7 @@ local.tee $1 i32.store i32.const 1 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#indexOf41 local.get $1 i32.load offset=12 @@ -14451,7 +18128,7 @@ select if i32.const -1 - local.set $2 + local.set $3 br $__inlined_func$~lib/array/Array#indexOf41 end local.get $1 @@ -14459,11 +18136,11 @@ local.set $1 loop $while-continue|042 local.get $0 - local.get $2 + local.get $3 i32.gt_s if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add @@ -14471,17 +18148,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf41 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $while-continue|042 end end i32.const -1 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.lt_s if @@ -14497,7 +18174,7 @@ local.tee $1 i32.store i32.const 2 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#indexOf44 local.get $1 i32.load offset=12 @@ -14509,7 +18186,7 @@ select if i32.const -1 - local.set $2 + local.set $3 br $__inlined_func$~lib/array/Array#indexOf44 end local.get $1 @@ -14517,11 +18194,11 @@ local.set $1 loop $while-continue|045 local.get $0 - local.get $2 + local.get $3 i32.gt_s if local.get $1 - local.get $2 + local.get $3 i32.const 2 i32.shl i32.add @@ -14529,17 +18206,17 @@ i32.const 43 i32.eq br_if $__inlined_func$~lib/array/Array#indexOf44 - local.get $2 + local.get $3 i32.const 1 i32.add - local.set $2 + local.set $3 br $while-continue|045 end end i32.const -1 - local.set $2 + local.set $3 end - local.get $2 + local.get $3 i32.const 0 i32.lt_s if @@ -14565,11 +18242,11 @@ i32.const 0 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $__inlined_func$~lib/array/Array#includes drop @@ -14578,7 +18255,7 @@ local.set $0 loop $while-continue|02736 local.get $1 - local.get $2 + local.get $3 i32.lt_s if i32.const 1 @@ -14589,10 +18266,10 @@ i32.shl i32.add f32.load - local.tee $11 - local.get $11 + local.tee $12 + local.get $12 f32.ne - local.get $11 + local.get $12 f32.const nan:0x400000 f32.eq select @@ -14631,11 +18308,11 @@ i32.const 0 local.get $0 i32.load offset=12 - local.tee $2 + local.tee $3 i32.const 0 i32.le_s i32.const 1 - local.get $2 + local.get $3 select br_if $__inlined_func$~lib/array/Array#includes drop @@ -14644,7 +18321,7 @@ local.set $0 loop $while-continue|02846 local.get $1 - local.get $2 + local.get $3 i32.lt_s if i32.const 1 @@ -14655,10 +18332,10 @@ i32.shl i32.add f64.load - local.tee $12 - local.get $12 + local.tee $11 + local.get $11 f64.ne - local.get $12 + local.get $11 f64.const nan:0x8000000000000 f64.eq select @@ -14763,9 +18440,9 @@ i32.const 3 i32.const 3920 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 2147483647 call $~lib/array/Array#splice @@ -14804,7 +18481,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -14823,9 +18500,9 @@ i32.const 3 i32.const 4048 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 0 call $~lib/array/Array#splice @@ -14864,7 +18541,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -14883,9 +18560,9 @@ i32.const 3 i32.const 4176 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice @@ -14924,7 +18601,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -14943,9 +18620,9 @@ i32.const 3 i32.const 4288 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 2 i32.const 2 call $~lib/array/Array#splice @@ -14984,7 +18661,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15003,9 +18680,9 @@ i32.const 3 i32.const 4400 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 0 i32.const 1 call $~lib/array/Array#splice @@ -15044,7 +18721,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15063,9 +18740,9 @@ i32.const 3 i32.const 4528 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice @@ -15104,7 +18781,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15123,9 +18800,9 @@ i32.const 3 i32.const 4656 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice @@ -15164,7 +18841,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15183,9 +18860,9 @@ i32.const 3 i32.const 4768 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const -2 i32.const 1 call $~lib/array/Array#splice @@ -15224,7 +18901,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15243,9 +18920,9 @@ i32.const 3 i32.const 4896 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const -7 i32.const 1 call $~lib/array/Array#splice @@ -15284,7 +18961,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15303,9 +18980,9 @@ i32.const 3 i32.const 5024 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const -2 i32.const -1 call $~lib/array/Array#splice @@ -15344,7 +19021,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15363,9 +19040,9 @@ i32.const 3 i32.const 5152 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 1 i32.const -2 call $~lib/array/Array#splice @@ -15404,7 +19081,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15423,9 +19100,9 @@ i32.const 3 i32.const 5280 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 4 i32.const 0 call $~lib/array/Array#splice @@ -15464,7 +19141,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15483,9 +19160,9 @@ i32.const 3 i32.const 5408 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 7 i32.const 0 call $~lib/array/Array#splice @@ -15524,7 +19201,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15543,9 +19220,9 @@ i32.const 3 i32.const 5536 call $~lib/rt/__newArray - local.tee $2 + local.tee $3 i32.store offset=4 - local.get $2 + local.get $3 i32.const 7 i32.const 5 call $~lib/array/Array#splice @@ -15584,7 +19261,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -15773,74 +19450,74 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 3 i32.const 2 i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=4 i32.store offset=20 - local.get $1 + local.get $2 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $1 + local.get $2 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $1 + local.get $2 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $0 local.get $1 + local.get $2 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store i32.const 0 - local.get $1 + local.get $2 i32.load offset=12 - local.tee $9 - local.get $9 + local.tee $8 + local.get $8 i32.const 0 i32.gt_s select - local.set $5 - local.get $0 + local.set $4 + local.get $1 i32.const 1 - local.get $9 - local.get $5 + local.get $8 + local.get $4 i32.sub - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 1 i32.gt_s select - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.tee $3 + local.tee $5 i32.const 2 i32.const 11 i32.const 0 @@ -15849,48 +19526,48 @@ i32.store local.get $7 i32.load offset=4 - local.get $1 + local.get $2 i32.load offset=4 - local.tee $2 - local.get $5 + local.tee $0 + local.get $4 i32.const 2 i32.shl i32.add - local.tee $0 - local.get $3 + local.tee $1 + local.get $5 i32.const 2 i32.shl call $~lib/memory/memory.copy - local.get $9 - local.get $3 + local.get $8 + local.get $4 local.get $5 i32.add - local.tee $5 + local.tee $4 i32.ne if + local.get $1 local.get $0 - local.get $2 - local.get $5 + local.get $4 i32.const 2 i32.shl i32.add - local.get $9 - local.get $5 + local.get $8 + local.get $4 i32.sub i32.const 2 i32.shl call $~lib/memory/memory.copy end - local.get $1 - local.get $9 - local.get $3 + local.get $2 + local.get $8 + local.get $5 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 + local.get $3 local.get $7 i32.store offset=24 local.get $7 @@ -15909,9 +19586,9 @@ local.get $7 i32.const 0 call $~lib/array/Array#__get - local.tee $0 + local.tee $1 i32.store offset=28 - local.get $0 + local.get $1 i32.eqz if i32.const 5824 @@ -15921,7 +19598,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load i32.const 1 i32.ne @@ -15933,7 +19610,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.load offset=12 i32.const 2 i32.ne @@ -15945,7 +19622,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get if @@ -15957,7 +19634,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get local.tee $1 @@ -16028,16 +19705,16 @@ local.set $1 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#findIndex loop $for-loop|037 local.get $1 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -16090,16 +19767,16 @@ local.set $1 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#findIndex38 loop $for-loop|039 local.get $1 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -16154,16 +19831,16 @@ local.set $1 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#findIndex40 loop $for-loop|041 local.get $1 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -16218,16 +19895,16 @@ local.set $1 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#findIndex42 loop $for-loop|043 local.get $1 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -16298,16 +19975,16 @@ local.set $1 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#findIndex44 loop $for-loop|045 local.get $1 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -16390,16 +20067,16 @@ local.set $1 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 block $__inlined_func$~lib/array/Array#findIndex46 loop $for-loop|047 local.get $1 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $0 local.get $0 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -17270,15 +20947,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|066 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -17329,15 +21006,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|068 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -17404,15 +21081,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|070 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -17491,15 +21168,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|072 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -17580,15 +21257,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|074 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -17684,48 +21361,48 @@ call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $5 global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store - local.get $1 + local.get $5 i32.const 6560 i32.store offset=8 i32.const 0 local.set $6 - local.get $1 + local.get $5 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 - local.get $7 + local.get $1 + local.get $8 i32.load offset=12 - local.tee $5 + local.tee $4 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $3 + local.tee $7 i32.store - local.get $3 + local.get $7 i32.load offset=4 - local.set $4 + local.set $3 loop $for-loop|04577 local.get $6 - local.get $5 - local.get $7 + local.get $4 + local.get $8 i32.load offset=12 - local.tee $0 - local.get $0 - local.get $5 + local.tee $1 + local.get $1 + local.get $4 i32.gt_s select i32.lt_s @@ -17733,20 +21410,20 @@ local.get $6 i32.const 2 i32.shl - local.tee $2 - local.get $7 + local.tee $0 + local.get $8 i32.load offset=4 i32.add i32.load - local.set $0 + local.set $1 i32.const 3 global.set $~argumentsLength - local.get $2 - local.get $4 - i32.add local.get $0 + local.get $3 + i32.add + local.get $1 local.get $6 - local.get $7 + local.get $8 i32.const 6560 i32.load call_indirect $0 (type $i32_i32_i32_=>_f32) @@ -17762,10 +21439,10 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $5 + local.get $7 i32.store offset=24 - local.get $3 + local.get $7 i32.load offset=12 i32.const 4 i32.ne @@ -17777,7 +21454,7 @@ call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 i32.const 0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer @@ -18136,15 +21813,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|078 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -18201,15 +21878,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|080 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -18266,15 +21943,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|082 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -18328,15 +22005,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|084 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -18389,15 +22066,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|086 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -18470,15 +22147,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|088 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -18563,15 +22240,15 @@ local.set $0 local.get $4 i32.load offset=12 - local.set $2 + local.set $3 loop $for-loop|090 local.get $0 - local.get $2 + local.get $3 local.get $4 i32.load offset=12 local.tee $1 local.get $1 - local.get $2 + local.get $3 i32.gt_s select i32.lt_s @@ -18649,14 +22326,14 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store local.get $1 i32.const 7040 i32.store offset=8 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.load offset=12 i32.const 1 i32.sub @@ -18666,7 +22343,7 @@ i32.const 0 i32.ge_s if - local.get $2 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -18679,7 +22356,7 @@ local.get $6 local.get $1 local.get $0 - local.get $2 + local.get $3 i32.const 7040 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -18707,14 +22384,14 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store local.get $1 i32.const 7072 i32.store offset=8 i32.const 4 local.set $6 - local.get $2 + local.get $3 i32.load offset=12 i32.const 1 i32.sub @@ -18724,7 +22401,7 @@ i32.const 0 i32.ge_s if - local.get $2 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -18737,7 +22414,7 @@ local.get $6 local.get $1 local.get $0 - local.get $2 + local.get $3 i32.const 7072 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -18765,14 +22442,14 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store local.get $1 i32.const 7104 i32.store offset=8 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.load offset=12 i32.const 1 i32.sub @@ -18782,7 +22459,7 @@ i32.const 0 i32.ge_s if - local.get $2 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -18795,7 +22472,7 @@ local.get $6 local.get $1 local.get $0 - local.get $2 + local.get $3 i32.const 7104 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -18820,14 +22497,14 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store local.get $1 i32.const 7136 i32.store offset=8 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.load offset=12 i32.const 1 i32.sub @@ -18837,7 +22514,7 @@ i32.const 0 i32.ge_s if - local.get $2 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -18850,7 +22527,7 @@ local.get $6 local.get $1 local.get $0 - local.get $2 + local.get $3 i32.const 7136 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -18874,14 +22551,14 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store local.get $1 i32.const 7168 i32.store offset=8 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.load offset=12 i32.const 1 i32.sub @@ -18891,7 +22568,7 @@ i32.const 0 i32.ge_s if - local.get $2 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -18904,7 +22581,7 @@ local.get $6 local.get $1 local.get $0 - local.get $2 + local.get $3 i32.const 7168 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -18948,14 +22625,14 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store local.get $1 i32.const 7200 i32.store offset=8 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.load offset=12 i32.const 1 i32.sub @@ -18965,7 +22642,7 @@ i32.const 0 i32.ge_s if - local.get $2 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -18978,7 +22655,7 @@ local.get $6 local.get $1 local.get $0 - local.get $2 + local.get $3 i32.const 7200 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -19034,14 +22711,14 @@ global.get $~lib/memory/__stack_pointer local.tee $1 global.get $std/array/arr - local.tee $2 + local.tee $3 i32.store local.get $1 i32.const 7232 i32.store offset=8 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.load offset=12 i32.const 1 i32.sub @@ -19051,7 +22728,7 @@ i32.const 0 i32.ge_s if - local.get $2 + local.get $3 i32.load offset=4 local.get $0 i32.const 2 @@ -19064,7 +22741,7 @@ local.get $6 local.get $1 local.get $0 - local.get $2 + local.get $3 i32.const 7232 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) @@ -19104,453 +22781,515 @@ unreachable end global.get $~lib/memory/__stack_pointer - global.get $std/array/arr + global.get $std/array/arr + local.tee $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + local.get $1 + i32.const 1 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + local.get $1 + i32.const 2 + call $~lib/array/Array#push + drop + global.get $~lib/memory/__stack_pointer + global.get $std/array/arr + local.tee $1 + i32.store + local.get $1 + i32.const 3 + call $~lib/array/Array#push + drop + call $~lib/bindings/Math/random + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + i32.const 19 + i32.const 0 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.load offset=4 + i32.store offset=20 + local.get $1 + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=12 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 80 + i32.store offset=4 + local.get $0 + i32.const 0 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=16 + local.get $1 + i32.const 90 + i32.store + local.get $1 + i32.const 90 + i32.store offset=4 + local.get $0 + i32.const 1 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 95 + i32.store offset=4 + local.get $0 + i32.const 2 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=28 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 100 + i32.store offset=4 + local.get $0 + i32.const 3 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=32 + local.get $1 + i32.const 80 + i32.store + local.get $1 + i32.const 110 + i32.store offset=4 + local.get $0 + i32.const 4 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor local.tee $1 + i32.store offset=36 + local.get $1 + i32.const 110 i32.store local.get $1 - i32.const 0 - call $~lib/array/Array#push - drop + i32.const 115 + i32.store offset=4 + local.get $0 + i32.const 5 + local.get $1 + call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer - global.get $std/array/arr + call $std/array/Dim#constructor local.tee $1 + i32.store offset=40 + local.get $1 + i32.const 100 i32.store local.get $1 - i32.const 1 - call $~lib/array/Array#push - drop + i32.const 120 + i32.store offset=4 + local.get $0 + i32.const 6 + local.get $1 + call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer - global.get $std/array/arr + call $std/array/Dim#constructor local.tee $1 + i32.store offset=44 + local.get $1 + i32.const 70 i32.store local.get $1 - i32.const 2 - call $~lib/array/Array#push - drop + i32.const 125 + i32.store offset=4 + local.get $0 + i32.const 7 + local.get $1 + call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer - global.get $std/array/arr + call $std/array/Dim#constructor local.tee $1 + i32.store offset=48 + local.get $1 + i32.const 70 i32.store local.get $1 - i32.const 3 - call $~lib/array/Array#push - drop - call $~lib/bindings/Math/random - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom - global.get $~lib/memory/__stack_pointer + i32.const 130 + i32.store offset=4 + local.get $0 i32.const 8 - i32.const 2 - i32.const 9 - i32.const 7504 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=20 - i32.const 0 - global.set $~argumentsLength - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15044 - i32.lt_s - br_if $folding-inner2 + local.get $1 + call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer - i32.const 0 + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=52 + local.get $1 + i32.const 100 i32.store - block $1of148 - block $0of149 - block $outOfRange50 - global.get $~argumentsLength - br_table $0of149 $1of148 $outOfRange50 - end - unreachable - end - i32.const 7568 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 7568 - i32.store - end - i32.const 0 - local.set $7 - block $__inlined_func$~lib/array/Array#sort - local.get $0 - local.tee $4 - i32.load offset=12 - local.tee $5 - i32.const 1 - i32.le_s - br_if $__inlined_func$~lib/array/Array#sort - local.get $4 - i32.load offset=4 - local.set $3 - local.get $5 - i32.const 2 - i32.eq - if - local.get $3 - f32.load offset=4 - local.set $13 - local.get $3 - f32.load - local.set $11 - i32.const 2 - global.set $~argumentsLength - local.get $13 - local.get $11 - local.get $1 - i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $11 - f32.store offset=4 - local.get $3 - local.get $13 - f32.store - end - br $__inlined_func$~lib/array/Array#sort - end - local.get $5 - i32.const 256 - i32.lt_s - if - local.get $1 - local.set $2 - loop $for-loop|0105 - local.get $5 - local.get $7 - i32.gt_s - if - local.get $3 - local.get $7 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $13 - local.get $7 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - i32.const 2 - global.set $~argumentsLength - local.get $13 - local.get $11 - local.get $2 - i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $3 - local.get $0 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $11 - f32.store - br $while-continue|1 - end - end - end - local.get $3 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $13 - f32.store - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0105 - end - end - else - local.get $3 - local.get $5 - local.get $1 - call $~lib/util/sort/weakHeapSort - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 8 - i32.const 2 + local.get $1 + i32.const 135 + i32.store offset=4 + local.get $0 i32.const 9 - i32.const 7600 - call $~lib/rt/__newArray - local.set $5 + local.get $1 + call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - block $__inlined_func$std/array/isArraysEqual (result i32) - i32.const 0 - local.set $1 - i32.const 0 - local.get $4 - i32.load offset=12 - local.tee $0 - local.get $5 - i32.load offset=12 - i32.ne - br_if $__inlined_func$std/array/isArraysEqual - drop - i32.const 1 - local.get $4 - local.get $5 - i32.eq - br_if $__inlined_func$std/array/isArraysEqual - drop - loop $for-loop|026 - local.get $0 - local.get $1 - i32.gt_s - if - local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.tee $11 - local.get $11 - f32.ne - if (result i32) - local.get $5 - local.get $1 - call $~lib/array/Array#__get - local.tee $11 - local.get $11 - f32.ne - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - local.get $4 - local.get $1 - call $~lib/array/Array#__get - local.get $5 - local.get $1 - call $~lib/array/Array#__get - f32.ne - br_if $__inlined_func$std/array/isArraysEqual - drop - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|026 - end - end - i32.const 1 - end - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 953 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=56 + local.get $1 + i32.const 75 + i32.store + local.get $1 + i32.const 140 + i32.store offset=4 + local.get $0 + i32.const 10 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=60 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 140 + i32.store offset=4 + local.get $0 + i32.const 11 + local.get $1 + call $~lib/array/Array#__uset + local.get $0 + global.set $std/array/inputStabArr global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 3 - i32.const 10 - i32.const 7664 + i32.const 12 + i32.const 2 + i32.const 19 + i32.const 0 call $~lib/rt/__newArray local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.tee $1 + local.get $0 + i32.load offset=4 i32.store offset=24 + local.get $1 + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=64 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 95 + i32.store offset=4 + local.get $0 i32.const 0 - global.set $~argumentsLength - i32.const 0 - local.set $1 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=68 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 125 + i32.store offset=4 + local.get $0 + i32.const 1 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=72 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 130 + i32.store offset=4 + local.get $0 + i32.const 2 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=76 + local.get $1 + i32.const 70 + i32.store + local.get $1 + i32.const 140 + i32.store offset=4 + local.get $0 + i32.const 3 + local.get $1 + call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=80 + local.get $1 + i32.const 75 + i32.store + local.get $1 + i32.const 140 + i32.store offset=4 + local.get $0 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer - i32.const 15044 - i32.lt_s - br_if $folding-inner2 + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=84 + local.get $1 + i32.const 80 + i32.store + local.get $1 + i32.const 110 + i32.store offset=4 + local.get $0 + i32.const 5 + local.get $1 + call $~lib/array/Array#__uset global.get $~lib/memory/__stack_pointer - i32.const 0 + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=88 + local.get $1 + i32.const 90 i32.store - block $1of156 - block $0of157 - block $outOfRange58 - global.get $~argumentsLength - br_table $0of157 $1of156 $outOfRange58 - end - unreachable - end - i32.const 7760 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 7760 - i32.store - end + local.get $1 + i32.const 90 + i32.store offset=4 + local.get $0 + i32.const 6 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=92 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 80 + i32.store offset=4 + local.get $0 + i32.const 7 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=96 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 100 + i32.store offset=4 + local.get $0 + i32.const 8 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=100 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 120 + i32.store offset=4 + local.get $0 + i32.const 9 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=104 + local.get $1 + i32.const 100 + i32.store + local.get $1 + i32.const 135 + i32.store offset=4 + local.get $0 + i32.const 10 + local.get $1 + call $~lib/array/Array#__uset + global.get $~lib/memory/__stack_pointer + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=108 + local.get $1 + i32.const 110 + i32.store + local.get $1 + i32.const 115 + i32.store offset=4 + local.get $0 + i32.const 11 + local.get $1 + call $~lib/array/Array#__uset + local.get $0 + global.set $std/array/outputStabArr + global.get $~lib/memory/__stack_pointer + i32.const 3 + i32.const 2 + i32.const 9 + i32.const 7504 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=20 i32.const 0 - local.set $7 - block $__inlined_func$~lib/array/Array#sort - local.get $0 - local.tee $4 - i32.load offset=12 - local.tee $5 - i32.const 1 - i32.le_s - br_if $__inlined_func$~lib/array/Array#sort - local.get $4 - i32.load offset=4 - local.set $3 - local.get $5 - i32.const 2 - i32.eq - if - local.get $3 - f64.load offset=8 - local.set $14 - local.get $3 - f64.load - local.set $12 - i32.const 2 - global.set $~argumentsLength - local.get $14 - local.get $12 - local.get $1 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $12 - f64.store offset=8 - local.get $3 - local.get $14 - f64.store - end - br $__inlined_func$~lib/array/Array#sort - end - local.get $5 - i32.const 256 - i32.lt_s - if - local.get $1 - local.set $2 - loop $for-loop|0107 - local.get $5 - local.get $7 - i32.gt_s - if - local.get $3 - local.get $7 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $14 - local.get $7 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1108 - local.get $1 - i32.const 0 - i32.ge_s - if - block $while-break|1109 - local.get $3 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $12 - i32.const 2 - global.set $~argumentsLength - local.get $14 - local.get $12 - local.get $2 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1109 - local.get $1 - local.tee $0 - i32.const 1 - i32.sub - local.set $1 - local.get $3 - local.get $0 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $12 - f64.store - br $while-continue|1108 - end - end - end - local.get $3 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $14 - f64.store - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0107 - end + global.set $~argumentsLength + local.get $0 + call $~lib/array/Array#sort@varargs + i32.const 3 + i32.const 2 + i32.const 9 + i32.const 7568 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1002 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 2 + i32.const 9 + i32.const 7600 + call $~lib/rt/__newArray + local.tee $0 + i32.store offset=24 + i32.const 0 + global.set $~argumentsLength + local.get $0 + call $~lib/array/Array#sort@varargs + i32.const 8 + i32.const 2 + i32.const 9 + i32.const 7664 + call $~lib/rt/__newArray + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1006 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 3 + i32.const 10 + i32.const 7728 + call $~lib/rt/__newArray + local.tee $5 + i32.store offset=112 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of148 + block $0of149 + block $outOfRange50 + global.get $~argumentsLength + br_table $0of149 $1of148 $outOfRange50 end - else - local.get $3 - local.get $5 - local.get $1 - call $~lib/util/sort/weakHeapSort + unreachable end + i32.const 7824 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 7824 + i32.store end + local.get $5 + i32.load offset=4 + local.get $5 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -19558,20 +23297,20 @@ i32.const 8 i32.const 3 i32.const 10 - i32.const 7792 + i32.const 7856 call $~lib/rt/__newArray - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store offset=8 block $__inlined_func$std/array/isArraysEqual (result i32) i32.const 0 local.set $1 i32.const 0 - local.get $4 + local.get $5 i32.load offset=12 local.tee $0 - local.get $5 + local.get $4 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual @@ -19582,23 +23321,23 @@ i32.eq br_if $__inlined_func$std/array/isArraysEqual drop - loop $for-loop|029 + loop $for-loop|026 local.get $0 local.get $1 i32.gt_s if - local.get $4 + local.get $5 local.get $1 call $~lib/array/Array#__get - local.tee $12 - local.get $12 + local.tee $11 + local.get $11 f64.ne if (result i32) - local.get $5 + local.get $4 local.get $1 call $~lib/array/Array#__get - local.tee $12 - local.get $12 + local.tee $11 + local.get $11 f64.ne else i32.const 0 @@ -19606,10 +23345,10 @@ i32.eqz if i32.const 0 - local.get $4 + local.get $5 local.get $1 call $~lib/array/Array#__get - local.get $5 + local.get $4 local.get $1 call $~lib/array/Array#__get f64.ne @@ -19620,7 +23359,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|029 + br $for-loop|026 end end i32.const 1 @@ -19629,7 +23368,7 @@ if i32.const 0 i32.const 1552 - i32.const 957 + i32.const 1010 i32.const 3 call $~lib/builtins/abort unreachable @@ -19638,10 +23377,10 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 7888 + i32.const 7952 call $~lib/rt/__newArray local.tee $0 - i32.store offset=12 + i32.store offset=116 i32.const 0 global.set $~argumentsLength i32.const 0 @@ -19651,30 +23390,32 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of159 - block $0of160 - block $outOfRange61 + block $1of1102 + block $0of1103 + block $outOfRange104 global.get $~argumentsLength - br_table $0of160 $1of159 $outOfRange61 + br_table $0of1103 $1of1102 $outOfRange104 end unreachable end - i32.const 7936 + i32.const 8000 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 7936 + i32.const 8000 i32.store end local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - call $~lib/array/Array#sort - drop + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -19682,7 +23423,7 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 7968 + i32.const 8032 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -19696,7 +23437,7 @@ if i32.const 0 i32.const 1552 - i32.const 961 + i32.const 1014 i32.const 3 call $~lib/builtins/abort unreachable @@ -19705,10 +23446,10 @@ i32.const 5 i32.const 2 i32.const 7 - i32.const 8016 + i32.const 8080 call $~lib/rt/__newArray local.tee $0 - i32.store offset=16 + i32.store offset=120 i32.const 0 global.set $~argumentsLength local.get $0 @@ -19718,7 +23459,7 @@ i32.const 5 i32.const 2 i32.const 7 - i32.const 8096 + i32.const 8160 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer @@ -19731,7 +23472,7 @@ if i32.const 0 i32.const 1552 - i32.const 965 + i32.const 1018 i32.const 3 call $~lib/builtins/abort unreachable @@ -19740,81 +23481,81 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 8144 + i32.const 8208 call $~lib/rt/__newArray local.tee $0 - i32.store offset=4 + i32.store offset=124 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 3 - i32.const 8176 + i32.const 8240 call $~lib/rt/__newArray - local.tee $10 - i32.store offset=32 + local.tee $6 + i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 3 - i32.const 8208 + i32.const 8272 call $~lib/rt/__newArray - local.tee $9 - i32.store offset=36 + local.tee $2 + i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 3 - i32.const 8240 + i32.const 8304 call $~lib/rt/__newArray - local.tee $7 - i32.store offset=40 + local.tee $8 + i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 3 - i32.const 8288 + i32.const 8352 call $~lib/rt/__newArray - local.tee $6 - i32.store offset=44 + local.tee $10 + i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $3 - i32.store offset=28 + local.tee $7 + i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray local.tee $5 - i32.store offset=48 + i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray local.tee $4 - i32.store offset=52 + i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $2 - i32.store offset=56 + local.tee $3 + i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray local.tee $1 - i32.store offset=60 + i32.store offset=160 local.get $0 call $std/array/assertSortedDefault - local.get $10 + local.get $6 call $std/array/assertSortedDefault i32.const 1 i32.const 2 i32.const 3 - i32.const 8368 + i32.const 8432 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $10 + local.get $6 local.get $0 i32.const 0 call $std/array/isArraysEqual @@ -19822,23 +23563,23 @@ if i32.const 0 i32.const 1552 - i32.const 985 + i32.const 1038 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $9 + local.get $2 call $std/array/assertSortedDefault i32.const 2 i32.const 2 i32.const 3 - i32.const 8400 + i32.const 8464 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $9 + local.get $2 local.get $0 i32.const 0 call $std/array/isArraysEqual @@ -19846,37 +23587,37 @@ if i32.const 0 i32.const 1552 - i32.const 988 + i32.const 1041 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $7 + local.get $8 call $std/array/assertSortedDefault - local.get $7 - local.get $6 + local.get $8 + local.get $10 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 991 + i32.const 1044 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $3 + local.get $7 call $std/array/assertSortedDefault - local.get $3 - local.get $6 + local.get $7 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 994 + i32.const 1047 i32.const 3 call $~lib/builtins/abort unreachable @@ -19884,95 +23625,291 @@ local.get $5 call $std/array/assertSortedDefault local.get $5 - local.get $6 + local.get $10 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1050 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $4 + call $std/array/assertSortedDefault + local.get $4 + local.get $10 + i32.const 4 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1053 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $3 + call $std/array/assertSortedDefault + local.get $3 + local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 997 + i32.const 1056 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $4 - call $std/array/assertSortedDefault - local.get $4 - local.get $6 + local.get $1 + call $std/array/assertSortedDefault + i32.const 0 + local.set $6 + i32.const 0 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $7 + i64.const 0 + i64.store + local.get $7 + i64.const 0 + i64.store offset=8 + local.get $7 + i64.const 0 + i64.store offset=16 + local.get $7 + global.get $std/array/inputStabArr + local.tee $5 + i32.store offset=8 + local.get $7 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.tee $1 + i32.const 0 + i32.store + i32.const 0 + local.get $5 + i32.load offset=12 + local.tee $3 + local.get $3 + i32.const 0 + i32.gt_s + select + local.set $0 + local.get $1 + local.get $3 + local.get $0 + i32.sub + local.tee $1 + i32.const 0 + local.get $1 + i32.const 0 + i32.gt_s + select + local.tee $1 + i32.const 2 + i32.const 19 + i32.const 0 + call $~lib/rt/__newArray + local.tee $2 + i32.store + local.get $2 + i32.load offset=4 + local.set $4 + local.get $5 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.set $3 + local.get $1 + i32.const 2 + i32.shl + local.set $0 + loop $while-continue|00 + local.get $0 + local.get $6 + i32.gt_u + if + local.get $4 + local.get $6 + i32.add + local.get $3 + local.get $6 + i32.add + i32.load + local.tee $1 + i32.store + local.get $2 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $6 + i32.const 4 + i32.add + local.set $6 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer i32.const 4 - call $std/array/isArraysEqual - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1000 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.tee $1 local.get $2 - call $std/array/assertSortedDefault + i32.store + local.get $1 + i32.const 8496 + i32.store offset=4 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=12 + i32.const 8496 + call $~lib/util/sort/SORT + local.get $7 local.get $2 + i32.store offset=12 + i32.const 1 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $std/array/inputStabArr + local.tee $1 + i32.store + local.get $1 + i32.load offset=12 + local.set $3 + loop $for-loop|01 + local.get $3 + local.get $8 + i32.gt_s + if + block $for-break0 + global.get $~lib/memory/__stack_pointer + local.get $2 + local.get $8 + call $~lib/array/Array#__get + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.tee $0 + global.get $std/array/outputStabArr + local.tee $1 + i32.store + local.get $0 + local.get $1 + local.get $8 + call $~lib/array/Array#__get + local.tee $1 + i32.store offset=20 + local.get $4 + i32.load + local.get $1 + i32.load + i32.ne + if (result i32) + i32.const 1 + else + local.get $4 + i32.load offset=4 + local.get $1 + i32.load offset=4 + i32.ne + end + if + i32.const 0 + local.set $6 + br $for-break0 + end + local.get $8 + i32.const 1 + i32.add + local.set $8 + br $for-loop|01 + end + end + end local.get $6 - i32.const 4 - call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 1552 - i32.const 1003 + i32.const 987 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $1 - call $std/array/assertSortedDefault + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray local.tee $0 - i32.store offset=60 + i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray local.tee $1 - i32.store offset=56 + i32.store offset=156 global.get $~lib/memory/__stack_pointer - i32.const 8432 + i32.const 8528 i32.store offset=8 local.get $0 - i32.const 8432 + i32.const 8528 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - i32.const 8464 + i32.const 8560 i32.store offset=8 local.get $0 - i32.const 8464 + i32.const 8560 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - i32.const 8496 + i32.const 8592 i32.store offset=8 local.get $1 - i32.const 8496 + i32.const 8592 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - i32.const 8528 + i32.const 8624 i32.store offset=8 local.get $1 - i32.const 8528 + i32.const 8624 call $std/array/assertSorted i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $4 i64.const 0 @@ -19982,16 +23919,16 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store local.get $1 i32.const 16 - i32.const 22 + i32.const 25 call $~lib/rt/itcms/__new local.tee $5 i32.store @@ -20044,7 +23981,7 @@ local.get $4 local.get $5 i32.store - loop $for-loop|062 + loop $for-loop|0105 local.get $0 i32.const 2 i32.lt_s @@ -20068,106 +24005,106 @@ i32.const 1 i32.add local.set $0 - br $for-loop|062 + br $for-loop|0105 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $5 - i32.store offset=56 + i32.store offset=156 global.get $~lib/memory/__stack_pointer - i32.const 8560 + i32.const 8656 i32.store offset=8 local.get $5 - i32.const 8560 + i32.const 8656 call $std/array/assertSorted<~lib/array/Array> i32.const 0 - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $3 i64.const 0 i64.store - local.get $0 + local.get $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 i64.store local.get $1 i32.const 16 - i32.const 25 + i32.const 28 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $5 i32.store - local.get $1 + local.get $5 i32.const 0 i32.store - local.get $1 + local.get $5 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link - local.get $1 + local.get $5 i32.const 0 i32.store offset=4 - local.get $1 + local.get $5 i32.const 0 i32.store offset=8 - local.get $1 + local.get $5 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2048 i32.const 0 call $~lib/rt/itcms/__new - local.tee $4 + local.tee $1 i32.store offset=4 - local.get $4 + local.get $1 i32.const 0 i32.const 2048 call $~lib/memory/memory.fill + local.get $5 local.get $1 - local.get $4 i32.store + local.get $5 local.get $1 - local.get $4 i32.const 0 call $~lib/rt/itcms/__link + local.get $5 local.get $1 - local.get $4 i32.store offset=4 - local.get $1 + local.get $5 i32.const 2048 i32.store offset=8 - local.get $1 + local.get $5 i32.const 512 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 + local.get $3 + local.get $5 i32.store loop $for-loop|055 - local.get $5 + local.get $4 i32.const 512 i32.lt_s if @@ -20176,22 +24113,22 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store - local.get $0 + local.get $1 i32.const 4 - i32.const 24 + i32.const 27 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 511 - local.get $5 + local.get $4 i32.sub i32.store global.get $~lib/memory/__stack_pointer @@ -20199,16 +24136,16 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $1 + i32.store offset=4 local.get $5 - local.get $0 + local.get $4 + local.get $1 call $~lib/array/Array<~lib/array/Array>#__set - local.get $5 + local.get $4 i32.const 1 i32.add - local.set $5 + local.set $4 br $for-loop|055 end end @@ -20216,43 +24153,43 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $1 - i32.store offset=56 + local.get $0 + local.get $5 + i32.store offset=156 global.get $~lib/memory/__stack_pointer - i32.const 8592 + i32.const 8688 i32.store offset=8 - local.get $1 - i32.const 8592 + local.get $5 + i32.const 8688 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 - i32.const 27 - i32.const 8784 + i32.const 30 + i32.const 8880 call $~lib/rt/__newArray local.tee $1 - i32.store offset=60 + i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 - i32.const 27 - i32.const 8832 + i32.const 30 + i32.const 8928 call $~lib/rt/__newArray - local.tee $0 - i32.store offset=52 + local.tee $5 + i32.store offset=152 i32.const 1 global.set $~argumentsLength i32.const 0 - local.set $3 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -20266,10 +24203,10 @@ end unreachable end - i32.const 8880 - local.set $3 + i32.const 8976 + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 8880 + i32.const 8976 i32.store end global.get $~lib/memory/__stack_pointer @@ -20277,63 +24214,65 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store local.get $1 - local.get $3 - call $~lib/array/Array<~lib/array/Array>#sort - local.set $7 + i32.load offset=4 + local.get $1 + i32.load offset=12 + local.get $10 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $7 + local.tee $0 + local.get $1 i32.store block $__inlined_func$std/array/isSorted<~lib/string/String|null> (result i32) - local.get $2 + local.get $0 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store i32.const 1 - local.set $9 - local.get $7 + local.set $6 + local.get $1 i32.load offset=12 - local.set $2 + local.set $0 loop $for-loop|060 - local.get $2 - local.get $9 + local.get $0 + local.get $6 i32.gt_s if - local.get $7 - local.get $9 + local.get $1 + local.get $6 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store - local.get $7 - local.get $9 + local.get $1 + local.get $6 call $~lib/array/Array#__get - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $5 local.get $4 local.get $3 + local.get $10 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 @@ -20346,10 +24285,10 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null> end - local.get $9 + local.get $6 i32.const 1 i32.add - local.set $9 + local.set $6 br $for-loop|060 end end @@ -20363,7 +24302,7 @@ if i32.const 0 i32.const 1552 - i32.const 942 + i32.const 991 i32.const 3 call $~lib/builtins/abort unreachable @@ -20378,15 +24317,15 @@ global.set $~lib/memory/__stack_pointer block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null> (result i32) i32.const 0 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -20394,43 +24333,43 @@ block $folding-inner062 local.get $1 i32.load offset=12 - local.tee $2 - local.get $0 + local.tee $0 + local.get $5 i32.load offset=12 i32.ne br_if $folding-inner062 - local.get $0 local.get $1 + local.get $5 i32.eq br_if $folding-inner161 loop $for-loop|064 + local.get $0 local.get $2 - local.get $3 i32.gt_s if local.get $1 - local.get $3 + local.get $2 call $~lib/array/Array#__get - local.set $5 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $4 i32.store - local.get $0 - local.get $3 + local.get $5 + local.get $2 call $~lib/array/Array#__get - local.set $4 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $3 i32.store offset=4 - local.get $5 local.get $4 + local.get $3 call $~lib/string/String.__eq i32.eqz br_if $folding-inner062 - local.get $3 + local.get $2 i32.const 1 i32.add - local.set $3 + local.set $2 br $for-loop|064 end end @@ -20453,7 +24392,7 @@ if i32.const 0 i32.const 1552 - i32.const 1040 + i32.const 1095 i32.const 3 call $~lib/builtins/abort unreachable @@ -20461,14 +24400,14 @@ i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.tee $3 + local.tee $8 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -20477,9 +24416,9 @@ i32.const 0 i32.const 400 call $~lib/array/Array<~lib/string/String>#constructor - local.tee $10 + local.tee $2 i32.store - loop $for-loop|063113 + loop $for-loop|0106 local.get $0 i32.const 400 i32.lt_s @@ -20488,41 +24427,41 @@ f64.const 32 f64.mul i32.trunc_f64_s - local.set $5 + local.set $7 i32.const 0 - local.set $9 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i64.const 0 i64.store - local.get $2 + local.get $3 i32.const 0 i32.store offset=8 - i32.const 8752 + i32.const 8848 local.set $1 - local.get $2 - i32.const 8752 + local.get $3 + i32.const 8848 i32.store loop $for-loop|067 - local.get $5 - local.get $9 - i32.gt_s + local.get $6 + local.get $7 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.tee $4 + local.tee $5 i32.const 7312 i32.store offset=4 call $~lib/math/NativeMath.random global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 7312 i32.store offset=8 i32.const 7308 @@ -20533,20 +24472,20 @@ f64.mul f64.floor i32.trunc_f64_s - local.set $7 - local.get $2 + local.set $4 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/string/String#charAt - local.get $7 + local.get $4 i32.const 7308 i32.load i32.const 1 @@ -20557,18 +24496,18 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 - local.set $2 + i32.const 8848 + local.set $3 br $__inlined_func$~lib/string/String#charAt end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $3 i32.store - local.get $2 - local.get $7 + local.get $3 + local.get $4 i32.const 1 i32.shl i32.const 7312 @@ -20581,18 +24520,18 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=4 - local.get $4 + local.get $5 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.tee $1 i32.store - local.get $9 + local.get $6 i32.const 1 i32.add - local.set $9 + local.set $6 br $for-loop|067 end end @@ -20603,7 +24542,7 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $10 + local.get $2 local.get $0 local.get $1 call $~lib/array/Array<~lib/array/Array>#__set @@ -20611,16 +24550,16 @@ i32.const 1 i32.add local.set $0 - br $for-loop|063113 + br $for-loop|0106 end end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $10 - i32.store offset=56 + local.get $8 + local.get $2 + i32.store offset=156 i32.const 1 global.set $~argumentsLength i32.const 0 @@ -20630,29 +24569,29 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $1of164 - block $0of165 - block $outOfRange66 + block $1of1107 + block $0of1108 + block $outOfRange109 global.get $~argumentsLength i32.const 1 i32.sub - br_table $0of165 $1of164 $outOfRange66 + br_table $0of1108 $1of1107 $outOfRange109 end unreachable end - i32.const 8912 + i32.const 9008 local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8912 + i32.const 9008 i32.store end - local.get $10 + local.get $2 local.get $6 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -20661,20 +24600,20 @@ global.set $~lib/memory/__stack_pointer i32.const 2 i32.const 0 - i32.const 31 - i32.const 8944 + i32.const 34 + i32.const 9040 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 local.get $1 - i32.store offset=64 - local.get $2 - i32.const 9040 - i32.store offset=68 + i32.store offset=164 + local.get $3 + i32.const 9136 + i32.store offset=168 local.get $1 i32.load offset=4 - local.set $7 + local.set $8 local.get $1 i32.load offset=12 local.set $1 @@ -20682,14 +24621,14 @@ local.set $0 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -20697,7 +24636,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $9 + local.tee $2 i32.const 0 i32.lt_s if @@ -20705,29 +24644,29 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $1 br $__inlined_func$~lib/util/string/joinBooleanArray end block $folding-inner069 - local.get $9 + local.get $2 i32.eqz if - i32.const 8976 - i32.const 9008 - local.get $7 + i32.const 9072 + i32.const 9104 + local.get $8 i32.load8_u select local.set $1 br $folding-inner069 end global.get $~lib/memory/__stack_pointer - local.get $9 - i32.const 9036 + local.get $2 + i32.const 9132 i32.load i32.const 1 i32.shr_u - local.tee $3 + local.tee $7 i32.const 5 i32.add i32.mul @@ -20741,15 +24680,15 @@ local.tee $1 i32.store loop $for-loop|1 + local.get $2 local.get $6 - local.get $9 - i32.lt_s + i32.gt_s if local.get $6 - local.get $7 + local.get $8 i32.add i32.load8_u - local.tee $2 + local.tee $3 i32.eqz i32.const 4 i32.add @@ -20759,9 +24698,9 @@ i32.const 1 i32.shl i32.add - i32.const 8976 - i32.const 9008 - local.get $2 + i32.const 9072 + i32.const 9104 + local.get $3 select local.get $5 i32.const 1 @@ -20771,20 +24710,20 @@ local.get $5 i32.add local.set $0 - local.get $3 + local.get $7 if local.get $1 local.get $0 i32.const 1 i32.shl i32.add - i32.const 9040 - local.get $3 + i32.const 9136 + local.get $7 i32.const 1 i32.shl call $~lib/memory/memory.copy local.get $0 - local.get $3 + local.get $7 i32.add local.set $0 end @@ -20795,11 +24734,11 @@ br $for-loop|1 end end - local.get $7 - local.get $9 + local.get $2 + local.get $8 i32.add i32.load8_u - local.tee $2 + local.tee $3 i32.eqz i32.const 4 i32.add @@ -20809,9 +24748,9 @@ i32.const 1 i32.shl i32.add - i32.const 8976 - i32.const 9008 - local.get $2 + i32.const 9072 + i32.const 9104 + local.get $3 select local.get $5 i32.const 1 @@ -20846,16 +24785,16 @@ local.get $1 i32.store local.get $0 - i32.const 9072 + i32.const 9168 i32.store offset=8 local.get $1 - i32.const 9072 + i32.const 9168 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1049 + i32.const 1104 i32.const 3 call $~lib/builtins/abort unreachable @@ -20863,18 +24802,18 @@ i32.const 3 i32.const 2 i32.const 3 - i32.const 9120 + i32.const 9216 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 - i32.store offset=64 + i32.store offset=164 local.get $1 - i32.const 8752 - i32.store offset=68 + i32.const 8848 + i32.store offset=168 local.get $0 - i32.const 8752 + i32.const 8848 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -20882,16 +24821,16 @@ local.get $0 i32.store local.get $1 - i32.const 10928 + i32.const 11024 i32.store offset=8 local.get $0 - i32.const 10928 + i32.const 11024 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1050 + i32.const 1105 i32.const 3 call $~lib/builtins/abort unreachable @@ -20899,18 +24838,18 @@ i32.const 3 i32.const 2 i32.const 7 - i32.const 10960 + i32.const 11056 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 - i32.store offset=64 + i32.store offset=164 local.get $1 - i32.const 10992 - i32.store offset=68 + i32.const 11088 + i32.store offset=168 local.get $0 - i32.const 10992 + i32.const 11088 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -20918,16 +24857,16 @@ local.get $0 i32.store local.get $1 - i32.const 10928 + i32.const 11024 i32.store offset=8 local.get $0 - i32.const 10928 + i32.const 11024 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1051 + i32.const 1106 i32.const 3 call $~lib/builtins/abort unreachable @@ -20935,18 +24874,18 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 11024 + i32.const 11120 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 - i32.store offset=64 + i32.store offset=164 local.get $1 - i32.const 11056 - i32.store offset=68 + i32.const 11152 + i32.store offset=168 local.get $0 - i32.const 11056 + i32.const 11152 call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -20954,16 +24893,16 @@ local.get $0 i32.store local.get $1 - i32.const 11088 + i32.const 11184 i32.store offset=8 local.get $0 - i32.const 11088 + i32.const 11184 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1052 + i32.const 1107 i32.const 3 call $~lib/builtins/abort unreachable @@ -20971,16 +24910,16 @@ i32.const 6 i32.const 3 i32.const 10 - i32.const 11168 + i32.const 11264 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 - i32.store offset=64 + i32.store offset=164 local.get $1 - i32.const 11248 - i32.store offset=68 + i32.const 11344 + i32.store offset=168 local.get $0 i32.load offset=4 local.get $0 @@ -20992,35 +24931,35 @@ local.get $0 i32.store local.get $1 - i32.const 12416 + i32.const 12512 i32.store offset=8 local.get $0 - i32.const 12416 + i32.const 12512 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1053 + i32.const 1108 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 3 i32.const 2 - i32.const 27 - i32.const 12560 + i32.const 30 + i32.const 12656 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 - i32.store offset=64 + i32.store offset=164 local.get $1 - i32.const 8752 - i32.store offset=68 + i32.const 8848 + i32.store offset=168 local.get $0 - i32.const 8752 + i32.const 8848 call $~lib/array/Array<~lib/string/String|null>#join local.set $0 global.get $~lib/memory/__stack_pointer @@ -21028,16 +24967,16 @@ local.get $0 i32.store local.get $1 - i32.const 12528 + i32.const 12624 i32.store offset=8 local.get $0 - i32.const 12528 + i32.const 12624 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1054 + i32.const 1109 i32.const 3 call $~lib/builtins/abort unreachable @@ -21050,11 +24989,11 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=56 + i32.store offset=156 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=52 + i32.store offset=152 local.get $0 i32.const 0 i32.const 0 @@ -21071,10 +25010,10 @@ call $~lib/array/Array#__uset local.get $1 local.get $0 - i32.store offset=52 + i32.store offset=152 global.get $~lib/memory/__stack_pointer - i32.const 9040 - i32.store offset=68 + i32.const 9136 + i32.store offset=168 local.get $0 call $~lib/array/Array#join local.set $0 @@ -21083,16 +25022,16 @@ local.get $0 i32.store local.get $1 - i32.const 12656 + i32.const 12752 i32.store offset=8 local.get $0 - i32.const 12656 + i32.const 12752 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1056 + i32.const 1111 i32.const 3 call $~lib/builtins/abort unreachable @@ -21105,11 +25044,11 @@ i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=56 + i32.store offset=156 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=60 + i32.store offset=160 local.get $0 i32.const 0 i32.const 0 @@ -21122,10 +25061,10 @@ call $~lib/array/Array#__uset local.get $1 local.get $0 - i32.store offset=60 + i32.store offset=160 global.get $~lib/memory/__stack_pointer - i32.const 9040 - i32.store offset=68 + i32.const 9136 + i32.store offset=168 local.get $0 call $~lib/array/Array#join local.set $0 @@ -21134,16 +25073,16 @@ local.get $0 i32.store local.get $1 - i32.const 12752 + i32.const 12848 i32.store offset=8 local.get $0 - i32.const 12752 + i32.const 12848 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1059 + i32.const 1114 i32.const 3 call $~lib/builtins/abort unreachable @@ -21152,34 +25091,34 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 12848 + i32.const 12944 call $~lib/rt/__newArray local.tee $1 - i32.store offset=52 + i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 3 - i32.const 12880 + i32.const 12976 call $~lib/rt/__newArray local.tee $4 - i32.store offset=56 + i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 3 - i32.const 12912 + i32.const 13008 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=48 + local.tee $3 + i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 3 - i32.const 12944 + i32.const 13040 call $~lib/rt/__newArray local.tee $0 - i32.store offset=28 + i32.store offset=144 local.get $1 call $~lib/array/Array#toString local.set $5 @@ -21188,16 +25127,16 @@ local.get $5 i32.store local.get $1 - i32.const 8752 + i32.const 8848 i32.store offset=8 local.get $5 - i32.const 8752 + i32.const 8848 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1069 + i32.const 1124 i32.const 3 call $~lib/builtins/abort unreachable @@ -21210,38 +25149,38 @@ local.get $4 i32.store local.get $1 - i32.const 12528 + i32.const 12624 i32.store offset=8 local.get $4 - i32.const 12528 + i32.const 12624 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1070 + i32.const 1125 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $2 + local.get $3 call $~lib/array/Array#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $2 + local.get $3 i32.store local.get $1 - i32.const 12992 + i32.const 13088 i32.store offset=8 - local.get $2 - i32.const 12992 + local.get $3 + i32.const 13088 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1071 + i32.const 1126 i32.const 3 call $~lib/builtins/abort unreachable @@ -21254,44 +25193,44 @@ local.get $0 i32.store local.get $1 - i32.const 13024 + i32.const 13120 i32.store offset=8 local.get $0 - i32.const 13024 + i32.const 13120 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1072 + i32.const 1127 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 3 i32.const 0 - i32.const 32 - i32.const 13072 + i32.const 35 + i32.const 13168 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 - i32.store offset=64 + i32.store offset=164 local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $2 - i32.const 9040 + local.get $3 + i32.const 9136 i32.store local.get $0 i32.load offset=4 @@ -21303,14 +25242,14 @@ local.set $0 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -21318,7 +25257,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $7 i32.const 0 i32.lt_s if @@ -21326,23 +25265,23 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0116 - local.get $3 + block $folding-inner0110 + local.get $7 i32.eqz if local.get $5 i32.load8_s call $~lib/util/number/itoa32 local.set $1 - br $folding-inner0116 + br $folding-inner0110 end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9036 + local.get $7 + i32.const 9132 i32.load i32.const 1 i32.shr_u @@ -21352,17 +25291,17 @@ i32.mul i32.const 11 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|0117 - local.get $3 + loop $for-loop|0111 local.get $6 - i32.gt_s + local.get $7 + i32.lt_s if local.get $1 local.get $0 @@ -21384,7 +25323,7 @@ i32.const 1 i32.shl i32.add - i32.const 9040 + i32.const 9136 local.get $4 i32.const 1 i32.shl @@ -21398,17 +25337,17 @@ i32.const 1 i32.add local.set $6 - br $for-loop|0117 + br $for-loop|0111 end end - local.get $2 + local.get $3 local.get $1 local.get $0 i32.const 1 i32.shl i32.add - local.get $3 local.get $5 + local.get $7 i32.add i32.load8_s call $~lib/util/number/itoa_buffered @@ -21421,7 +25360,7 @@ local.get $0 call $~lib/string/String#substring local.set $1 - br $folding-inner0116 + br $folding-inner0110 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21443,44 +25382,44 @@ local.get $1 i32.store local.get $0 - i32.const 13104 + i32.const 13200 i32.store offset=8 local.get $1 - i32.const 13104 + i32.const 13200 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1074 + i32.const 1129 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 3 i32.const 1 - i32.const 33 - i32.const 13136 + i32.const 36 + i32.const 13232 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 - i32.store offset=64 + i32.store offset=164 local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $2 - i32.const 9040 + local.get $3 + i32.const 9136 i32.store local.get $0 i32.load offset=4 @@ -21492,14 +25431,14 @@ local.set $0 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -21507,7 +25446,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $7 i32.const 0 i32.lt_s if @@ -21515,23 +25454,23 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0119 - local.get $3 + block $folding-inner0113 + local.get $7 i32.eqz if local.get $5 i32.load16_u call $~lib/util/number/utoa32 local.set $1 - br $folding-inner0119 + br $folding-inner0113 end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9036 + local.get $7 + i32.const 9132 i32.load i32.const 1 i32.shr_u @@ -21541,17 +25480,17 @@ i32.mul i32.const 10 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|0120 - local.get $3 + loop $for-loop|0114 local.get $6 - i32.gt_s + local.get $7 + i32.lt_s if local.get $1 local.get $0 @@ -21575,7 +25514,7 @@ i32.const 1 i32.shl i32.add - i32.const 9040 + i32.const 9136 local.get $4 i32.const 1 i32.shl @@ -21589,17 +25528,17 @@ i32.const 1 i32.add local.set $6 - br $for-loop|0120 + br $for-loop|0114 end end - local.get $2 + local.get $3 local.get $1 local.get $0 i32.const 1 i32.shl i32.add local.get $5 - local.get $3 + local.get $7 i32.const 1 i32.shl i32.add @@ -21614,7 +25553,7 @@ local.get $0 call $~lib/string/String#substring local.set $1 - br $folding-inner0119 + br $folding-inner0113 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21636,44 +25575,44 @@ local.get $1 i32.store local.get $0 - i32.const 13168 + i32.const 13264 i32.store offset=8 local.get $1 - i32.const 13168 + i32.const 13264 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1075 + i32.const 1130 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 3 i32.const 3 - i32.const 34 - i32.const 13216 + i32.const 37 + i32.const 13312 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 - i32.store offset=64 + i32.store offset=164 local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $2 - i32.const 9040 + local.get $3 + i32.const 9136 i32.store local.get $0 i32.load offset=4 @@ -21685,14 +25624,14 @@ local.set $0 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -21700,7 +25639,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $7 i32.const 0 i32.lt_s if @@ -21708,47 +25647,47 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0122 - local.get $3 + block $folding-inner0116 + local.get $7 i32.eqz if block $__inlined_func$~lib/util/number/utoa64 (result i32) local.get $5 i64.load - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $8 + local.get $9 i64.eqz if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 9344 + i32.const 9440 br $__inlined_func$~lib/util/number/utoa64 end - local.get $8 + local.get $9 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.wrap_i64 - local.tee $2 + local.tee $3 local.tee $1 i32.const 100000 i32.lt_u @@ -21803,56 +25742,56 @@ local.tee $0 i32.store local.get $0 - local.get $2 + local.get $3 local.get $1 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $8 + local.get $9 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $8 + local.get $9 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $8 + local.get $9 i64.const 10000000000 i64.ge_u i32.add else - local.get $8 + local.get $9 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $8 + local.get $9 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $8 + local.get $9 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $8 + local.get $9 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $8 + local.get $9 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $8 + local.get $9 i64.const 1000000000000000000 i64.ge_u i32.add @@ -21866,7 +25805,7 @@ local.tee $0 i32.store local.get $0 - local.get $8 + local.get $9 local.get $1 call $~lib/util/number/utoa64_dec_lut end @@ -21877,11 +25816,11 @@ local.get $0 end local.set $1 - br $folding-inner0122 + br $folding-inner0116 end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9036 + local.get $7 + i32.const 9132 i32.load i32.const 1 i32.shr_u @@ -21891,17 +25830,17 @@ i32.mul i32.const 20 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|0123 - local.get $3 + loop $for-loop|0117 local.get $6 - i32.gt_s + local.get $7 + i32.lt_s if local.get $1 local.get $0 @@ -21925,7 +25864,7 @@ i32.const 1 i32.shl i32.add - i32.const 9040 + i32.const 9136 local.get $4 i32.const 1 i32.shl @@ -21939,17 +25878,17 @@ i32.const 1 i32.add local.set $6 - br $for-loop|0123 + br $for-loop|0117 end end - local.get $2 + local.get $3 local.get $1 local.get $0 i32.const 1 i32.shl i32.add local.get $5 - local.get $3 + local.get $7 i32.const 3 i32.shl i32.add @@ -21964,7 +25903,7 @@ local.get $0 call $~lib/string/String#substring local.set $1 - br $folding-inner0122 + br $folding-inner0116 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -21986,44 +25925,44 @@ local.get $1 i32.store local.get $0 - i32.const 13264 + i32.const 13360 i32.store offset=8 local.get $1 - i32.const 13264 + i32.const 13360 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1076 + i32.const 1131 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 4 i32.const 3 - i32.const 35 - i32.const 13344 + i32.const 38 + i32.const 13440 call $~lib/rt/__newArray local.set $0 global.get $~lib/memory/__stack_pointer local.tee $1 local.get $0 - i32.store offset=64 + i32.store offset=164 local.get $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 0 i32.store - local.get $2 - i32.const 9040 + local.get $3 + i32.const 9136 i32.store local.get $0 i32.load offset=4 @@ -22035,14 +25974,14 @@ local.set $0 i32.const 0 local.set $6 - local.get $2 + local.get $3 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -22050,7 +25989,7 @@ local.get $1 i32.const 1 i32.sub - local.tee $3 + local.tee $7 i32.const 0 i32.lt_s if @@ -22058,60 +25997,60 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $1 br $__inlined_func$~lib/util/string/joinIntegerArray end - block $folding-inner0125 - local.get $3 + block $folding-inner0119 + local.get $7 i32.eqz if local.get $5 i64.load i32.wrap_i64 i64.extend_i32_s - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store block $__inlined_func$~lib/util/number/itoa64 - local.get $8 + local.get $9 i64.eqz if global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 9344 + i32.const 9440 local.set $1 br $__inlined_func$~lib/util/number/itoa64 end i64.const 0 - local.get $8 + local.get $9 i64.sub - local.get $8 - local.get $8 + local.get $9 + local.get $9 i64.const 63 i64.shr_u i32.wrap_i64 local.tee $4 select - local.tee $8 + local.tee $9 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.wrap_i64 - local.tee $2 + local.tee $3 local.tee $1 i32.const 100000 i32.lt_u @@ -22168,56 +26107,56 @@ local.tee $1 i32.store local.get $1 - local.get $2 + local.get $3 local.get $0 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $8 + local.get $9 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $8 + local.get $9 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $8 + local.get $9 i64.const 10000000000 i64.ge_u i32.add else - local.get $8 + local.get $9 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $8 + local.get $9 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $8 + local.get $9 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $8 + local.get $9 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $8 + local.get $9 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $8 + local.get $9 i64.const 1000000000000000000 i64.ge_u i32.add @@ -22233,7 +26172,7 @@ local.tee $1 i32.store local.get $1 - local.get $8 + local.get $9 local.get $0 call $~lib/util/number/utoa64_dec_lut end @@ -22248,11 +26187,11 @@ i32.add global.set $~lib/memory/__stack_pointer end - br $folding-inner0125 + br $folding-inner0119 end global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 9036 + local.get $7 + i32.const 9132 i32.load i32.const 1 i32.shr_u @@ -22262,17 +26201,17 @@ i32.mul i32.const 21 i32.add - local.tee $2 + local.tee $3 i32.const 1 i32.shl i32.const 1 call $~lib/rt/itcms/__new local.tee $1 i32.store - loop $for-loop|0126 - local.get $3 + loop $for-loop|0120 local.get $6 - i32.gt_s + local.get $7 + i32.lt_s if local.get $1 local.get $0 @@ -22296,7 +26235,7 @@ i32.const 1 i32.shl i32.add - i32.const 9040 + i32.const 9136 local.get $4 i32.const 1 i32.shl @@ -22310,17 +26249,17 @@ i32.const 1 i32.add local.set $6 - br $for-loop|0126 + br $for-loop|0120 end end - local.get $2 + local.get $3 local.get $1 local.get $0 i32.const 1 i32.shl i32.add local.get $5 - local.get $3 + local.get $7 i32.const 3 i32.shl i32.add @@ -22335,7 +26274,7 @@ local.get $0 call $~lib/string/String#substring local.set $1 - br $folding-inner0125 + br $folding-inner0119 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -22357,16 +26296,16 @@ local.get $1 i32.store local.get $0 - i32.const 13408 + i32.const 13504 i32.store offset=8 local.get $1 - i32.const 13408 + i32.const 13504 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1077 + i32.const 1132 i32.const 3 call $~lib/builtins/abort unreachable @@ -22374,11 +26313,11 @@ global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 - i32.const 27 - i32.const 13520 + i32.const 30 + i32.const 13616 call $~lib/rt/__newArray local.tee $1 - i32.store offset=44 + i32.store offset=140 local.get $1 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 @@ -22387,29 +26326,29 @@ local.get $0 i32.store local.get $1 - i32.const 13568 + i32.const 13664 i32.store offset=8 local.get $0 - i32.const 13568 + i32.const 13664 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1081 + i32.const 1136 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 4 i32.const 2 - i32.const 27 - i32.const 13680 + i32.const 30 + i32.const 13776 call $~lib/rt/__newArray local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=64 + i32.store offset=164 local.get $1 call $~lib/array/Array<~lib/string/String|null>#toString local.set $0 @@ -22418,16 +26357,16 @@ local.get $0 i32.store local.get $1 - i32.const 13728 + i32.const 13824 i32.store offset=8 local.get $0 - i32.const 13728 + i32.const 13824 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1082 + i32.const 1137 i32.const 3 call $~lib/builtins/abort unreachable @@ -22436,21 +26375,21 @@ local.tee $1 i32.const 2 i32.const 2 - i32.const 22 + i32.const 25 i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=40 + i32.store offset=136 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=60 + i32.store offset=160 local.get $0 i32.const 0 i32.const 2 i32.const 2 i32.const 3 - i32.const 13760 + i32.const 13856 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -22458,43 +26397,43 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 13792 + i32.const 13888 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 local.get $0 - i32.store offset=60 + i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store local.get $1 - i32.const 9040 + i32.const 9136 i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $7 local.get $0 i32.load offset=12 local.set $0 i32.const 0 - local.set $7 + local.set $10 local.get $1 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -22514,7 +26453,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $1 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end @@ -22522,7 +26461,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.load local.tee $1 i32.store @@ -22531,7 +26470,7 @@ local.get $1 call $~lib/array/Array#toString else - i32.const 8752 + i32.const 8848 end local.set $1 global.get $~lib/memory/__stack_pointer @@ -22540,24 +26479,24 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - i32.const 8752 + i32.const 8848 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 i32.store offset=4 - i32.const 9036 + i32.const 9132 i32.load i32.const 1 i32.shr_u - local.set $2 + local.set $3 loop $for-loop|076 local.get $5 - local.get $7 + local.get $10 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 local.get $7 + local.get $10 i32.const 2 i32.shl i32.add @@ -22579,42 +26518,42 @@ local.tee $1 i32.store offset=4 end - local.get $2 + local.get $3 if global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 9040 + i32.const 9136 call $~lib/string/String.__concat local.tee $1 i32.store offset=4 end - local.get $7 + local.get $10 i32.const 1 i32.add - local.set $7 + local.set $10 br $for-loop|076 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 call $~lib/array/Array#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.tee $1 i32.store offset=4 @@ -22633,16 +26572,16 @@ local.get $1 i32.store local.get $0 - i32.const 13824 + i32.const 13920 i32.store offset=8 local.get $1 - i32.const 13824 + i32.const 13920 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1085 + i32.const 1140 i32.const 3 call $~lib/builtins/abort unreachable @@ -22651,21 +26590,21 @@ local.tee $1 i32.const 2 i32.const 2 - i32.const 36 + i32.const 39 i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=40 + i32.store offset=136 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=36 + i32.store offset=132 local.get $0 i32.const 0 i32.const 2 i32.const 0 i32.const 6 - i32.const 13872 + i32.const 13968 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -22673,43 +26612,43 @@ i32.const 2 i32.const 0 i32.const 6 - i32.const 13904 + i32.const 14000 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 local.get $0 - i32.store offset=36 + i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store local.get $1 - i32.const 9040 + i32.const 9136 i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $7 local.get $0 i32.load offset=12 local.set $0 i32.const 0 - local.set $7 + local.set $10 local.get $1 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -22729,7 +26668,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $1 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end @@ -22737,7 +26676,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.load local.tee $1 i32.store @@ -22746,7 +26685,7 @@ local.get $1 call $~lib/array/Array#toString else - i32.const 8752 + i32.const 8848 end local.set $1 global.get $~lib/memory/__stack_pointer @@ -22755,24 +26694,24 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array> end - i32.const 8752 + i32.const 8848 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 i32.store offset=4 - i32.const 9036 + i32.const 9132 i32.load i32.const 1 i32.shr_u - local.set $2 + local.set $3 loop $for-loop|077 local.get $5 - local.get $7 + local.get $10 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 local.get $7 + local.get $10 i32.const 2 i32.shl i32.add @@ -22794,42 +26733,42 @@ local.tee $1 i32.store offset=4 end - local.get $2 + local.get $3 if global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 9040 + i32.const 9136 call $~lib/string/String.__concat local.tee $1 i32.store offset=4 end - local.get $7 + local.get $10 i32.const 1 i32.add - local.set $7 + local.set $10 br $for-loop|077 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 call $~lib/array/Array#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.tee $1 i32.store offset=4 @@ -22848,16 +26787,16 @@ local.get $1 i32.store local.get $0 - i32.const 13824 + i32.const 13920 i32.store offset=8 local.get $1 - i32.const 13824 + i32.const 13920 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1088 + i32.const 1143 i32.const 3 call $~lib/builtins/abort unreachable @@ -22866,74 +26805,74 @@ local.tee $0 i32.const 1 i32.const 2 - i32.const 38 + i32.const 41 i32.const 0 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=40 + local.tee $3 + i32.store offset=136 global.get $~lib/memory/__stack_pointer local.tee $1 - local.get $2 + local.get $3 i32.load offset=4 - i32.store offset=32 + i32.store offset=128 local.get $1 i32.const 1 i32.const 2 - i32.const 37 + i32.const 40 i32.const 0 call $~lib/rt/__newArray local.tee $1 - i32.store offset=4 + i32.store offset=124 global.get $~lib/memory/__stack_pointer local.get $1 i32.load offset=4 - i32.store offset=16 + i32.store offset=120 local.get $1 i32.const 0 i32.const 1 i32.const 2 i32.const 7 - i32.const 13936 + i32.const 14032 call $~lib/rt/__newArray call $~lib/array/Array#__uset - local.get $2 + local.get $3 i32.const 0 local.get $1 call $~lib/array/Array#__uset local.get $0 - local.get $2 - i32.store offset=32 + local.get $3 + i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 0 i32.store local.get $1 - i32.const 9040 + i32.const 9136 i32.store - local.get $2 + local.get $3 i32.load offset=4 - local.set $3 - local.get $2 + local.set $7 + local.get $3 i32.load offset=12 local.set $0 i32.const 0 - local.set $7 + local.set $10 local.get $1 i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer local.tee $1 i64.const 0 @@ -22953,7 +26892,7 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 local.set $1 br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end @@ -22961,7 +26900,7 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 i32.load local.tee $1 i32.store @@ -22970,7 +26909,7 @@ local.get $1 call $~lib/array/Array<~lib/array/Array>#toString else - i32.const 8752 + i32.const 8848 end local.set $1 global.get $~lib/memory/__stack_pointer @@ -22979,24 +26918,24 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> end - i32.const 8752 + i32.const 8848 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 i32.store offset=4 - i32.const 9036 + i32.const 9132 i32.load i32.const 1 i32.shr_u - local.set $2 + local.set $3 loop $for-loop|079 local.get $5 - local.get $7 + local.get $10 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $3 local.get $7 + local.get $10 i32.const 2 i32.shl i32.add @@ -23018,42 +26957,42 @@ local.tee $1 i32.store offset=4 end - local.get $2 + local.get $3 if global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 9040 + i32.const 9136 call $~lib/string/String.__concat local.tee $1 i32.store offset=4 end - local.get $7 + local.get $10 i32.const 1 i32.add - local.set $7 + local.set $10 br $for-loop|079 end end global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $7 local.get $5 i32.const 2 i32.shl i32.add i32.load - local.tee $2 + local.tee $3 i32.store - local.get $2 + local.get $3 if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 call $~lib/array/Array<~lib/array/Array>#toString - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store offset=8 local.get $1 - local.get $2 + local.get $3 call $~lib/string/String.__concat local.tee $1 i32.store offset=4 @@ -23072,16 +27011,16 @@ local.get $1 i32.store local.get $0 - i32.const 12528 + i32.const 12624 i32.store offset=8 local.get $1 - i32.const 12528 + i32.const 12624 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1091 + i32.const 1146 i32.const 3 call $~lib/builtins/abort unreachable @@ -23090,21 +27029,21 @@ local.tee $1 i32.const 4 i32.const 2 - i32.const 22 + i32.const 25 i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=32 + i32.store offset=128 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=36 + i32.store offset=132 local.get $0 i32.const 0 i32.const 1 i32.const 2 i32.const 3 - i32.const 13968 + i32.const 14064 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -23112,7 +27051,7 @@ i32.const 3 i32.const 2 i32.const 3 - i32.const 14000 + i32.const 14096 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -23120,7 +27059,7 @@ i32.const 3 i32.const 2 i32.const 3 - i32.const 14032 + i32.const 14128 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -23128,17 +27067,17 @@ i32.const 3 i32.const 2 i32.const 3 - i32.const 14064 + i32.const 14160 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 local.get $0 - i32.store offset=36 + i32.store offset=132 global.get $~lib/memory/__stack_pointer local.get $0 call $~lib/array/Array<~lib/array/Array>#flat local.tee $1 - i32.store offset=32 + i32.store offset=128 local.get $1 i32.load offset=12 i32.const 10 @@ -23146,14 +27085,14 @@ if i32.const 0 i32.const 1552 - i32.const 1098 + i32.const 1153 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 local.set $0 - loop $for-loop|1130 + loop $for-loop|1124 local.get $0 i32.const 10 i32.lt_s @@ -23166,7 +27105,7 @@ if i32.const 0 i32.const 1552 - i32.const 1100 + i32.const 1155 i32.const 5 call $~lib/builtins/abort unreachable @@ -23175,72 +27114,72 @@ i32.const 1 i32.add local.set $0 - br $for-loop|1130 + br $for-loop|1124 end end global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 4 i32.const 2 - i32.const 39 + i32.const 42 i32.const 0 call $~lib/rt/__newArray local.tee $4 - i32.store offset=60 + i32.store offset=160 global.get $~lib/memory/__stack_pointer local.get $4 i32.load offset=4 - i32.store offset=44 + i32.store offset=140 local.get $4 i32.const 0 i32.const 1 i32.const 2 - i32.const 27 - i32.const 14128 + i32.const 30 + i32.const 14224 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $4 i32.const 1 i32.const 3 i32.const 2 - i32.const 27 - i32.const 14224 + i32.const 30 + i32.const 14320 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $4 i32.const 2 i32.const 3 i32.const 2 - i32.const 27 - i32.const 14352 + i32.const 30 + i32.const 14448 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $4 i32.const 3 i32.const 1 i32.const 2 - i32.const 27 - i32.const 14416 + i32.const 30 + i32.const 14512 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 local.get $4 - i32.store offset=44 + i32.store offset=140 i32.const 0 local.set $0 i32.const 0 - local.set $7 + local.set $10 i32.const 0 - local.set $3 + local.set $2 global.get $~lib/memory/__stack_pointer - local.tee $2 + local.tee $3 i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s - br_if $folding-inner2 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -23250,7 +27189,7 @@ local.get $4 i32.load offset=4 local.set $4 - loop $for-loop|0131 + loop $for-loop|0125 local.get $0 local.get $5 i32.lt_s @@ -23268,50 +27207,50 @@ else i32.const 0 end - local.get $7 + local.get $10 i32.add - local.set $7 + local.set $10 local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|0131 + br $for-loop|0125 end end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $10 i32.const 2 i32.shl local.tee $1 i32.const 0 call $~lib/rt/itcms/__new - local.tee $9 + local.tee $7 i32.store global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 27 + i32.const 30 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $8 i32.store offset=4 + local.get $8 local.get $10 - local.get $7 i32.store offset=12 - local.get $10 + local.get $8 local.get $1 i32.store offset=8 - local.get $10 - local.get $9 + local.get $8 + local.get $7 i32.store offset=4 - local.get $10 - local.get $9 + local.get $8 + local.get $7 i32.store - local.get $10 - local.get $9 + local.get $8 + local.get $7 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 local.set $0 - loop $for-loop|1132 + loop $for-loop|1126 local.get $0 local.get $5 i32.lt_s @@ -23324,8 +27263,8 @@ i32.load local.tee $1 if - local.get $3 - local.get $9 + local.get $2 + local.get $7 i32.add local.get $1 i32.load offset=4 @@ -23334,26 +27273,26 @@ local.tee $1 call $~lib/memory/memory.copy local.get $1 - local.get $3 + local.get $2 i32.add - local.set $3 + local.set $2 end local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|1132 + br $for-loop|1126 end end i32.const 0 local.set $0 loop $for-loop|2 local.get $0 - local.get $7 + local.get $10 i32.lt_s if - local.get $9 - local.get $9 + local.get $7 + local.get $7 local.get $0 i32.const 2 i32.shl @@ -23372,43 +27311,43 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $10 - i32.store offset=60 + local.get $3 + local.get $8 + i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 - i32.const 27 - i32.const 14448 + i32.const 30 + i32.const 14544 call $~lib/rt/__newArray local.tee $4 - i32.store offset=48 - local.get $10 + i32.store offset=148 + local.get $8 i32.load offset=12 i32.const 8 i32.ne if i32.const 0 i32.const 1552 - i32.const 1106 + i32.const 1161 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 local.set $0 - loop $for-loop|2133 + loop $for-loop|2127 local.get $0 local.get $4 i32.load offset=12 i32.lt_s if - local.get $10 + local.get $8 local.get $0 call $~lib/array/Array#__get - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.store local.get $4 local.get $0 @@ -23417,14 +27356,14 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $2 + local.get $3 local.get $1 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1108 + i32.const 1163 i32.const 5 call $~lib/builtins/abort unreachable @@ -23433,28 +27372,28 @@ i32.const 1 i32.add local.set $0 - br $for-loop|2133 + br $for-loop|2127 end end global.get $~lib/memory/__stack_pointer local.tee $1 i32.const 2 i32.const 2 - i32.const 22 + i32.const 25 i32.const 0 call $~lib/rt/__newArray local.tee $0 - i32.store offset=28 + i32.store offset=144 global.get $~lib/memory/__stack_pointer local.get $0 i32.load offset=4 - i32.store offset=56 + i32.store offset=156 local.get $0 i32.const 0 i32.const 0 i32.const 2 i32.const 3 - i32.const 14512 + i32.const 14608 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $0 @@ -23462,12 +27401,12 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 14544 + i32.const 14640 call $~lib/rt/__newArray call $~lib/array/Array#__uset local.get $1 local.get $0 - i32.store offset=56 + i32.store offset=156 local.get $0 call $~lib/array/Array<~lib/array/Array>#flat local.set $1 @@ -23479,36 +27418,40 @@ if i32.const 0 i32.const 1552 - i32.const 1112 + i32.const 1167 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 global.set $std/array/arr - i32.const 31428 + i32.const 0 + global.set $std/array/inputStabArr + i32.const 0 + global.set $std/array/outputStabArr + i32.const 31548 global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state i32.const 0 i32.gt_s if - loop $while-continue|071 + loop $while-continue|0114 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|071 + br $while-continue|0114 end end end call $~lib/rt/itcms/step drop - loop $while-continue|1134 + loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|1134 + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -23522,13 +27465,13 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - i32.const 72 + i32.const 172 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23542,11 +27485,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23636,11 +27579,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23730,11 +27673,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23768,11 +27711,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23833,11 +27776,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23873,11 +27816,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -23947,11 +27890,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24050,11 +27993,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24166,11 +28109,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24277,11 +28220,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24335,11 +28278,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24388,11 +28331,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24470,11 +28413,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24542,24 +28485,57 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/array/Array#sort@varargs (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) + (func $std/array/Dim#constructor (result i32) + (local $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.tee $0 + i32.const 0 + i32.store + local.get $0 + i32.const 8 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) + (local $1 i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24576,137 +28552,62 @@ end unreachable end - i32.const 8064 + i32.const 7536 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8064 + i32.const 7536 i32.store end - block $__inlined_func$~lib/array/Array#sort - local.get $0 - i32.load offset=12 - local.tee $6 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 15164 + i32.lt_s + if + i32.const 31568 + i32.const 31616 i32.const 1 - i32.le_s - br_if $__inlined_func$~lib/array/Array#sort - local.get $0 - i32.load offset=4 - local.set $4 - local.get $6 - i32.const 2 - i32.eq - if - local.get $4 - i32.load offset=4 - local.set $3 - local.get $4 - i32.load - local.set $2 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $2 - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $2 - i32.store offset=4 - local.get $4 - local.get $3 - i32.store - end - br $__inlined_func$~lib/array/Array#sort - end - local.get $6 - i32.const 256 - i32.lt_s - if - local.get $1 - local.set $3 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - if - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $5 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|1 - local.get $2 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $3 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $2 - local.tee $1 - i32.const 1 - i32.sub - local.set $2 - local.get $4 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - br $while-continue|1 - end - end - end - local.get $4 - local.get $2 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + br_table $0of1 $1of1 $outOfRange end - else - local.get $4 - local.get $6 - local.get $1 - call $~lib/util/sort/weakHeapSort + unreachable end + i32.const 8128 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8128 + i32.store end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -24721,11 +28622,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24774,11 +28675,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -24819,182 +28720,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/array/Array<~lib/array/Array>#sort (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 $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 15044 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $folding-inner0 - local.get $0 - i32.load offset=12 - local.tee $6 - i32.const 1 - i32.le_s - br_if $folding-inner0 - local.get $0 - i32.load offset=4 - local.set $4 - local.get $6 - i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.tee $2 - local.get $4 - i32.load offset=4 - local.tee $3 - i32.store - local.get $2 - local.get $4 - i32.load - local.tee $2 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $2 - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $2 - i32.store offset=4 - local.get $4 - local.get $3 - i32.store - end - br $folding-inner0 - end - local.get $1 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 15044 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $7 - i32.store - local.get $5 - i32.const 1 - i32.sub - local.set $1 - loop $while-continue|1 - local.get $1 - i32.const 0 - i32.ge_s - if - block $while-break|1 - global.get $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $3 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $1 - local.tee $2 - i32.const 1 - i32.sub - local.set $1 - local.get $4 - local.get $2 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - br $while-continue|1 - end - end - end - local.get $4 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - br $folding-inner2 - end - br $folding-inner2 - end - i32.const 31456 - i32.const 31504 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -25003,11 +28728,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25021,7 +28746,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 29 + i32.const 32 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -25102,11 +28827,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25165,7 +28890,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 return end i32.const 0 @@ -25211,11 +28936,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25231,7 +28956,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 9344 + i32.const 9440 return end global.get $~lib/memory/__stack_pointer @@ -25324,11 +29049,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25344,7 +29069,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 9344 + i32.const 9440 return end global.get $~lib/memory/__stack_pointer @@ -25425,7 +29150,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25442,7 +29167,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 8752 + i32.const 8848 return end block $folding-inner0 @@ -25457,7 +29182,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25472,7 +29197,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11280 + i32.const 11376 local.set $0 br $__inlined_func$~lib/util/number/dtoa end @@ -25490,7 +29215,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11312 + i32.const 11408 local.set $0 br $__inlined_func$~lib/util/number/dtoa end @@ -25498,8 +29223,8 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 11344 - i32.const 11392 + i32.const 11440 + i32.const 11488 local.get $3 f64.const 0 f64.lt @@ -25507,7 +29232,7 @@ local.set $0 br $__inlined_func$~lib/util/number/dtoa end - i32.const 11424 + i32.const 11520 local.get $3 call $~lib/util/number/dtoa_core i32.const 1 @@ -25520,7 +29245,7 @@ local.tee $0 i32.store local.get $0 - i32.const 11424 + i32.const 11520 local.get $1 call $~lib/memory/memory.copy global.get $~lib/memory/__stack_pointer @@ -25532,7 +29257,7 @@ end global.get $~lib/memory/__stack_pointer local.get $4 - i32.const 11244 + i32.const 11340 i32.load i32.const 1 i32.shr_u @@ -25576,7 +29301,7 @@ i32.const 1 i32.shl i32.add - i32.const 11248 + i32.const 11344 local.get $5 i32.const 1 i32.shl @@ -25631,8 +29356,8 @@ local.get $0 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25650,11 +29375,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25777,11 +29502,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25808,7 +29533,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25830,7 +29555,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25841,7 +29566,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 40 + i32.const 43 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -25852,7 +29577,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -25947,8 +29672,8 @@ local.get $0 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25961,11 +29686,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -25988,11 +29713,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26023,11 +29748,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26101,11 +29826,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26174,11 +29899,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26229,11 +29954,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26344,11 +30069,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26441,11 +30166,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26537,11 +30262,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26630,11 +30355,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26662,7 +30387,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -26677,7 +30402,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -26742,8 +30467,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26755,11 +30480,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26799,11 +30524,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26852,11 +30577,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -26923,7 +30648,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -26938,7 +30663,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -27008,8 +30733,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27025,11 +30750,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27089,11 +30814,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27163,11 +30888,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27192,7 +30917,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -27218,7 +30943,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -27309,8 +31034,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27327,7 +31052,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -27351,7 +31076,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -27454,8 +31179,8 @@ local.get $3 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27470,11 +31195,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27539,11 +31264,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27572,7 +31297,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -27587,7 +31312,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -27601,10 +31326,10 @@ end unreachable end - i32.const 9040 + i32.const 9136 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 9040 + i32.const 9136 i32.store end local.get $0 @@ -27620,8 +31345,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27633,11 +31358,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27646,9 +31371,9 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 14576 + i32.const 14672 i32.const 1104 - i32.const 477 + i32.const 465 i32.const 7 call $~lib/builtins/abort unreachable @@ -27659,11 +31384,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27689,7 +31414,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -27711,7 +31436,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -27722,7 +31447,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 41 + i32.const 44 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -27733,7 +31458,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -27826,8 +31551,8 @@ local.get $0 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27839,11 +31564,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27874,11 +31599,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -27950,11 +31675,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28021,11 +31746,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28071,11 +31796,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28118,11 +31843,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28215,11 +31940,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28311,11 +32036,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28404,11 +32129,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28436,7 +32161,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -28451,7 +32176,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -28511,8 +32236,8 @@ local.get $3 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28527,11 +32252,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28660,11 +32385,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28711,11 +32436,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28780,7 +32505,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -28795,7 +32520,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -28863,8 +32588,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28879,11 +32604,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -28940,11 +32665,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29014,11 +32739,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29066,7 +32791,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29092,7 +32817,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29179,8 +32904,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29197,7 +32922,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29221,7 +32946,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29316,8 +33041,8 @@ local.get $3 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29332,11 +33057,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29394,19 +33119,13 @@ ) (func $export:~lib/array/Array#sort@varargs (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) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29421,7 +33140,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29435,129 +33154,18 @@ end unreachable end - i32.const 14640 + i32.const 14736 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 14640 + i32.const 14736 i32.store end - block $__inlined_func$~lib/array/Array#sort - local.get $0 - i32.load offset=12 - local.tee $6 - i32.const 1 - i32.le_s - br_if $__inlined_func$~lib/array/Array#sort - local.get $0 - i32.load offset=4 - local.set $4 - local.get $6 - i32.const 2 - i32.eq - if - local.get $4 - i32.load8_u offset=1 - local.set $3 - local.get $4 - i32.load8_u - local.set $2 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $2 - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $2 - i32.store8 offset=1 - local.get $4 - local.get $3 - i32.store8 - end - br $__inlined_func$~lib/array/Array#sort - end - local.get $6 - i32.const 256 - i32.lt_s - if - local.get $1 - local.set $3 - loop $for-loop|0 - local.get $5 - local.get $6 - i32.lt_s - if - local.get $4 - local.get $5 - i32.add - i32.load8_u - local.set $7 - local.get $5 - i32.const 1 - i32.sub - local.set $2 - loop $while-continue|1 - local.get $2 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $2 - local.get $4 - i32.add - i32.load8_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $3 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $2 - local.tee $1 - i32.const 1 - i32.sub - local.set $2 - local.get $4 - local.get $1 - i32.const 1 - i32.add - i32.add - local.get $8 - i32.store8 - br $while-continue|1 - end - end - end - local.get $4 - local.get $2 - i32.const 1 - i32.add - i32.add - local.get $7 - i32.store8 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - else - local.get $4 - local.get $6 - local.get $1 - call $~lib/util/sort/weakHeapSort - end - end + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -29569,8 +33177,8 @@ local.get $0 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29584,7 +33192,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29599,7 +33207,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29613,10 +33221,10 @@ end unreachable end - i32.const 9040 + i32.const 9136 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 9040 + i32.const 9136 i32.store end local.get $0 @@ -29632,8 +33240,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29645,11 +33253,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29672,7 +33280,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29694,7 +33302,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29705,7 +33313,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 42 + i32.const 45 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -29727,8 +33335,8 @@ local.get $0 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29744,7 +33352,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29760,7 +33368,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29827,8 +33435,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29844,7 +33452,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29859,7 +33467,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29927,8 +33535,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -29942,7 +33550,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -29954,7 +33562,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30012,8 +33620,8 @@ local.get $0 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30027,11 +33635,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30147,11 +33755,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30195,11 +33803,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30242,7 +33850,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30271,7 +33879,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30355,8 +33963,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30369,11 +33977,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30407,7 +34015,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30422,7 +34030,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30452,7 +34060,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.const 2 - i32.const 29 + i32.const 32 i32.const 0 call $~lib/rt/__newArray local.tee $2 @@ -30541,8 +34149,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30558,7 +34166,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30570,7 +34178,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30617,8 +34225,8 @@ local.get $3 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30634,7 +34242,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30649,7 +34257,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30705,8 +34313,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30723,7 +34331,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30738,7 +34346,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30748,7 +34356,7 @@ local.get $2 i32.const 0 i32.const 2 - i32.const 29 + i32.const 32 i32.const 0 call $~lib/rt/__newArray local.tee $2 @@ -30810,8 +34418,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30828,7 +34436,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30840,7 +34448,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30897,8 +34505,8 @@ local.get $3 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -30914,7 +34522,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30930,7 +34538,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -30996,8 +34604,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31011,11 +34619,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31075,7 +34683,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31101,7 +34709,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31164,7 +34772,7 @@ select local.tee $3 i32.const 2 - i32.const 29 + i32.const 32 i32.const 0 call $~lib/rt/__newArray local.tee $2 @@ -31221,8 +34829,8 @@ local.get $2 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31239,7 +34847,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31263,7 +34871,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31311,7 +34919,7 @@ select local.tee $2 i32.const 2 - i32.const 29 + i32.const 32 i32.const 0 call $~lib/rt/__newArray local.tee $3 @@ -31366,8 +34974,8 @@ local.get $3 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31383,7 +34991,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31395,7 +35003,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31457,8 +35065,8 @@ local.get $0 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31472,7 +35080,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31487,7 +35095,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31501,15 +35109,18 @@ end unreachable end - i32.const 14672 + i32.const 14768 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 14672 + i32.const 14768 i32.store end local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 local.get $1 - call $~lib/array/Array<~lib/array/Array>#sort + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -31518,10 +35129,11 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31535,7 +35147,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31550,7 +35162,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -31564,10 +35176,10 @@ end unreachable end - i32.const 9040 + i32.const 9136 local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 9040 + i32.const 9136 i32.store end local.get $0 @@ -31583,8 +35195,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -31596,11 +35208,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 15044 + i32.const 15164 i32.lt_s if - i32.const 31456 - i32.const 31504 + i32.const 31568 + i32.const 31616 i32.const 1 i32.const 1 call $~lib/builtins/abort diff --git a/tests/compiler/std/array.ts b/tests/compiler/std/array.ts index 9762cbb981..8237fa5b27 100644 --- a/tests/compiler/std/array.ts +++ b/tests/compiler/std/array.ts @@ -873,7 +873,7 @@ var i: i32; // Checks if an array is properly sorted function isSorted(data: Array, comparator: (a: T, b: T) => i32 = COMPARATOR()): bool { - for (let i: i32 = 1, len: i32 = data.length; i < len; i++) { + for (let i = 1, len = data.length; i < len; i++) { if (comparator(data[i - 1], data[i]) > 0) return false; } return true; @@ -899,7 +899,7 @@ function createRandomOrderedArray(size: i32): Array { function createReverseOrderedNestedArray(size: i32): Array> { var arr = new Array>(size); - for (let i: i32 = 0; i < size; i++) { + for (let i = 0; i < size; i++) { let inner = new Array(1); inner[0] = size - 1 - i; arr[i] = inner; @@ -911,9 +911,14 @@ class Proxy { constructor(public x: T) {} } -function createReverseOrderedElementsArray(size: i32): Proxy[] { +class Dim { + height: i32; + width: i32; +} + +function createReverseOrderedElementsArray(size: i32): Array> { var arr = new Array>(size); - for (let i: i32 = 0; i < size; i++) { + for (let i = 0; i < size; i++) { arr[i] = new Proxy(size - 1 - i); } return arr; @@ -921,6 +926,36 @@ function createReverseOrderedElementsArray(size: i32): Proxy[] { const charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_-,.+/\\[]{}()<>*&$%^@#!?"; +let inputStabArr: Array = [ + { height: 100, width: 80 }, + { height: 90, width: 90 }, + { height: 70, width: 95 }, + { height: 100, width: 100 }, + { height: 80, width: 110 }, + { height: 110, width: 115 }, + { height: 100, width: 120 }, + { height: 70, width: 125 }, + { height: 70, width: 130 }, + { height: 100, width: 135 }, + { height: 75, width: 140 }, + { height: 70, width: 140 } +]; + +let outputStabArr: Array = [ + { height: 70, width: 95 }, + { height: 70, width: 125 }, + { height: 70, width: 130 }, + { height: 70, width: 140 }, + { height: 75, width: 140 }, + { height: 80, width: 110 }, + { height: 90, width: 90 }, + { height: 100, width: 80 }, + { height: 100, width: 100 }, + { height: 100, width: 120 }, + { height: 100, width: 135 }, + { height: 110, width: 115 } +]; + function createRandomString(len: i32): string { var result = ""; @@ -930,14 +965,28 @@ function createRandomString(len: i32): string { return result; } -function createRandomStringArray(size: i32): string[] { +function createRandomStringArray(size: i32): Array { var arr = new Array(size); - for (let i: i32 = 0; i < size; i++) { + for (let i = 0; i < size; i++) { arr[i] = createRandomString((NativeMath.random() * 32)); } return arr; } +function assertStableSortedForComplexObjects(): void { + let sorted = inputStabArr.slice(0).sort((a, b) => a.height - b.height); + let check = true; + for (let i = 0, len = inputStabArr.length; i < len; i++) { + let input = sorted[i]; + let target = outputStabArr[i]; + if (input.height != target.height || input.width != target.width) { + check = false; + break; + } + } + assert(check); +} + function assertSorted(arr: Array, comparator: (a: T, b: T) => i32 = COMPARATOR()): void { assert(isSorted(arr.sort(comparator), comparator)); } @@ -948,6 +997,10 @@ function assertSortedDefault(arr: Array): void { // Tests for default comparator { + let f32ArrayTypedSmall: f32[] = [2.0, -1.0, 0.0]; + f32ArrayTypedSmall.sort(); + assert(isArraysEqual(f32ArrayTypedSmall, [-1.0, 0.0, 2.0])); + let f32ArrayTyped: f32[] = [1.0, NaN, -Infinity, 1.00000001, 0.0, -1.0, -2.0, +Infinity]; f32ArrayTyped.sort(); assert(isArraysEqual(f32ArrayTyped, [-Infinity, -2.0, -1.0, 0.0, 1.0, 1.00000001, Infinity, NaN])); @@ -1003,6 +1056,8 @@ function assertSortedDefault(arr: Array): void { assert(isArraysEqual(reversed10000, expected4, 4)); assertSortedDefault(randomized512); + + assertStableSortedForComplexObjects(); } // Test sorting with custom comparator @@ -1122,6 +1177,8 @@ export class ArrayStr extends Array {} // Unleak globals arr = changetype>(0); +inputStabArr = changetype>(0); +outputStabArr = changetype>(0); __stack_pointer = __heap_base; __collect(); diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 2459e01bc8..e37da40a54 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -3,18 +3,21 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) - (type $i32_=>_none (func (param i32))) - (type $none_=>_none (func)) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) + (type $i32_=>_none (func (param i32))) + (type $none_=>_none (func)) (type $none_=>_f64 (func (result f64))) (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $i32_i64_=>_i32 (func (param i32 i64) (result i32))) @@ -23,7 +26,6 @@ (type $i64_=>_i64 (func (param i64) (result i64))) (type $i64_=>_none (func (param i64))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $i64_=>_i32 (func (param i64) (result i32))) @@ -53,6 +55,9 @@ (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) (global $std/array/charset i32 (i32.const 6288)) + (global $std/array/inputStabArr (mut i32) (i32.const 0)) + (global $std/array/outputStabArr (mut i32) (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) @@ -60,15 +65,14 @@ (global $~lib/util/number/_K (mut i32) (i32.const 0)) (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) - (global $std/array/ArrayU32 i32 (i32.const 40)) - (global $std/array/ArrayU8 i32 (i32.const 41)) - (global $std/array/ArrayStr i32 (i32.const 42)) - (global $~lib/rt/__rtti_base i32 (i32.const 13664)) - (global $~lib/memory/__data_end i32 (i32.const 14020)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 30404)) - (global $~lib/memory/__heap_base i32 (i32.const 30404)) + (global $std/array/ArrayU32 i32 (i32.const 43)) + (global $std/array/ArrayU8 i32 (i32.const 44)) + (global $std/array/ArrayStr i32 (i32.const 45)) + (global $~lib/rt/__rtti_base i32 (i32.const 13760)) + (global $~lib/memory/__data_end i32 (i32.const 14140)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 30524)) + (global $~lib/memory/__heap_base i32 (i32.const 30524)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") @@ -226,125 +230,128 @@ (data (i32.const 6188) "\1c\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\08\00\00\00+\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 6220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00\00\00\00\00") (data (i32.const 6268) "\bc\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") - (data (i32.const 6460) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6524) "\1c\00\00\00\00\00\00\00\00\00\00\00\12\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6556) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6620) "\\\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6716) "\1c\00\00\00\00\00\00\00\00\00\00\00\13\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6748) "\\\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6844) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6892) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6924) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6972) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7020) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7052) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") - (data (i32.const 7100) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7132) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7164) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 7196) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7244) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7292) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7324) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7356) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data (i32.const 7388) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7420) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7452) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7484) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7516) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7548) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7580) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7612) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7644) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") - (data (i32.const 7676) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00b\00a\00\00\00\00\00\00\00\00\00") - (data (i32.const 7708) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7740) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\b0\1d\00\00\d0\1d\00\00\b0\1d\00\00\f0\1d\00\00\10\1e\00\000\1e\00\00\00\00\00\00") - (data (i32.const 7788) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\000\1e\00\00\b0\1d\00\00\b0\1d\00\00\f0\1d\00\00\d0\1d\00\00\10\1e\00\00\00\00\00\00") - (data (i32.const 7836) "\1c\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7868) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7900) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7932) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") - (data (i32.const 7964) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") - (data (i32.const 7996) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8028) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 8076) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") - (data (i32.const 8108) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") - (data (i32.const 8236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 8300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 8332) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 8732) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9788) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") - (data (i32.const 9884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003\00\00\00") - (data (i32.const 9916) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 9948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 9980) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80\00\00\00\00") - (data (i32.const 10012) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00_\00_\00\00\00\00\00\00\00\00\00") - (data (i32.const 10044) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10124) "L\00\00\00\00\00\00\00\00\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00,\00 \00\00\00\00\00\00\00\00\00") - (data (i32.const 10236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") - (data (i32.const 10268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") - (data (i32.const 10300) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10348) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 10456) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 11804) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 11836) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 11868) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data (i32.const 11900) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 11948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\00,\002\00\00\00\00\00\00\00") - (data (i32.const 11980) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12028) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\01\ff\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12060) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") - (data (i32.const 12092) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff\00\00\00\00\00\00\00\00") - (data (i32.const 12124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12172) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12220) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12300) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12364) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00\00\00\00\00\00\00\00\00") - (data (i32.const 12476) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\000\1e\00\00\b0\1d\00\00\b0\1d\00\00\f0\1d\00\00\d0\1d\00\00\10\1e\00\00\00\00\00\00") - (data (i32.const 12524) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00\00\00") - (data (i32.const 12572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12636) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\f0,\00\0001\00\00\00\00\00\00P1\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") - (data (i32.const 12716) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") - (data (i32.const 12748) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") - (data (i32.const 12780) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12828) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\01\02\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12860) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\03\04\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12892) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12924) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 12956) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 12988) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") - (data (i32.const 13020) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") - (data (i32.const 13052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") - (data (i32.const 13084) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\103\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") - (data (i32.const 13148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") - (data (i32.const 13180) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00P3\00\00\00\00\00\00p3\00\00") - (data (i32.const 13212) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") - (data (i32.const 13244) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00f\00i\00v\00e\00\00\00\00\00") - (data (i32.const 13276) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00s\00i\00x\00\00\00\00\00\00\00") - (data (i32.const 13308) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\b03\00\00\d03\00\00\f03\00\00") - (data (i32.const 13340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00s\00e\00v\00e\00n\00\00\00") - (data (i32.const 13372) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\0004\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13404) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\103\00\00P3\00\00\00\00\00\00p3\00\00\b03\00\00\d03\00\00\f03\00\0004\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13468) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13500) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13532) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00I\00l\00l\00e\00g\00a\00l\00 \00g\00e\00n\00e\00r\00i\00c\00 \00t\00y\00p\00e\00\00\00\00\00") - (data (i32.const 13596) "\1c\00\00\00\00\00\00\00\00\00\00\00+\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13628) "\1c\00\00\00\00\00\00\00\00\00\00\00\1e\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 13664) ",\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00A\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\01\00\00\07\00\00\00B\00\00\00\06\00\00\00\02A\00\00\1d\00\00\00\00\00\00\00\00\00\00\00") - (table $0 59 funcref) - (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|1) + (data (i32.const 6460) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\00@\00\00\80\bf\00\00\00\00") + (data (i32.const 6492) "\1c\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\08\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6524) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\00\00\80\bf\00\00\00\00\00\00\00@") + (data (i32.const 6556) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6620) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6684) "\\\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6780) "\1c\00\00\00\00\00\00\00\00\00\00\00\15\00\00\00\08\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6812) "\\\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6908) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6956) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\00.\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6988) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7036) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7084) "\1c\00\00\00\00\00\00\00\00\00\00\00\17\00\00\00\08\00\00\00/\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7116) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") + (data (i32.const 7164) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7196) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7228) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 7260) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7308) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7356) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7388) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7420) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 7452) "\1c\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\08\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7484) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7516) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\003\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7548) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7580) "\1c\00\00\00\00\00\00\00\00\00\00\00\16\00\00\00\08\00\00\005\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7612) "\1c\00\00\00\00\00\00\00\00\00\00\00\1a\00\00\00\08\00\00\006\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7644) "\1c\00\00\00\00\00\00\00\00\00\00\00\1d\00\00\00\08\00\00\007\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7676) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00a\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7708) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00b\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7740) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00a\00b\00\00\00\00\00\00\00\00\00") + (data (i32.const 7772) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00b\00a\00\00\00\00\00\00\00\00\00") + (data (i32.const 7804) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7836) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\10\1e\00\000\1e\00\00\10\1e\00\00P\1e\00\00p\1e\00\00\90\1e\00\00\00\00\00\00") + (data (i32.const 7884) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\90\1e\00\00\10\1e\00\00\10\1e\00\00P\1e\00\000\1e\00\00p\1e\00\00\00\00\00\00") + (data (i32.const 7932) "\1c\00\00\00\00\00\00\00\00\00\00\00\1f\00\00\00\08\00\00\008\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7964) "\1c\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\08\00\00\009\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7996) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8028) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00\00\00\00\00") + (data (i32.const 8060) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00\00\00") + (data (i32.const 8092) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 8172) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 8204) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 8332) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 8396) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 8428) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 8828) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 9884) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 9980) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003\00\00\00") + (data (i32.const 10012) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 10044) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00-\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10076) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80\00\00\00\00") + (data (i32.const 10108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00_\00_\00\00\00\00\00\00\00\00\00") + (data (i32.const 10140) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10220) "L\00\00\00\00\00\00\00\00\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00,\00 \00\00\00\00\00\00\00\00\00") + (data (i32.const 10332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\000\00.\000\00\00\00\00\00\00\00") + (data (i32.const 10364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00\00\00\00\00\00\00") + (data (i32.const 10396) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10444) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10496) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 10552) "\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11900) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11932) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 11964) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 11996) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12044) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\00,\002\00\00\00\00\00\00\00") + (data (i32.const 12076) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12124) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\03\00\00\00\01\ff\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12156) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") + (data (i32.const 12188) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff\00\00\00\00\00\00\00\00") + (data (i32.const 12220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12268) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12316) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12396) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12460) "l\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00\00\00\00\00\00\00\00\00") + (data (i32.const 12572) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\1c\00\00\00\90\1e\00\00\10\1e\00\00\10\1e\00\00P\1e\00\000\1e\00\00p\1e\00\00\00\00\00\00") + (data (i32.const 12620) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00\00\00") + (data (i32.const 12668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\002\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\004\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12732) ",\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\00\00\00P-\00\00\901\00\00\00\00\00\00\b01\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") + (data (i32.const 12812) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00\00\00\00\00") + (data (i32.const 12844) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00\00\00\00\00") + (data (i32.const 12876) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12924) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\01\02\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12956) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\00\00\00\03\04\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 12988) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13020) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13052) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 13084) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\04\00\00\00\05\00\00\00\06\00\00\00") + (data (i32.const 13116) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\07\00\00\00\08\00\00\00\t\00\00\00") + (data (i32.const 13148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00o\00n\00e\00\00\00\00\00\00\00") + (data (i32.const 13180) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00p3\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13212) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00t\00w\00o\00\00\00\00\00\00\00") + (data (i32.const 13244) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00t\00h\00r\00e\00e\00\00\00") + (data (i32.const 13276) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\b03\00\00\00\00\00\00\d03\00\00") + (data (i32.const 13308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00f\00o\00u\00r\00\00\00\00\00") + (data (i32.const 13340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00f\00i\00v\00e\00\00\00\00\00") + (data (i32.const 13372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00s\00i\00x\00\00\00\00\00\00\00") + (data (i32.const 13404) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\0c\00\00\00\104\00\0004\00\00P4\00\00") + (data (i32.const 13436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00s\00e\00v\00e\00n\00\00\00") + (data (i32.const 13468) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\04\00\00\00\904\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13500) "<\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00p3\00\00\b03\00\00\00\00\00\00\d03\00\00\104\00\0004\00\00P4\00\00\904\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13564) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13596) "\1c\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13628) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00I\00l\00l\00e\00g\00a\00l\00 \00g\00e\00n\00e\00r\00i\00c\00 \00t\00y\00p\00e\00\00\00\00\00") + (data (i32.const 13692) "\1c\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\08\00\00\00:\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13724) "\1c\00\00\00\00\00\00\00\00\00\00\00!\00\00\00\08\00\00\00;\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 13760) "/\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02\t\00\00\00\00\00\00 \00\00\00\00\00\00\00A\00\00\00\02\00\00\00B\00\00\00\00\00\00\00\02\01\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\19\00\00\00\00\00\00\02\1a\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02a\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\00\00\00\00\00\00\00\00B\00\00\00\00\00\00\00B\08\00\00\00\00\00\00\82\00\00\00\00\00\00\00\02\02\00\00\00\00\00\00\02\n\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02A\00\00\00\00\00\00\02\01\00\00\07\00\00\00B\00\00\00\06\00\00\00\02A\00\00 \00\00\00\00\00\00\00\00\00\00\00") + (table $0 60 funcref) + (elem $0 (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $std/array/assertStableSortedForComplexObjects~anonymous|0 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|1) (export "ArrayU32" (global $std/array/ArrayU32)) (export "ArrayU8" (global $std/array/ArrayU8)) (export "ArrayStr" (global $std/array/ArrayStr)) @@ -6625,73 +6632,149 @@ unreachable end ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) + (func $std/array/Dim#set:height (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $std/array/Dim#set:width (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 f32) - (local $9 i32) + (local $9 f32) + (local $10 f32) + (local $11 f32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 2 i32.shl i32.add f32.load - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 2 i32.shl i32.add f32.load local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 2 i32.shl i32.add local.get $8 - f32.store + f32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -6700,385 +6783,841 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 2 + i32.shl i32.add + local.get $11 + f32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 2 i32.shl i32.add - local.get $5 - f32.store - local.get $3 - i32.const 1 + local.get $10 + f32.store offset=4 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f32) - (local $10 f32) - (local $11 i32) - (local $12 f32) + (local $7 f32) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl i32.add - i32.const 5 - i32.shr_u + f32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 i32.const 2 i32.shl - local.set $3 + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u i32.const 2 i32.shl i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - local.get $7 - i32.const 1 - i32.shr_s + call_indirect $0 (type $f32_f32_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u + f32.load + local.set $7 + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - i32.load - i32.const 1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 2 i32.shl - i32.xor - i32.store + i32.add + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $0 local.get $5 i32.const 2 i32.shl i32.add - local.get $9 + local.get $7 f32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) local.get $0 - local.get $8 + local.get $4 i32.const 2 i32.shl i32.add - local.get $10 - f32.store + f32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end + local.get $4 + ) + (func $~lib/util/sort/nodePower (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i64) local.get $1 - i32.const 1 + local.get $0 i32.sub + i32.const 1 + i32.add + i64.extend_i32_u local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.sub + local.set $6 + local.get $2 + local.get $6 + i32.add + local.set $7 + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.add + local.set $8 + local.get $7 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $9 + local.get $8 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $10 + local.get $9 + local.get $10 + i64.xor + i32.wrap_i64 + i32.clz + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + (local $12 f32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - f32.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 2 i32.shl i32.add f32.load f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 2 i32.shl i32.add - local.get $10 + f32.load offset=4 f32.store + local.get $7 i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 - i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - 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 - local.set $11 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end + f32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 end - loop $while-continue|4 - local.get $8 + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $4 + local.get $0 + f32.load offset=4 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 i32.gt_s - local.set $11 - local.get $11 + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + f32.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store offset=4 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f32.store offset=8 + end + local.get $0 + f32.load + local.set $5 + local.get $0 + f32.load offset=4 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 if - local.get $0 - f32.load - local.set $10 - local.get $0 local.get $8 + local.get $20 i32.const 2 i32.shl i32.add - f32.load - local.set $9 - local.get $10 - local.get $9 - i32.const 2 - global.set $~argumentsLength - local.get $2 i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s + local.set $22 + local.get $22 + i32.const -1 + i32.ne if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u + local.get $0 + local.get $22 + local.get $9 + local.get $20 i32.const 2 i32.shl i32.add i32.load i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 local.get $8 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $8 + local.get $20 i32.const 2 i32.shl i32.add - local.get $10 - f32.store - local.get $0 - local.get $9 - f32.store + i32.const -1 + i32.store end - local.get $8 + local.get $20 i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 + i32.sub + local.set $20 + br $for-loop|3 end end - local.get $5 + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 i32.const 1 i32.sub - local.set $5 - br $for-loop|2 + local.set $10 + br $for-loop|4 end end - local.get $4 + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 call $~lib/rt/tlsf/__free - local.get $0 - f32.load offset=4 - local.set $12 - local.get $0 - local.get $0 - f32.load - f32.store offset=4 - local.get $0 - local.get $12 - f32.store ) (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 f32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - return - end local.get $0 i32.load offset=4 - local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - local.get $3 - f32.load offset=4 - local.set $4 - local.get $3 - f32.load - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - f32.store offset=4 - local.get $3 - local.get $4 - f32.store - end - local.get $0 - return - end - local.get $3 - local.set $8 - local.get $2 - local.set $7 + local.get $0 + i32.load offset=12 local.get $1 - local.set $6 - i32.const 0 - drop - 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 + call $~lib/util/sort/SORT local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) @@ -7192,73 +7731,123 @@ end i32.const 1 ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 f64) - (local $9 i32) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 - i32.const 3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 3 i32.shl i32.add f64.load - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 3 i32.shl i32.add f64.load local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 3 i32.shl i32.add local.get $8 - f64.store + f64.store offset=16 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -7267,385 +7856,791 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 3 + i32.shl i32.add + local.get $11 + f64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 3 i32.shl i32.add - local.get $5 - f64.store - local.get $3 - i32.const 1 + local.get $10 + f64.store offset=8 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) - (local $10 f64) - (local $11 i32) - (local $12 f64) + (local $7 f64) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl i32.add - i32.const 5 - i32.shr_u - i32.const 2 + f64.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 i32.shl - local.set $3 + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 i32.shl i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - local.get $7 - i32.const 1 - i32.shr_s + call_indirect $0 (type $f64_f64_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + local.get $0 + local.get $1 + i32.const 3 i32.shl i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + f64.load + local.set $7 + local.get $0 + local.get $1 + i32.const 3 i32.shl i32.add - i32.load - i32.const 1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 3 i32.shl - i32.xor - i32.store + i32.add + f64.load + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $0 local.get $5 i32.const 3 i32.shl i32.add - local.get $9 + local.get $7 f64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) local.get $0 - local.get $8 + local.get $4 i32.const 3 i32.shl i32.add - local.get $10 - f64.store + f64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + (local $12 f64) + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 3 i32.shl i32.add f64.load f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 3 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 3 i32.shl i32.add - local.get $10 + f64.load offset=8 f64.store + local.get $7 i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 3 i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 + i32.add + local.get $11 + f64.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 3 i32.shl i32.add - i32.load - local.get $8 - i32.const 31 - i32.and - i32.shr_u + local.get $12 + f64.store + local.get $6 i32.const 1 - i32.and i32.add - local.tee $7 - local.get $5 - i32.lt_s - local.set $11 - local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end + local.set $6 end - loop $while-continue|4 - local.get $8 - i32.const 0 - i32.gt_s - local.set $11 - local.get $11 - if - local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $9 - local.get $10 - local.get $9 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - 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 3 - i32.shl - i32.add - local.get $10 - f64.store - local.get $0 - local.get $9 - f64.store - end - local.get $8 - i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 - end - end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - f64.load offset=8 - local.set $12 - local.get $0 - local.get $0 - f64.load - f64.store offset=8 - local.get $0 - local.get $12 - f64.store ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 f64) (local $5 f64) (local $6 i32) (local $7 i32) (local $8 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 128 i32.le_s if - local.get $0 - return - end - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - local.get $3 - f64.load offset=8 - local.set $4 - local.get $3 - f64.load - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength local.get $1 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) + i32.const 1 + i32.le_s + if + return + end i32.const 0 + i32.const 1 i32.lt_s - if - local.get $3 + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $4 + local.get $0 + f64.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + f64.load offset=16 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store offset=8 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $5 + local.get $0 + f64.load offset=8 + local.set $4 local.get $5 - f64.store offset=8 - local.get $3 local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select f64.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store offset=8 + return end local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort return end + local.get $1 + local.set $3 + i32.const 31 local.get $3 - local.set $8 - local.get $2 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end local.get $1 - local.set $6 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 i32.const 0 - drop - local.get $7 - i32.const 256 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 i32.lt_s if - local.get $8 - local.get $7 - local.get $6 + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 call $~lib/util/sort/insertionSort - else - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/sort/weakHeapSort end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 + if + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $22 + local.get $22 + i32.const -1 + i32.ne + if + local.get $0 + local.get $22 + local.get $9 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $20 + i32.const 1 + i32.sub + local.set $20 + br $for-loop|3 + end + end + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) @@ -7789,73 +8784,123 @@ end i32.const 1 ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 2 i32.shl i32.add i32.load - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 2 i32.shl i32.add i32.load local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 2 i32.shl i32.add local.get $8 - i32.store + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -7864,383 +8909,789 @@ end end local.get $0 - local.get $6 - i32.const 1 - i32.add + local.get $12 i32.const 2 i32.shl i32.add - local.get $5 - i32.store - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 - end + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl i32.add - i32.const 5 - i32.shr_u + i32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 i32.const 2 i32.shl - local.set $3 + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $7 - i32.const 1 - i32.shr_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $4 + i32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 local.get $5 - i32.const 5 - i32.shr_u i32.const 2 i32.shl i32.add i32.load + i32.store + local.get $1 i32.const 1 + i32.add + local.set $1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 2 i32.shl - i32.xor + i32.add + local.get $7 i32.store - local.get $0 local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 i32.const 2 i32.shl i32.add - local.get $9 - i32.store + i32.load offset=4 local.get $0 - local.get $8 + local.get $4 i32.const 2 i32.shl i32.add - local.get $10 - i32.store + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - i32.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 2 i32.shl i32.add i32.load i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 2 i32.shl i32.add - local.get $10 + i32.load offset=4 i32.store + local.get $7 i32.const 1 - local.set $9 - loop $while-continue|3 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $9 - i32.const 1 + i32.const 2 i32.shl - local.get $4 + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 local.get $9 - i32.const 5 - i32.shr_u i32.const 2 i32.shl i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u + local.get $12 + i32.store + local.get $6 i32.const 1 - i32.and i32.add - local.tee $8 - local.get $5 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $9 - i32.const 0 - i32.gt_s - local.set $7 - local.get $7 - if - local.get $0 - i32.load - local.set $10 - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store - local.get $0 - local.get $11 - i32.store - end - local.get $9 - i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 - end + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load offset=4 - local.set $12 - local.get $0 - local.get $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $12 - i32.store ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 128 i32.le_s if - local.get $0 - return - end - 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 $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) + i32.const 1 + i32.le_s + if + return + end i32.const 0 + i32.const 1 i32.lt_s - if - local.get $3 + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $3 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $5 + local.get $0 + i32.load offset=4 + local.set $4 local.get $5 - i32.store offset=4 - local.get $3 local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + return end local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort return end - local.get $3 + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add local.set $6 - local.get $2 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end local.get $1 - local.set $4 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 i32.const 0 - drop - local.get $5 - i32.const 256 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 i32.lt_s if - local.get $6 - local.get $5 + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 local.get $4 - call $~lib/util/sort/insertionSort - else - local.get $6 local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 local.get $4 - call $~lib/util/sort/weakHeapSort + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -8248,73 +9699,123 @@ local.get $1 i32.sub ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 2 i32.shl i32.add i32.load - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 2 i32.shl i32.add i32.load local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 2 i32.shl i32.add local.get $8 - i32.store + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -8323,383 +9824,789 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 2 + i32.shl i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 2 i32.shl i32.add - local.get $5 - i32.store - local.get $3 - i32.const 1 + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl i32.add - i32.const 5 - i32.shr_u + i32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 i32.const 2 i32.shl - local.set $3 + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $7 - i32.const 1 - i32.shr_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $4 + i32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 local.get $5 - i32.const 5 - i32.shr_u i32.const 2 i32.shl i32.add i32.load + i32.store + local.get $1 i32.const 1 + i32.add + local.set $1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 2 i32.shl - i32.xor + i32.add + local.get $7 i32.store - local.get $0 local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 i32.const 2 i32.shl i32.add - local.get $9 - i32.store + i32.load offset=4 local.get $0 - local.get $8 + local.get $4 i32.const 2 i32.shl i32.add - local.get $10 - i32.store + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - i32.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 2 i32.shl i32.add i32.load i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 2 i32.shl i32.add - local.get $10 + i32.load offset=4 i32.store + local.get $7 i32.const 1 - local.set $9 - loop $while-continue|3 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $9 - i32.const 1 + i32.const 2 i32.shl - local.get $4 + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 local.get $9 - i32.const 5 - i32.shr_u i32.const 2 i32.shl i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u + local.get $12 + i32.store + local.get $6 i32.const 1 - i32.and i32.add - local.tee $8 - local.get $5 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $9 - i32.const 0 - i32.gt_s - local.set $7 - local.get $7 - if - local.get $0 - i32.load - local.set $10 - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store - local.get $0 - local.get $11 - i32.store - end - local.get $9 - i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 - end + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load offset=4 - local.set $12 - local.get $0 - local.get $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $12 - i32.store ) - (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 128 i32.le_s if - local.get $0 - return - end - 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 $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) + i32.const 1 + i32.le_s + if + return + end i32.const 0 + i32.const 1 i32.lt_s - if - local.get $3 + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $3 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $5 + local.get $0 + i32.load offset=4 + local.set $4 local.get $5 - i32.store offset=4 - local.get $3 local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select i32.store - end - local.get $0 - return - end - local.get $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add local.set $6 - local.get $2 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end local.get $1 - local.set $4 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 i32.const 0 - drop - local.get $5 - i32.const 256 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 i32.lt_s if - local.get $6 - local.get $5 + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 local.get $4 - call $~lib/util/sort/insertionSort - else - local.get $6 local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 local.get $4 - call $~lib/util/sort/weakHeapSort + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) @@ -8784,250 +10691,3824 @@ local.set $4 local.get $4 if - local.get $0 - local.get $2 - i32.const 1 - i32.sub - call $~lib/array/Array#__get - local.get $0 - local.get $2 - call $~lib/array/Array#__get + local.get $0 + local.get $2 + i32.const 1 + i32.sub + call $~lib/array/Array#__get + local.get $0 + local.get $2 + call $~lib/array/Array#__get + i32.const 2 + global.set $~argumentsLength + local.get $1 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + i32.const 0 + return + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 1 + ) + (func $std/array/assertStableSortedForComplexObjects~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/array/Array#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $start:std/array~anonymous|43 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $start:std/array~anonymous|45 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $start:std/array~anonymous|46 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.sub + ) + (func $~lib/array/Array<~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array<~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array<~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 115 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array<~lib/array/Array>#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/array/Array>#__uset + ) + (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + local.get $1 + i32.const 0 + call $~lib/array/Array#__get + i32.sub + ) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT<~lib/array/Array> (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 $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/array/Array> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/array/Array> + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/array/Array> + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/array/Array> + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/array/Array> + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/array/Array> + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/array/Array> + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array<~lib/array/Array>#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT<~lib/array/Array> + local.get $0 + ) + (func $~lib/array/Array<~lib/array/Array>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=4 + ) + (func $~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=8 + ) + (func $~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store offset=12 + ) + (func $std/array/Proxy#set:x (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.store + ) + (func $~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $2 + i32.store + i32.const 1 + drop + local.get $0 + local.get $2 + i32.const 1 + call $~lib/rt/itcms/__link + ) + (func $~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 320 + i32.const 80 + i32.const 115 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + local.get $0 + local.get $1 + i32.const 1 + i32.add + call $~lib/array/Array>#set:length_ + end + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array>#__uset + ) + (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load + local.get $1 + i32.load + i32.sub + ) + (func $~lib/util/sort/insertionSort> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT> (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 $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight> + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort> + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight> + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort> + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns> + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns> + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array>#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT> + local.get $0 + ) + (func $~lib/array/Array>#get:length (param $0 i32) (result i32) + local.get $0 + i32.load offset=12 + ) + (func $~lib/util/sort/insertionSort<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/mergeRuns<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/SORT<~lib/string/String|null> (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 $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String|null> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/string/String|null> + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String|null> + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/string/String|null> + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String|null> + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/string/String|null> + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 i32.const 2 - global.set $~argumentsLength - local.get $1 + i32.shl + i32.add i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.gt_s + local.set $19 + local.get $19 + i32.const -1 + i32.ne if - i32.const 0 - return + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/string/String|null> end - local.get $2 + local.get $4 i32.const 1 - i32.add - local.set $2 - br $for-loop|0 + i32.sub + local.set $4 + br $for-loop|4 end end - i32.const 1 - ) - (func $start:std/array~anonymous|43 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (func $start:std/array~anonymous|44 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.sub - ) - (func $start:std/array~anonymous|45 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (func $start:std/array~anonymous|46 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.sub + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array<~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String|null>#sort (param $0 i32) (param $1 i32) (result i32) local.get $0 - local.get $1 - i32.store + i32.load offset=4 local.get $0 + i32.load offset=12 local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) + call $~lib/util/sort/SORT<~lib/string/String|null> local.get $0 - local.get $1 - i32.store offset=4 ) - (func $~lib/array/Array<~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String|null>#get:length (param $0 i32) (result i32) local.get $0 - local.get $1 - i32.store offset=8 + i32.load offset=12 ) - (func $~lib/array/Array<~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) + (func $~lib/string/String#get:length (param $0 i32) (result i32) local.get $0 - local.get $1 - i32.store offset=12 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u ) - (func $~lib/array/Array<~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) local.get $0 - i32.load offset=4 local.get $1 - i32.const 2 + i32.const 1 i32.shl i32.add + local.set $5 local.get $2 - i32.store + local.get $3 i32.const 1 + i32.shl + i32.add + local.set $6 + i32.const 0 + i32.const 2 + i32.lt_s drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 + local.get $4 + i32.const 4 i32.ge_u - if - local.get $1 + if (result i32) + local.get $5 + i32.const 7 + i32.and + local.get $6 + i32.const 7 + i32.and + i32.or + i32.eqz + else i32.const 0 - i32.lt_s - if - i32.const 320 - i32.const 80 - i32.const 115 - i32.const 22 - call $~lib/builtins/abort - unreachable + end + if + block $do-break|0 + loop $do-continue|0 + local.get $5 + i64.load + local.get $6 + i64.load + i64.ne + if + br $do-break|0 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + local.get $6 + i32.const 8 + i32.add + local.set $6 + local.get $4 + i32.const 4 + i32.sub + local.set $4 + local.get $4 + i32.const 4 + i32.ge_u + local.set $7 + local.get $7 + br_if $do-continue|0 + end end - local.get $0 - local.get $1 + end + loop $while-continue|1 + local.get $4 + local.tee $7 i32.const 1 - i32.add - i32.const 2 + i32.sub + local.set $4 + local.get $7 + local.set $7 + local.get $7 + if + local.get $5 + i32.load16_u + local.set $8 + local.get $6 + i32.load16_u + local.set $9 + local.get $8 + local.get $9 + i32.ne + if + local.get $8 + local.get $9 + i32.sub + return + end + local.get $5 + i32.const 2 + i32.add + local.set $5 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $while-continue|1 + end + end + i32.const 0 + ) + (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + i32.eq + if (result i32) i32.const 1 - call $~lib/array/ensureCapacity + else local.get $0 - local.get $1 + i32.const 0 + i32.eq + end + if (result i32) i32.const 1 - i32.add - call $~lib/array/Array<~lib/array/Array>#set:length_ + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return end local.get $0 + call $~lib/string/String#get:length + local.set $2 local.get $1 + call $~lib/string/String#get:length + local.set $3 local.get $2 - call $~lib/array/Array<~lib/array/Array>#__uset - ) - (func $start:std/array~anonymous|47 (param $0 i32) (param $1 i32) (result i32) + local.get $3 + i32.or + i32.eqz + if + i32.const 0 + return + end + local.get $2 + i32.eqz + if + i32.const -1 + return + end + local.get $3 + i32.eqz + if + i32.const 1 + return + end local.get $0 i32.const 0 - call $~lib/array/Array#__get local.get $1 i32.const 0 - call $~lib/array/Array#__get - i32.sub + local.get $2 + local.tee $4 + local.get $3 + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + call $~lib/util/string/compareImpl + local.set $4 + local.get $4 + if (result i32) + local.get $4 + else + local.get $2 + local.get $3 + i32.sub + end ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (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) + (func $std/array/assertSorted<~lib/string/String|null>@varargs (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $5 - i32.store - local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - i32.store offset=4 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - else - br $while-break|1 - end - br $while-continue|1 - end - end + i32.store + block $1of1 + block $0of1 + block $outOfRange + global.get $~argumentsLength + i32.const 1 + i32.sub + br_table $0of1 $1of1 $outOfRange end - local.get $0 - local.get $6 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store - local.get $3 + unreachable + end + global.get $~lib/memory/__stack_pointer + block $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 (result i32) + i32.const 0 + drop + i32.const 0 + drop i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + drop + i32.const 7952 + br $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 end + local.tee $1 + i32.store end + local.get $0 + local.get $1 + call $std/array/assertSorted<~lib/string/String|null> global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array<~lib/array/Array>#get:length (param $0 i32) (result i32) + (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) local.get $0 - i32.load offset=12 + local.get $1 + i32.eq + if + i32.const 1 + return + end + local.get $0 + i32.const 0 + i32.eq + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 0 + i32.eq + end + if + i32.const 0 + return + end + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + local.get $1 + call $~lib/string/String#get:length + i32.ne + if + i32.const 0 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/util/string/compareImpl + i32.eqz ) - (func $~lib/array/Array>#set:buffer (param $0 i32) (param $1 i32) + (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + call $~lib/string/String.__eq + i32.eqz + ) + (func $~lib/array/Array<~lib/string/String>#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store @@ -9036,27 +14517,27 @@ i32.const 0 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array>#set:dataStart (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#set:dataStart (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=4 ) - (func $~lib/array/Array>#set:byteLength (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#set:byteLength (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=8 ) - (func $~lib/array/Array>#set:length_ (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#set:length_ (param $0 i32) (param $1 i32) local.get $0 local.get $1 i32.store offset=12 ) - (func $std/array/Proxy#set:x (param $0 i32) (param $1 i32) + (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 - i32.store + call $~lib/string/String#concat ) - (func $~lib/array/Array>#__uset (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -9072,7 +14553,7 @@ i32.const 1 call $~lib/rt/itcms/__link ) - (func $~lib/array/Array>#__set (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=12 @@ -9100,99 +14581,144 @@ local.get $1 i32.const 1 i32.add - call $~lib/array/Array>#set:length_ + call $~lib/array/Array<~lib/string/String>#set:length_ end local.get $0 local.get $1 local.get $2 - call $~lib/array/Array>#__uset - ) - (func $start:std/array~anonymous|48 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load - local.get $1 - i32.load - i32.sub + call $~lib/array/Array<~lib/string/String>#__uset ) - (func $~lib/util/sort/insertionSort> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 i32.const 0 - local.set $3 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if global.get $~lib/memory/__stack_pointer local.get $0 - local.get $3 + local.get $6 i32.const 2 i32.shl i32.add i32.load - local.tee $5 + local.tee $8 i32.store - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $9 + i32.store offset=4 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 + local.get $12 i32.const 2 i32.shl i32.add i32.load local.tee $8 - i32.store offset=4 - local.get $5 + i32.store local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 2 i32.shl i32.add local.get $8 - i32.store + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -9201,18 +14727,68 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 2 + i32.shl i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.store + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 2 i32.shl i32.add - local.get $5 - i32.store - local.get $3 - i32.const 1 + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end @@ -9221,18 +14797,14 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array>#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/util/sort/insertionSort<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/util/sort/mergeRuns<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -9241,90 +14813,144 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - i32.const 0 - local.set $3 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 loop $for-loop|0 - local.get $3 + local.get $6 local.get $1 - i32.lt_s - local.set $4 - local.get $4 + i32.gt_s + local.set $9 + local.get $9 if - global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $3 + local.get $6 + i32.const 1 + i32.sub i32.const 2 i32.shl i32.add i32.load - local.tee $5 i32.store - local.get $3 + local.get $6 i32.const 1 i32.sub local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - i32.store offset=4 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $7 i32.const 1 i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $11 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + local.get $6 i32.const 2 i32.shl i32.add + i32.load + local.tee $12 + i32.store offset=4 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength local.get $5 - i32.store - local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 i32.const 1 i32.add - local.set $3 - br $for-loop|0 + local.set $9 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer @@ -9332,476 +14958,460 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/array/Array<~lib/string/String|null>#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - ) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/sort/SORT<~lib/string/String> (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.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 2 - i32.lt_s - drop - local.get $4 - i32.const 4 - i32.ge_u - if (result i32) - local.get $5 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.or - i32.eqz - else - i32.const 0 - end + i32.store offset=8 + local.get $1 + i32.const 128 + i32.le_s if - block $do-break|0 - loop $do-continue|0 - local.get $5 - i64.load - local.get $6 - i64.load - i64.ne - if - br $do-break|0 + local.get $1 + i32.const 1 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 local.get $5 - i32.const 8 - i32.add + select + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + local.get $5 + select + local.tee $3 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $4 + i32.store offset=4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s local.set $5 - local.get $6 - i32.const 8 - i32.add - local.set $6 + local.get $0 local.get $4 - i32.const 4 - i32.sub - local.set $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 local.get $4 - i32.const 4 - i32.ge_u - local.set $7 - local.get $7 - br_if $do-continue|0 - end - end - end - loop $while-continue|1 - local.get $4 - local.tee $7 - i32.const 1 - i32.sub - local.set $4 - local.get $7 - local.set $7 - local.get $7 - if - local.get $5 - i32.load16_u - local.set $8 - local.get $6 - i32.load16_u - local.set $9 - local.get $8 - local.get $9 - i32.ne - if - local.get $8 - local.get $9 - i32.sub - return + local.get $5 + select + i32.store offset=8 end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.tee $4 + i32.store offset=4 local.get $5 + local.get $4 i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.set $5 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $while-continue|1 + global.set $~lib/memory/__stack_pointer + return end - end - i32.const 0 - ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String|null>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - local.get $1 - i32.eq - if (result i32) - i32.const 1 - else local.get $0 i32.const 0 - i32.eq - end - if (result i32) - i32.const 1 - else local.get $1 - i32.const 0 - i32.eq - end - if - i32.const 0 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $2 - local.get $1 - call $~lib/string/String#get:length - local.set $3 - local.get $2 - local.get $3 - i32.or - i32.eqz - if - i32.const 0 - return - end - local.get $2 - i32.eqz - if - i32.const -1 - return - end - local.get $3 - i32.eqz - if i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String> + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer return end - local.get $0 - i32.const 0 local.get $1 - i32.const 0 - local.get $2 - local.tee $4 - local.get $3 - local.tee $5 - local.get $4 + local.set $5 + i32.const 31 local.get $5 - i32.lt_s - select - call $~lib/util/string/compareImpl - local.set $4 - local.get $4 - if (result i32) - local.get $4 - else - local.get $2 - local.get $3 - i32.sub - end - ) - (func $std/array/assertSorted<~lib/string/String|null>@varargs (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.clz i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 i32.const 0 - i32.store - block $1of1 - block $0of1 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of1 $1of1 $outOfRange - end - unreachable - end - global.get $~lib/memory/__stack_pointer - block $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 (result i32) - i32.const 0 - drop - i32.const 0 - drop + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 i32.const 1 - drop - i32.const 7856 - br $~lib/util/sort/COMPARATOR<~lib/string/String|null>|inlined.0 + i32.add + local.set $5 + br $for-loop|1 end - local.tee $1 - i32.store - end - local.get $0 - local.get $1 - call $std/array/assertSorted<~lib/string/String|null> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end - if - i32.const 0 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - return end - local.get $0 - i32.const 0 - local.get $1 - i32.const 0 - local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - ) - (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - ) - (func $~lib/array/Array<~lib/string/String>#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/string/String>#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array<~lib/string/String>#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/string/String#concat - ) - (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 local.get $1 i32.const 2 i32.shl - i32.add - local.get $2 - i32.store + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 i32.const 1 - drop + i32.sub + local.set $11 local.get $0 + i32.const 0 + local.get $11 local.get $2 + call $~lib/util/sort/extendRunRight<~lib/string/String> + local.set $12 + local.get $12 i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 320 - i32.const 80 - i32.const 115 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 + local.get $11 + local.tee $4 + i32.const 32 i32.const 1 - call $~lib/array/ensureCapacity + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array<~lib/string/String>#set:length_ + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String> end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__uset - ) - (func $~lib/util/sort/insertionSort<~lib/string/String> (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) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 i32.lt_s local.set $4 local.get $4 if - global.get $~lib/memory/__stack_pointer + local.get $12 + i32.const 1 + i32.add + local.set $5 local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight<~lib/string/String> + local.set $3 local.get $3 - i32.const 2 - i32.shl + local.get $5 + i32.sub + i32.const 1 i32.add - i32.load - local.tee $5 - i32.store + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort<~lib/string/String> + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne if - global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 + local.get $20 + local.get $9 + local.get $18 i32.const 2 i32.shl i32.add i32.load - local.tee $8 - i32.store offset=4 - local.get $5 + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/string/String> + local.get $20 + local.set $15 local.get $8 + local.get $18 i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - else - br $while-break|1 - end - br $while-continue|1 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 end end - local.get $0 - local.get $6 - i32.const 1 + local.get $8 + local.get $17 + i32.const 2 + i32.shl i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 i32.const 2 i32.shl i32.add - local.get $5 + local.get $12 i32.store + local.get $5 + local.set $15 local.get $3 - i32.const 1 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl i32.add - local.set $3 - br $for-loop|0 + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns<~lib/string/String> + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 end end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/array/Array<~lib/string/String>#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=12 + local.get $1 + call $~lib/util/sort/SORT<~lib/string/String> + local.get $0 + ) (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) local.get $0 i32.load offset=12 @@ -9908,7 +15518,7 @@ drop i32.const 1 drop - i32.const 7888 + i32.const 7984 br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.0 end local.tee $1 @@ -10029,14 +15639,14 @@ i32.const 100 i32.rem_u local.set $7 - i32.const 8332 + i32.const 8428 local.get $6 i32.const 2 i32.shl i32.add i64.load32_u local.set $8 - i32.const 8332 + i32.const 8428 local.get $7 i32.const 2 i32.shl @@ -10079,7 +15689,7 @@ i32.const 2 i32.sub local.set $2 - i32.const 8332 + i32.const 8428 local.get $10 i32.const 2 i32.shl @@ -10102,7 +15712,7 @@ i32.const 2 i32.sub local.set $2 - i32.const 8332 + i32.const 8428 local.get $1 i32.const 2 i32.shl @@ -10152,7 +15762,7 @@ i32.const 1 i32.shl i32.add - i32.const 8752 + i32.const 8848 local.get $1 i32.wrap_i64 i32.const 255 @@ -10174,7 +15784,7 @@ i32.and if local.get $0 - i32.const 8752 + i32.const 8848 local.get $1 i32.wrap_i64 i32.const 6 @@ -10297,7 +15907,7 @@ i32.const 1 i32.shl i32.add - i32.const 9808 + i32.const 9904 local.get $1 local.get $6 i64.and @@ -10333,7 +15943,7 @@ i32.const 1 i32.shl i32.add - i32.const 9808 + i32.const 9904 local.get $1 local.get $6 local.get $4 @@ -10794,7 +16404,7 @@ local.set $22 local.get $18 local.set $21 - i32.const 11328 + i32.const 11424 local.get $13 i32.const 2 i32.shl @@ -10935,7 +16545,7 @@ i32.add global.set $~lib/util/number/_K local.get $10 - i32.const 11328 + i32.const 11424 i32.const 0 local.get $13 i32.sub @@ -11516,14 +17126,14 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 10456 + i32.const 10552 local.get $14 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow - i32.const 11152 + i32.const 11248 local.get $14 i32.const 1 i32.shl @@ -11900,7 +17510,7 @@ return ) (func $std/array/Ref#toString (param $0 i32) (result i32) - i32.const 11568 + i32.const 11664 ) (func $~lib/array/Array#join (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12260,14 +17870,14 @@ i32.const 100 i32.rem_u local.set $11 - i32.const 8332 + i32.const 8428 local.get $10 i32.const 2 i32.shl i32.add i64.load32_u local.set $12 - i32.const 8332 + i32.const 8428 local.get $11 i32.const 2 i32.shl @@ -12289,14 +17899,14 @@ i64.shl i64.or i64.store - i32.const 8332 + i32.const 8428 local.get $8 i32.const 2 i32.shl i32.add i64.load32_u local.set $12 - i32.const 8332 + i32.const 8428 local.get $9 i32.const 2 i32.shl @@ -13701,9 +19311,9 @@ i32.const 0 i32.eqz drop - i32.const 13552 + i32.const 13648 i32.const 80 - i32.const 477 + i32.const 465 i32.const 7 call $~lib/builtins/abort unreachable @@ -14544,73 +20154,123 @@ end local.get $0 ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 0 i32.shl i32.add i32.load8_u - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 0 i32.shl i32.add i32.load8_u local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 0 i32.shl i32.add local.get $8 - i32.store8 + i32.store8 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -14619,392 +20279,798 @@ end end local.get $0 - local.get $6 - i32.const 1 - i32.add + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 offset=1 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $10 + i32.store8 offset=1 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $7 + local.get $0 + local.get $1 + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 0 + i32.shl + i32.add + local.get $7 + i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 0 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + local.get $4 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $11 + i32.store8 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 0 + i32.shl + i32.add + local.get $12 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $3 + local.get $0 + i32.load8_u offset=1 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load8_u offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 offset=1 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_u + local.set $5 + local.get $0 + i32.load8_u offset=1 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.shl - i32.add + i32.gt_s + local.set $3 + local.get $0 + local.get $4 local.get $5 + local.get $3 + select i32.store8 + local.get $0 + local.get $5 + local.get $4 local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + select + i32.store8 offset=1 + return end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return end - ) - (func $~lib/util/sort/weakHeapSort (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 $11 i32) - (local $12 i32) local.get $1 + local.set $5 i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 i32.add - i32.const 5 - i32.shr_u + local.set $6 + local.get $6 i32.const 2 i32.shl - local.set $3 - local.get $3 + local.set $7 + local.get $7 + i32.const 1 + i32.shl call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub local.set $5 - loop $for-loop|0 + loop $for-loop|1 local.get $5 - i32.const 0 - i32.gt_s - local.set $6 local.get $6 + i32.lt_u + local.set $3 + local.get $3 if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and - local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - i32.const 1 - i32.shr_s - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end - end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 local.get $8 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $0 local.get $5 - i32.const 0 + i32.const 2 i32.shl i32.add - i32.load8_u - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - 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 0 - i32.shl - i32.add - local.get $9 - i32.store8 - local.get $0 - local.get $8 - i32.const 0 - i32.shl - i32.add - local.get $10 - i32.store8 - end + i32.const -1 + i32.store local.get $5 i32.const 1 - i32.sub + i32.add local.set $5 - br $for-loop|0 + br $for-loop|1 end end local.get $1 + i32.const 0 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 local.get $5 - i32.const 2 - i32.ge_s - local.set $6 - local.get $6 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 if - local.get $0 - i32.load8_u - local.set $10 - local.get $0 - local.get $0 - local.get $5 - i32.const 0 - i32.shl + local.get $12 + i32.const 1 i32.add - i32.load8_u - i32.store8 + local.set $5 local.get $0 local.get $5 - i32.const 0 - i32.shl - i32.add - local.get $10 - i32.store8 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub i32.const 1 - local.set $9 - loop $while-continue|3 - local.get $9 - i32.const 1 - i32.shl - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u i32.const 1 - i32.and - i32.add - local.tee $8 - local.get $5 + i32.sub + local.tee $18 + local.get $17 + local.get $18 i32.lt_s - local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort end - loop $while-continue|4 - local.get $9 - i32.const 0 - i32.gt_s - local.set $7 - local.get $7 + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 if - local.get $0 - i32.load8_u - local.set $10 - local.get $0 - local.get $9 - i32.const 0 + local.get $8 + local.get $18 + i32.const 2 i32.shl i32.add - i32.load8_u - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s + local.set $20 + local.get $20 + i32.const -1 + i32.ne if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 + local.get $0 + local.get $20 local.get $9 - i32.const 5 - i32.shr_u + local.get $18 i32.const 2 i32.shl i32.add i32.load i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 0 - i32.shl i32.add + local.get $12 local.get $10 - i32.store8 - local.get $0 - local.get $11 - i32.store8 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end - local.get $9 + local.get $18 i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 + i32.sub + local.set $18 + br $for-loop|3 end end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 i32.const 1 i32.sub - local.set $5 - br $for-loop|2 + local.set $4 + br $for-loop|4 end end - local.get $4 + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 call $~lib/rt/tlsf/__free - local.get $0 - i32.load8_u offset=1 - local.set $12 - local.get $0 - local.get $0 - i32.load8_u - i32.store8 offset=1 - local.get $0 - local.get $12 - i32.store8 ) (func $~lib/array/Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - return - end local.get $0 i32.load offset=4 - local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - local.get $3 - i32.load8_u offset=1 - local.set $4 - local.get $3 - i32.load8_u - local.set $5 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - i32.store8 offset=1 - local.get $3 - local.get $4 - i32.store8 - end - local.get $0 - return - end - local.get $3 - local.set $6 - local.get $2 - local.set $5 + local.get $0 + i32.load offset=12 local.get $1 - local.set $4 - i32.const 0 - drop - local.get $5 - i32.const 256 - i32.lt_s - if - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/insertionSort - else - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/weakHeapSort - end + call $~lib/util/sort/SORT local.get $0 ) (func $~lib/array/Array#flat (param $0 i32) (result i32) i32.const 0 i32.eqz drop - i32.const 13552 + i32.const 13648 i32.const 80 - i32.const 477 + i32.const 465 i32.const 7 call $~lib/builtins/abort unreachable @@ -15386,9 +21452,9 @@ i32.const 0 i32.eqz drop - i32.const 13552 + i32.const 13648 i32.const 80 - i32.const 477 + i32.const 465 i32.const 7 call $~lib/builtins/abort unreachable @@ -16020,13 +22086,27 @@ local.get $0 call $~lib/rt/itcms/__visit end + global.get $std/array/inputStabArr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end + global.get $std/array/outputStabArr + local.tee $1 + if + local.get $1 + local.get $0 + call $~lib/rt/itcms/__visit + end i32.const 320 local.get $0 call $~lib/rt/itcms/__visit i32.const 32 local.get $0 call $~lib/rt/itcms/__visit - i32.const 13552 + i32.const 13648 local.get $0 call $~lib/rt/itcms/__visit i32.const 1152 @@ -16038,10 +22118,10 @@ i32.const 128 local.get $0 call $~lib/rt/itcms/__visit - i32.const 8752 + i32.const 8848 local.get $0 call $~lib/rt/itcms/__visit - i32.const 9808 + i32.const 9904 local.get $0 call $~lib/rt/itcms/__visit ) @@ -16276,6 +22356,56 @@ local.get $1 call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>#__visit ) + (func $~lib/array/Array#__visit (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1 + drop + local.get $0 + i32.load offset=4 + local.set $2 + local.get $2 + local.get $0 + i32.load offset=12 + i32.const 2 + i32.shl + i32.add + local.set $3 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + local.set $4 + local.get $4 + if + local.get $2 + i32.load + local.set $5 + local.get $5 + if + local.get $5 + local.get $1 + call $~lib/rt/itcms/__visit + end + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.load + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/array/Array#__visit + ) (func $~lib/function/Function<%28f32%2Cf32%29=>i32>#__visit (param $0 i32) (param $1 i32) local.get $0 i32.load offset=4 @@ -16320,6 +22450,17 @@ local.get $1 call $~lib/function/Function<%28u32%2Cu32%29=>i32>#__visit ) + (func $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>#__visit (param $0 i32) (param $1 i32) + local.get $0 + i32.load offset=4 + local.get $1 + call $~lib/rt/itcms/__visit + ) + (func $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>~visit (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + call $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>#__visit + ) (func $~lib/array/Array<~lib/array/Array>#__visit (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) @@ -16834,133 +22975,148 @@ block $std/array/Proxy block $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32> block $~lib/array/Array<~lib/array/Array> - block $~lib/function/Function<%28u32%2Cu32%29=>i32> - block $~lib/function/Function<%28i32%2Ci32%29=>i32> - block $~lib/function/Function<%28f64%2Cf64%29=>i32> - block $~lib/function/Function<%28f32%2Cf32%29=>i32> - block $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> - block $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> - block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/array/Array - block $~lib/typedarray/Uint8Array - block $std/array/Ref - block $~lib/array/Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer + block $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32> + block $~lib/function/Function<%28u32%2Cu32%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%29=>i32> + block $~lib/function/Function<%28f64%2Cf64%29=>i32> + block $~lib/function/Function<%28f32%2Cf32%29=>i32> + block $~lib/array/Array + block $std/array/Dim + block $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> + block $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> + block $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/array/Array + block $~lib/typedarray/Uint8Array + block $std/array/Ref + block $~lib/array/Array + block $~lib/arraybuffer/ArrayBufferView + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $std/array/Ref $~lib/typedarray/Uint8Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> $std/array/Dim $~lib/array/Array $~lib/function/Function<%28f32%2Cf32%29=>i32> $~lib/function/Function<%28f64%2Cf64%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28u32%2Cu32%29=>i32> $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32> $~lib/array/Array<~lib/array/Array> $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32> $std/array/Proxy $~lib/array/Array> $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32> $~lib/array/Array<~lib/string/String|null> $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32> $~lib/array/Array<~lib/string/String> $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32> $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array<~lib/array/Array>> $~lib/array/Array<~lib/array/Array<~lib/string/String|null>> $std/array/ArrayU32 $std/array/ArrayU8 $std/array/ArrayStr $~lib/function/Function<%28u8%2Cu8%29=>i32> $invalid + end + return + end + return + end local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array $std/array/Ref $~lib/typedarray/Uint8Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32> $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32> $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool> $~lib/function/Function<%28f32%2Cf32%29=>i32> $~lib/function/Function<%28f64%2Cf64%29=>i32> $~lib/function/Function<%28i32%2Ci32%29=>i32> $~lib/function/Function<%28u32%2Cu32%29=>i32> $~lib/array/Array<~lib/array/Array> $~lib/function/Function<%28~lib/array/Array%2C~lib/array/Array%29=>i32> $std/array/Proxy $~lib/array/Array> $~lib/function/Function<%28std/array/Proxy%2Cstd/array/Proxy%29=>i32> $~lib/array/Array<~lib/string/String|null> $~lib/function/Function<%28~lib/string/String|null%2C~lib/string/String|null%29=>i32> $~lib/array/Array<~lib/string/String> $~lib/function/Function<%28~lib/string/String%2C~lib/string/String%29=>i32> $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array> $~lib/array/Array<~lib/array/Array<~lib/array/Array>> $~lib/array/Array<~lib/array/Array<~lib/string/String|null>> $std/array/ArrayU32 $std/array/ArrayU8 $std/array/ArrayStr $~lib/function/Function<%28u8%2Cu8%29=>i32> $invalid + local.get $1 + call $~lib/arraybuffer/ArrayBufferView~visit + return end + local.get $0 + local.get $1 + call $~lib/array/Array~visit return end return end local.get $0 local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit + call $~lib/typedarray/Uint8Array~visit return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/array/Array~visit return end + local.get $0 + local.get $1 + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $~lib/typedarray/Uint8Array~visit + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>~visit return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>~visit return end local.get $0 local.get $1 - call $~lib/array/Array~visit + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>bool>~visit + call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>void>~visit + call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>f32>~visit + call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>~visit return end - local.get $0 - local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2C~lib/array/Array%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28i32%2Ci32%2Ci32%2C~lib/array/Array%29=>i32>~visit + call $~lib/array/Array~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28bool%2Ci32%2Ci32%2C~lib/array/Array%29=>bool>~visit + call $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28f32%2Cf32%29=>i32>~visit + call $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28f64%2Cf64%29=>i32>~visit + call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28i32%2Ci32%29=>i32>~visit + call $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit return end local.get $0 local.get $1 - call $~lib/function/Function<%28u32%2Cu32%29=>i32>~visit + call $~lib/function/Function<%28std/array/Dim%2Cstd/array/Dim%29=>i32>~visit return end local.get $0 @@ -17090,8 +23246,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 30432 - i32.const 30480 + i32.const 30544 + i32.const 30592 i32.const 1 i32.const 1 call $~lib/builtins/abort @@ -17122,7 +23278,7 @@ if i32.const 0 i32.const 528 - i32.const 942 + i32.const 991 i32.const 3 call $~lib/builtins/abort unreachable @@ -17150,19 +23306,579 @@ i32.const 4 i32.le_u drop - i32.const 7312 + i32.const 7376 br $~lib/util/sort/COMPARATOR|inlined.1 end - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $std/array/assertSorted + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $std/array/assertSorted + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) + (func $std/array/assertStableSortedForComplexObjects + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/inputStabArr + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 0 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/array/Array#slice + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.const 7472 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#sort + local.tee $0 + i32.store offset=12 + i32.const 1 + local.set $1 + i32.const 0 + local.set $2 + global.get $std/array/inputStabArr + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + call $~lib/array/Array#get:length + local.set $3 + block $for-break0 + loop $for-loop|0 + local.get $2 + local.get $3 + i32.lt_s + local.set $4 + local.get $4 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.tee $5 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + global.get $std/array/outputStabArr + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $2 + call $~lib/array/Array#__get + local.tee $6 + i32.store offset=20 + local.get $5 + i32.load + local.get $6 + i32.load + i32.ne + if (result i32) + i32.const 1 + else + local.get $5 + i32.load offset=4 + local.get $6 + i32.load offset=4 + i32.ne + end + if + i32.const 0 + local.set $1 + br $for-break0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + end + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 987 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/util/sort/extendRunRight<~lib/array/Array> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer + local.get $8 ) (func $std/array/isSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -17263,7 +23979,7 @@ if i32.const 0 i32.const 528 - i32.const 942 + i32.const 991 i32.const 3 call $~lib/builtins/abort unreachable @@ -17331,6 +24047,223 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/util/sort/extendRunRight> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) (func $std/array/isSorted> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -17430,7 +24363,7 @@ if i32.const 0 i32.const 528 - i32.const 942 + i32.const 991 i32.const 3 call $~lib/builtins/abort unreachable @@ -17440,6 +24373,223 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $~lib/util/sort/extendRunRight<~lib/string/String|null> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) (func $std/array/isSorted<~lib/string/String|null> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -17539,7 +24689,7 @@ if i32.const 0 i32.const 528 - i32.const 942 + i32.const 991 i32.const 3 call $~lib/builtins/abort unreachable @@ -17666,7 +24816,7 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 7824 local.tee $1 i32.store i32.const 0 @@ -17780,6 +24930,223 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/util/sort/extendRunRight<~lib/string/String> (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $7 + i32.store offset=8 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + ) (func $std/array/isSorted<~lib/string/String> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -17879,7 +25246,7 @@ if i32.const 0 i32.const 528 - i32.const 942 + i32.const 991 i32.const 3 call $~lib/builtins/abort unreachable @@ -17916,7 +25283,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -17940,7 +25307,7 @@ local.get $4 call $std/array/Ref#toString else - i32.const 7728 + i32.const 7824 end local.set $9 global.get $~lib/memory/__stack_pointer @@ -17951,7 +25318,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 7824 local.tee $5 i32.store offset=4 local.get $2 @@ -18069,7 +25436,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -18093,7 +25460,7 @@ local.get $4 call $std/array/Ref#toString else - i32.const 7728 + i32.const 7824 end local.set $9 global.get $~lib/memory/__stack_pointer @@ -18104,7 +25471,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 7824 local.tee $5 i32.store offset=4 local.get $2 @@ -18206,7 +25573,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18231,7 +25598,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18256,7 +25623,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18281,7 +25648,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18306,7 +25673,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18331,7 +25698,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18372,7 +25739,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -18396,7 +25763,7 @@ local.get $4 call $~lib/array/Array#toString else - i32.const 7728 + i32.const 7824 end local.set $9 global.get $~lib/memory/__stack_pointer @@ -18407,7 +25774,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 7824 local.tee $5 i32.store offset=4 local.get $2 @@ -18509,7 +25876,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18534,7 +25901,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18575,7 +25942,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -18599,7 +25966,7 @@ local.get $4 call $~lib/array/Array#toString else - i32.const 7728 + i32.const 7824 end local.set $9 global.get $~lib/memory/__stack_pointer @@ -18610,7 +25977,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 7824 local.tee $5 i32.store offset=4 local.get $2 @@ -18712,7 +26079,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18737,7 +26104,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18778,7 +26145,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -18802,7 +26169,7 @@ local.get $4 call $~lib/array/Array#toString else - i32.const 7728 + i32.const 7824 end local.set $9 global.get $~lib/memory/__stack_pointer @@ -18813,7 +26180,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 7824 local.tee $5 i32.store offset=4 local.get $2 @@ -18915,7 +26282,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -18956,7 +26323,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -18980,7 +26347,7 @@ local.get $4 call $~lib/array/Array<~lib/array/Array>#toString else - i32.const 7728 + i32.const 7824 end local.set $9 global.get $~lib/memory/__stack_pointer @@ -18991,7 +26358,7 @@ return end global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 7824 local.tee $5 i32.store offset=4 local.get $2 @@ -19093,7 +26460,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -19125,8 +26492,33 @@ (local $14 i32) (local $15 i32) (local $16 i32) - global.get $~lib/memory/__stack_pointer - i32.const 72 + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + (local $23 i32) + (local $24 i32) + (local $25 i32) + (local $26 i32) + (local $27 i32) + (local $28 i32) + (local $29 i32) + (local $30 i32) + (local $31 i32) + (local $32 i32) + (local $33 i32) + (local $34 i32) + (local $35 i32) + (local $36 i32) + (local $37 i32) + (local $38 i32) + (local $39 i32) + (local $40 i32) + (local $41 i32) + global.get $~lib/memory/__stack_pointer + i32.const 172 i32.sub global.set $~lib/memory/__stack_pointer call $~stack_check @@ -19157,6 +26549,45 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=64 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=72 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=80 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=88 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=96 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=104 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=112 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=120 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=128 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=136 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=144 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=152 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=160 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=168 i32.const 0 i32.const 0 i32.eq @@ -19205,11 +26636,11 @@ i32.const 0 i32.const 0 call $std/array/Ref#constructor - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array.isArray i32.eqz i32.eqz @@ -19224,11 +26655,11 @@ i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#constructor - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> i32.eqz i32.eqz @@ -19253,11 +26684,11 @@ unreachable end i32.const 640 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array.isArray<~lib/string/String> i32.eqz i32.eqz @@ -19270,11 +26701,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array.isArray<~lib/array/Array> i32.eqz if @@ -19305,11 +26736,11 @@ i32.const 6 i32.const 704 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19333,11 +26764,11 @@ i32.const 6 i32.const 736 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19361,11 +26792,11 @@ i32.const 6 i32.const 768 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19389,11 +26820,11 @@ i32.const 6 i32.const 800 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19417,11 +26848,11 @@ i32.const 6 i32.const 832 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19453,11 +26884,11 @@ i32.const 7 i32.const 912 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19481,11 +26912,11 @@ i32.const 7 i32.const 960 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19509,11 +26940,11 @@ i32.const 7 i32.const 1008 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19537,11 +26968,11 @@ i32.const 7 i32.const 1056 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19565,11 +26996,11 @@ i32.const 7 i32.const 1104 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19582,11 +27013,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -19600,11 +27031,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -19618,20 +27049,20 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 42 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -19646,11 +27077,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -19664,11 +27095,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -19682,11 +27113,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop local.set $2 local.get $2 @@ -19702,11 +27133,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -19720,11 +27151,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -19738,20 +27169,20 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 1 i32.eq @@ -19765,11 +27196,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -19783,11 +27214,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19802,20 +27233,20 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 44 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -19829,11 +27260,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -19847,11 +27278,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19866,11 +27297,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19885,20 +27316,20 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 45 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -19912,11 +27343,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -19930,11 +27361,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19949,11 +27380,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19968,11 +27399,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -20103,21 +27534,21 @@ i32.store offset=12 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 local.get $2 call $~lib/array/Array#concat local.tee $0 i32.store offset=16 global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -20131,11 +27562,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -20167,19 +27598,19 @@ i32.const 3 i32.const 1248 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#concat drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -20244,21 +27675,21 @@ drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 local.get $2 call $~lib/array/Array#concat local.tee $0 i32.store offset=16 global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -20407,11 +27838,11 @@ global.get $~lib/memory/__stack_pointer local.get $1 global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#concat local.tee $0 i32.store offset=16 @@ -20454,21 +27885,21 @@ i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 1360 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20493,21 +27924,21 @@ i32.const 3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 1456 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20532,21 +27963,21 @@ i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 1552 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20571,21 +28002,21 @@ i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 1648 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20610,21 +28041,21 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 1744 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20649,21 +28080,21 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 1840 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20688,21 +28119,21 @@ i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 1936 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20727,21 +28158,21 @@ i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 2032 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20766,21 +28197,21 @@ i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 2128 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20805,21 +28236,21 @@ i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 2224 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20844,21 +28275,21 @@ i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 2320 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20883,21 +28314,21 @@ i32.const -3 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#copyWithin - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 2416 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20910,20 +28341,20 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 42 call $~lib/array/Array#unshift drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -20937,11 +28368,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -20955,11 +28386,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20974,11 +28405,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20993,11 +28424,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -21012,11 +28443,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -21031,20 +28462,20 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 41 call $~lib/array/Array#unshift drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 5 i32.eq @@ -21058,11 +28489,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -21076,11 +28507,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -21095,11 +28526,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -21114,11 +28545,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -21133,11 +28564,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -21152,11 +28583,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -21171,11 +28602,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#shift global.set $std/array/i global.get $std/array/i @@ -21191,11 +28622,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -21209,11 +28640,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -21227,11 +28658,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -21246,11 +28677,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -21265,11 +28696,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -21284,11 +28715,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -21303,11 +28734,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -21323,11 +28754,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -21341,11 +28772,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -21359,11 +28790,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -21378,11 +28809,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -21397,11 +28828,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -21436,11 +28867,11 @@ i32.const 3 i32.const 2512 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21465,11 +28896,11 @@ i32.const 3 i32.const 2544 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21494,11 +28925,11 @@ i32.const 3 i32.const 2576 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21543,11 +28974,11 @@ i32.const 3 i32.const 2624 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21572,11 +29003,11 @@ i32.const 3 i32.const 2656 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21601,11 +29032,11 @@ i32.const 3 i32.const 2688 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -21621,11 +29052,11 @@ i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -21642,11 +29073,11 @@ i32.const 10 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#slice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -21660,19 +29091,19 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#reverse drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 3 i32.eq @@ -21686,11 +29117,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -21704,11 +29135,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -21723,11 +29154,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -21742,11 +29173,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -21761,29 +29192,29 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 44 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 44 i32.const 0 call $~lib/array/Array#indexOf @@ -21801,11 +29232,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 42 i32.const 0 call $~lib/array/Array#indexOf @@ -21823,11 +29254,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 45 i32.const 0 call $~lib/array/Array#indexOf @@ -21845,11 +29276,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const 100 call $~lib/array/Array#indexOf @@ -21867,11 +29298,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const -100 call $~lib/array/Array#indexOf @@ -21889,11 +29320,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const -2 call $~lib/array/Array#indexOf @@ -21911,11 +29342,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const -4 call $~lib/array/Array#indexOf @@ -21933,11 +29364,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const 0 call $~lib/array/Array#indexOf @@ -21955,11 +29386,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const 1 call $~lib/array/Array#indexOf @@ -21977,11 +29408,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const 2 call $~lib/array/Array#indexOf @@ -22003,11 +29434,11 @@ i32.const 9 i32.const 2720 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#indexOf @@ -22027,11 +29458,11 @@ i32.const 10 i32.const 2752 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#indexOf @@ -22149,11 +29580,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 44 i32.const 0 call $~lib/array/Array#includes @@ -22171,11 +29602,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 42 i32.const 0 call $~lib/array/Array#includes @@ -22193,11 +29624,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 45 i32.const 0 call $~lib/array/Array#includes @@ -22215,11 +29646,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const 100 call $~lib/array/Array#includes @@ -22237,11 +29668,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const -100 call $~lib/array/Array#includes @@ -22259,11 +29690,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const -2 call $~lib/array/Array#includes @@ -22281,11 +29712,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const -4 call $~lib/array/Array#includes @@ -22303,11 +29734,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const 0 call $~lib/array/Array#includes @@ -22325,11 +29756,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const 1 call $~lib/array/Array#includes @@ -22347,11 +29778,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 43 i32.const 2 call $~lib/array/Array#includes @@ -22373,11 +29804,11 @@ i32.const 9 i32.const 2832 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 f32.const nan:0x400000 i32.const 0 call $~lib/array/Array#includes @@ -22395,11 +29826,11 @@ i32.const 10 i32.const 2864 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 f64.const nan:0x8000000000000 i32.const 0 call $~lib/array/Array#includes @@ -22413,21 +29844,21 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 i32.const 1 call $~lib/array/Array#splice drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 4 i32.eq @@ -22441,11 +29872,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $std/array/internalCapacity i32.const 8 i32.eq @@ -22459,11 +29890,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -22478,11 +29909,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -22508,21 +29939,21 @@ i32.const 0 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5 i32.const 2 i32.const 3 i32.const 2944 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22540,11 +29971,11 @@ i32.const 3 i32.const 2992 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22568,21 +29999,21 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 i32.const 2 i32.const 3 i32.const 3072 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22600,11 +30031,11 @@ i32.const 3 i32.const 3104 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22628,21 +30059,21 @@ i32.const 2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 i32.const 2 i32.const 3 i32.const 3200 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22660,11 +30091,11 @@ i32.const 3 i32.const 3232 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22688,21 +30119,21 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 i32.const 2 i32.const 3 i32.const 3312 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22720,11 +30151,11 @@ i32.const 3 i32.const 3344 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22748,21 +30179,21 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 i32.const 2 i32.const 3 i32.const 3424 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22780,11 +30211,11 @@ i32.const 3 i32.const 3456 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22808,21 +30239,21 @@ i32.const -1 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 i32.const 2 i32.const 3 i32.const 3552 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22840,11 +30271,11 @@ i32.const 3 i32.const 3584 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22868,21 +30299,21 @@ i32.const -2 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 i32.const 2 i32.const 3 i32.const 3680 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22900,11 +30331,11 @@ i32.const 3 i32.const 3712 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22928,21 +30359,21 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 i32.const 2 i32.const 3 i32.const 3792 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22960,11 +30391,11 @@ i32.const 3 i32.const 3824 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22988,21 +30419,21 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 i32.const 2 i32.const 3 i32.const 3920 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23020,11 +30451,11 @@ i32.const 3 i32.const 3952 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23048,21 +30479,21 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 i32.const 2 i32.const 3 i32.const 4048 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23080,11 +30511,11 @@ i32.const 3 i32.const 4080 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23108,21 +30539,21 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 i32.const 2 i32.const 3 i32.const 4176 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23140,11 +30571,11 @@ i32.const 3 i32.const 4208 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23168,21 +30599,21 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 i32.const 2 i32.const 3 i32.const 4304 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23200,11 +30631,11 @@ i32.const 3 i32.const 4336 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23228,21 +30659,21 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 i32.const 2 i32.const 3 i32.const 4432 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23260,11 +30691,11 @@ i32.const 3 i32.const 4464 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23288,21 +30719,21 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 i32.const 2 i32.const 3 i32.const 4560 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23320,11 +30751,11 @@ i32.const 3 i32.const 4592 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -23671,53 +31102,53 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 i32.const 0 call $~lib/array/Array#__set global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 i32.const 1 call $~lib/array/Array#__set global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 i32.const 2 call $~lib/array/Array#__set global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 i32.const 3 call $~lib/array/Array#__set global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 4864 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23733,17 +31164,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 4896 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23759,17 +31190,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 4928 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23785,17 +31216,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 4960 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23811,11 +31242,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -23829,17 +31260,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 4992 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23855,49 +31286,49 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5024 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#findIndex global.set $std/array/i global.get $std/array/i @@ -23913,11 +31344,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -23931,35 +31362,35 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5056 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#every local.set $4 local.get $4 @@ -23975,17 +31406,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5088 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#every local.set $4 local.get $4 @@ -24001,17 +31432,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5120 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#every local.set $4 local.get $4 @@ -24027,11 +31458,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -24045,17 +31476,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5152 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#every local.set $4 local.get $4 @@ -24071,49 +31502,49 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5184 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#every local.set $4 local.get $4 @@ -24129,11 +31560,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -24147,35 +31578,35 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5216 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#some local.set $4 local.get $4 @@ -24191,17 +31622,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5248 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#some local.set $4 local.get $4 @@ -24217,17 +31648,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5280 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#some local.set $4 local.get $4 @@ -24243,11 +31674,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -24261,17 +31692,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5312 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#some local.set $4 local.get $4 @@ -24287,49 +31718,49 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5344 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#some local.set $4 local.get $4 @@ -24345,11 +31776,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -24363,37 +31794,37 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#push drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5376 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 @@ -24410,17 +31841,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5408 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#forEach global.get $std/array/i i32.const 6 @@ -24435,11 +31866,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -24455,17 +31886,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5440 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#forEach global.get $std/array/i i32.const 406 @@ -24480,51 +31911,51 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5472 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#forEach global.get $std/array/i i32.const 1 @@ -24539,11 +31970,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -24557,42 +31988,42 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5504 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#forEach global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 100 i32.eq @@ -24615,11 +32046,11 @@ local.get $3 if global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop local.get $4 @@ -24630,54 +32061,54 @@ end end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5536 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#map local.tee $4 i32.store offset=24 @@ -24698,11 +32129,11 @@ i32.const 0 call $~lib/array/Array#__get global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#__get f32.convert_i32_s @@ -24719,17 +32150,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5568 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#map drop global.get $std/array/i @@ -24745,11 +32176,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -24765,17 +32196,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5600 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#map drop global.get $std/array/i @@ -24791,51 +32222,51 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5632 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#map drop global.get $std/array/i @@ -24851,11 +32282,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -24869,36 +32300,36 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#push drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5664 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#filter local.tee $4 i32.store offset=24 @@ -24918,17 +32349,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5696 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#filter drop global.get $std/array/i @@ -24944,11 +32375,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -24964,17 +32395,17 @@ i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5728 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#filter drop global.get $std/array/i @@ -24990,51 +32421,51 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop i32.const 0 global.set $std/array/i global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5760 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/array/Array#filter drop global.get $std/array/i @@ -25050,11 +32481,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -25068,35 +32499,35 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5792 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -25113,17 +32544,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5824 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 4 call $~lib/array/Array#reduce global.set $std/array/i @@ -25140,17 +32571,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5856 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduce local.set $4 @@ -25169,17 +32600,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5888 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduce local.set $4 @@ -25198,17 +32629,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5920 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -25225,11 +32656,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -25243,17 +32674,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5952 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -25270,49 +32701,49 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 5984 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduce global.set $std/array/i @@ -25329,11 +32760,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 2 i32.eq @@ -25347,35 +32778,35 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 6016 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -25392,17 +32823,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 6048 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 4 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -25419,17 +32850,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 6080 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduceRight local.set $4 @@ -25448,17 +32879,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 6112 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduceRight local.set $4 @@ -25477,17 +32908,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 6144 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -25504,11 +32935,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 8 i32.eq @@ -25522,17 +32953,17 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 6176 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -25549,49 +32980,49 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#pop drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 6208 - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#reduceRight global.set $std/array/i @@ -25608,11 +33039,11 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -25626,38 +33057,38 @@ unreachable end global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 0 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 1 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 2 call $~lib/array/Array#push drop global.get $std/array/arr - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 i32.const 3 call $~lib/array/Array#push drop @@ -25665,7 +33096,397 @@ i64.reinterpret_f64 call $~lib/math/NativeMath.seedRandom global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + i32.const 19 + i32.const 0 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.load offset=4 + local.tee $3 + i32.store offset=20 + local.get $4 + i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $2 + i32.store offset=12 + local.get $2 + i32.const 100 + call $std/array/Dim#set:height + local.get $2 + i32.const 80 + call $std/array/Dim#set:width + local.get $2 + call $~lib/array/Array#__uset + local.get $4 + i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $0 + i32.store offset=16 + local.get $0 + i32.const 90 + call $std/array/Dim#set:height + local.get $0 + i32.const 90 + call $std/array/Dim#set:width + local.get $0 + call $~lib/array/Array#__uset + local.get $4 + i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $1 + i32.store offset=4 + local.get $1 + i32.const 70 + call $std/array/Dim#set:height + local.get $1 + i32.const 95 + call $std/array/Dim#set:width + local.get $1 + call $~lib/array/Array#__uset + local.get $4 + i32.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $5 + i32.store offset=28 + local.get $5 + i32.const 100 + call $std/array/Dim#set:height + local.get $5 + i32.const 100 + call $std/array/Dim#set:width + local.get $5 + call $~lib/array/Array#__uset + local.get $4 + i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $6 + i32.store offset=32 + local.get $6 + i32.const 80 + call $std/array/Dim#set:height + local.get $6 + i32.const 110 + call $std/array/Dim#set:width + local.get $6 + call $~lib/array/Array#__uset + local.get $4 + i32.const 5 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $7 + i32.store offset=36 + local.get $7 + i32.const 110 + call $std/array/Dim#set:height + local.get $7 + i32.const 115 + call $std/array/Dim#set:width + local.get $7 + call $~lib/array/Array#__uset + local.get $4 + i32.const 6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $8 + i32.store offset=40 + local.get $8 + i32.const 100 + call $std/array/Dim#set:height + local.get $8 + i32.const 120 + call $std/array/Dim#set:width + local.get $8 + call $~lib/array/Array#__uset + local.get $4 + i32.const 7 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $9 + i32.store offset=44 + local.get $9 + i32.const 70 + call $std/array/Dim#set:height + local.get $9 + i32.const 125 + call $std/array/Dim#set:width + local.get $9 + call $~lib/array/Array#__uset + local.get $4 + i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $10 + i32.store offset=48 + local.get $10 + i32.const 70 + call $std/array/Dim#set:height + local.get $10 + i32.const 130 + call $std/array/Dim#set:width + local.get $10 + call $~lib/array/Array#__uset + local.get $4 + i32.const 9 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $11 + i32.store offset=52 + local.get $11 + i32.const 100 + call $std/array/Dim#set:height + local.get $11 + i32.const 135 + call $std/array/Dim#set:width + local.get $11 + call $~lib/array/Array#__uset + local.get $4 + i32.const 10 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $12 + i32.store offset=56 + local.get $12 + i32.const 75 + call $std/array/Dim#set:height + local.get $12 + i32.const 140 + call $std/array/Dim#set:width + local.get $12 + call $~lib/array/Array#__uset + local.get $4 + i32.const 11 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $13 + i32.store offset=60 + local.get $13 + i32.const 70 + call $std/array/Dim#set:height + local.get $13 + i32.const 140 + call $std/array/Dim#set:width + local.get $13 + call $~lib/array/Array#__uset + local.get $4 + global.set $std/array/inputStabArr + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 2 + i32.const 19 + i32.const 0 + call $~lib/rt/__newArray + local.tee $3 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.load offset=4 + local.tee $4 + i32.store offset=24 + local.get $3 + i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $14 + i32.store offset=64 + local.get $14 + i32.const 70 + call $std/array/Dim#set:height + local.get $14 + i32.const 95 + call $std/array/Dim#set:width + local.get $14 + call $~lib/array/Array#__uset + local.get $3 + i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $15 + i32.store offset=68 + local.get $15 + i32.const 70 + call $std/array/Dim#set:height + local.get $15 + i32.const 125 + call $std/array/Dim#set:width + local.get $15 + call $~lib/array/Array#__uset + local.get $3 + i32.const 2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $16 + i32.store offset=72 + local.get $16 + i32.const 70 + call $std/array/Dim#set:height + local.get $16 + i32.const 130 + call $std/array/Dim#set:width + local.get $16 + call $~lib/array/Array#__uset + local.get $3 + i32.const 3 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $17 + i32.store offset=76 + local.get $17 + i32.const 70 + call $std/array/Dim#set:height + local.get $17 + i32.const 140 + call $std/array/Dim#set:width + local.get $17 + call $~lib/array/Array#__uset + local.get $3 + i32.const 4 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $18 + i32.store offset=80 + local.get $18 + i32.const 75 + call $std/array/Dim#set:height + local.get $18 + i32.const 140 + call $std/array/Dim#set:width + local.get $18 + call $~lib/array/Array#__uset + local.get $3 + i32.const 5 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $19 + i32.store offset=84 + local.get $19 + i32.const 80 + call $std/array/Dim#set:height + local.get $19 + i32.const 110 + call $std/array/Dim#set:width + local.get $19 + call $~lib/array/Array#__uset + local.get $3 + i32.const 6 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $20 + i32.store offset=88 + local.get $20 + i32.const 90 + call $std/array/Dim#set:height + local.get $20 + i32.const 90 + call $std/array/Dim#set:width + local.get $20 + call $~lib/array/Array#__uset + local.get $3 + i32.const 7 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $21 + i32.store offset=92 + local.get $21 + i32.const 100 + call $std/array/Dim#set:height + local.get $21 + i32.const 80 + call $std/array/Dim#set:width + local.get $21 + call $~lib/array/Array#__uset + local.get $3 i32.const 8 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $22 + i32.store offset=96 + local.get $22 + i32.const 100 + call $std/array/Dim#set:height + local.get $22 + i32.const 100 + call $std/array/Dim#set:width + local.get $22 + call $~lib/array/Array#__uset + local.get $3 + i32.const 9 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $23 + i32.store offset=100 + local.get $23 + i32.const 100 + call $std/array/Dim#set:height + local.get $23 + i32.const 120 + call $std/array/Dim#set:width + local.get $23 + call $~lib/array/Array#__uset + local.get $3 + i32.const 10 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $24 + i32.store offset=104 + local.get $24 + i32.const 100 + call $std/array/Dim#set:height + local.get $24 + i32.const 135 + call $std/array/Dim#set:width + local.get $24 + call $~lib/array/Array#__uset + local.get $3 + i32.const 11 + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $std/array/Dim#constructor + local.tee $25 + i32.store offset=108 + local.get $25 + i32.const 110 + call $std/array/Dim#set:height + local.get $25 + i32.const 115 + call $std/array/Dim#set:width + local.get $25 + call $~lib/array/Array#__uset + local.get $3 + global.set $std/array/outputStabArr + global.get $~lib/memory/__stack_pointer + i32.const 3 i32.const 2 i32.const 9 i32.const 6480 @@ -25679,23 +33500,59 @@ call $~lib/array/Array#sort@varargs drop local.get $3 + i32.const 3 + i32.const 2 + i32.const 9 + i32.const 6544 + call $~lib/rt/__newArray + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=8 + local.get $41 + i32.const 0 + call $std/array/isArraysEqual + i32.eqz + if + i32.const 0 + i32.const 528 + i32.const 1002 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 i32.const 9 i32.const 6576 call $~lib/rt/__newArray - local.set $16 + local.tee $4 + i32.store offset=24 + local.get $4 + i32.const 0 + global.set $~argumentsLength + i32.const 0 + call $~lib/array/Array#sort@varargs + drop + local.get $4 + i32.const 8 + i32.const 2 + i32.const 9 + i32.const 6640 + call $~lib/rt/__newArray + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 953 + i32.const 1006 i32.const 3 call $~lib/builtins/abort unreachable @@ -25704,34 +33561,34 @@ i32.const 8 i32.const 3 i32.const 10 - i32.const 6640 + i32.const 6704 call $~lib/rt/__newArray - local.tee $4 - i32.store offset=24 - local.get $4 + local.tee $26 + i32.store offset=112 + local.get $26 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $4 + local.get $26 i32.const 8 i32.const 3 i32.const 10 - i32.const 6768 + i32.const 6832 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 957 + i32.const 1010 i32.const 3 call $~lib/builtins/abort unreachable @@ -25740,34 +33597,34 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 6864 + i32.const 6928 call $~lib/rt/__newArray - local.tee $2 - i32.store offset=12 - local.get $2 + local.tee $27 + i32.store offset=116 + local.get $27 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $2 + local.get $27 i32.const 5 i32.const 2 i32.const 3 - i32.const 6944 + i32.const 7008 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 961 + i32.const 1014 i32.const 3 call $~lib/builtins/abort unreachable @@ -25776,34 +33633,34 @@ i32.const 5 i32.const 2 i32.const 7 - i32.const 6992 + i32.const 7056 call $~lib/rt/__newArray - local.tee $0 - i32.store offset=16 - local.get $0 + local.tee $28 + i32.store offset=120 + local.get $28 i32.const 0 global.set $~argumentsLength i32.const 0 call $~lib/array/Array#sort@varargs drop - local.get $0 + local.get $28 i32.const 5 i32.const 2 i32.const 7 - i32.const 7072 + i32.const 7136 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 965 + i32.const 1018 i32.const 3 call $~lib/builtins/abort unreachable @@ -25812,292 +33669,293 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 7120 + i32.const 7184 call $~lib/rt/__newArray - local.tee $1 - i32.store offset=4 + local.tee $29 + i32.store offset=124 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 3 - i32.const 7152 + i32.const 7216 call $~lib/rt/__newArray - local.tee $6 - i32.store offset=32 + local.tee $31 + i32.store offset=128 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 3 - i32.const 7184 + i32.const 7248 call $~lib/rt/__newArray - local.tee $7 - i32.store offset=36 + local.tee $32 + i32.store offset=132 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 3 - i32.const 7216 + i32.const 7280 call $~lib/rt/__newArray - local.tee $8 - i32.store offset=40 + local.tee $33 + i32.store offset=136 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 3 - i32.const 7264 + i32.const 7328 call $~lib/rt/__newArray - local.tee $9 - i32.store offset=44 + local.tee $34 + i32.store offset=140 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $5 - i32.store offset=28 + local.tee $30 + i32.store offset=144 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $10 - i32.store offset=48 + local.tee $35 + i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $11 - i32.store offset=52 + local.tee $36 + i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $12 - i32.store offset=56 + local.tee $37 + i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $13 - i32.store offset=60 - local.get $1 + local.tee $38 + i32.store offset=160 + local.get $29 call $std/array/assertSortedDefault - local.get $6 + local.get $31 call $std/array/assertSortedDefault - local.get $6 + local.get $31 i32.const 1 i32.const 2 i32.const 3 - i32.const 7344 + i32.const 7408 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 985 + i32.const 1038 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $7 + local.get $32 call $std/array/assertSortedDefault - local.get $7 + local.get $32 i32.const 2 i32.const 2 i32.const 3 - i32.const 7376 + i32.const 7440 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 988 + i32.const 1041 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $8 + local.get $33 call $std/array/assertSortedDefault - local.get $8 - local.get $9 + local.get $33 + local.get $34 i32.const 0 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 991 + i32.const 1044 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $5 + local.get $30 call $std/array/assertSortedDefault - local.get $5 - local.get $9 + local.get $30 + local.get $34 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 994 + i32.const 1047 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $10 + local.get $35 call $std/array/assertSortedDefault - local.get $10 - local.get $9 + local.get $35 + local.get $34 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 997 + i32.const 1050 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $11 + local.get $36 call $std/array/assertSortedDefault - local.get $11 - local.get $9 + local.get $36 + local.get $34 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 1000 + i32.const 1053 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $12 + local.get $37 call $std/array/assertSortedDefault - local.get $12 - local.get $9 + local.get $37 + local.get $34 i32.const 4 call $std/array/isArraysEqual i32.eqz if i32.const 0 i32.const 528 - i32.const 1003 + i32.const 1056 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $13 + local.get $38 call $std/array/assertSortedDefault + call $std/array/assertStableSortedForComplexObjects global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createRandomOrderedArray - local.tee $13 - i32.store offset=60 + local.tee $38 + i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 257 call $std/array/createRandomOrderedArray - local.tee $12 - i32.store offset=56 - local.get $13 - i32.const 7408 - local.set $16 + local.tee $37 + i32.store offset=156 + local.get $38 + i32.const 7504 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $std/array/assertSorted - local.get $13 - i32.const 7440 - local.set $16 + local.get $38 + i32.const 7536 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $std/array/assertSorted - local.get $12 - i32.const 7472 - local.set $16 + local.get $37 + i32.const 7568 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $std/array/assertSorted - local.get $12 - i32.const 7504 - local.set $16 + local.get $37 + i32.const 7600 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer i32.const 2 call $std/array/createReverseOrderedNestedArray - local.tee $12 - i32.store offset=56 - local.get $12 - i32.const 7536 - local.set $16 + local.tee $37 + i32.store offset=156 + local.get $37 + i32.const 7632 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createReverseOrderedElementsArray - local.tee $12 - i32.store offset=56 - local.get $12 - i32.const 7568 - local.set $16 + local.tee $37 + i32.store offset=156 + local.get $37 + i32.const 7664 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $std/array/assertSorted> global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 - i32.const 27 - i32.const 7760 + i32.const 30 + i32.const 7856 call $~lib/rt/__newArray - local.tee $13 - i32.store offset=60 + local.tee $38 + i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 - i32.const 27 - i32.const 7808 + i32.const 30 + i32.const 7904 call $~lib/rt/__newArray - local.tee $11 - i32.store offset=52 - local.get $13 + local.tee $36 + i32.store offset=152 + local.get $38 i32.const 1 global.set $~argumentsLength i32.const 0 call $std/array/assertSorted<~lib/string/String|null>@varargs - local.get $13 - local.get $11 + local.get $38 + local.get $36 i32.const 0 call $std/array/isArraysEqual<~lib/string/String|null> i32.eqz if i32.const 0 i32.const 528 - i32.const 1040 + i32.const 1095 i32.const 3 call $~lib/builtins/abort unreachable @@ -26105,47 +33963,47 @@ global.get $~lib/memory/__stack_pointer i32.const 400 call $std/array/createRandomStringArray - local.tee $12 - i32.store offset=56 - local.get $12 + local.tee $37 + i32.store offset=156 + local.get $37 i32.const 1 global.set $~argumentsLength i32.const 0 call $std/array/assertSorted<~lib/string/String>@varargs i32.const 2 i32.const 0 - i32.const 31 - i32.const 7920 + i32.const 34 + i32.const 8016 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 - i32.const 8016 - local.set $16 + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 8112 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=68 - local.get $16 + local.get $41 + i32.store offset=168 + local.get $41 call $~lib/array/Array#join - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 8048 - local.set $16 + local.get $41 + i32.const 8144 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1049 + i32.const 1104 i32.const 3 call $~lib/builtins/abort unreachable @@ -26153,37 +34011,37 @@ i32.const 3 i32.const 2 i32.const 3 - i32.const 8096 + i32.const 8192 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 - i32.const 7728 - local.set $16 + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 7824 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=68 - local.get $16 + local.get $41 + i32.store offset=168 + local.get $41 call $~lib/array/Array#join - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 9904 - local.set $16 + local.get $41 + i32.const 10000 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1050 + i32.const 1105 i32.const 3 call $~lib/builtins/abort unreachable @@ -26191,37 +34049,37 @@ i32.const 3 i32.const 2 i32.const 7 - i32.const 9936 + i32.const 10032 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 - i32.const 9968 - local.set $16 + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 10064 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=68 - local.get $16 + local.get $41 + i32.store offset=168 + local.get $41 call $~lib/array/Array#join - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 9904 - local.set $16 + local.get $41 + i32.const 10000 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1051 + i32.const 1106 i32.const 3 call $~lib/builtins/abort unreachable @@ -26229,37 +34087,37 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 10000 + i32.const 10096 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 - i32.const 10032 - local.set $16 + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 10128 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=68 - local.get $16 + local.get $41 + i32.store offset=168 + local.get $41 call $~lib/array/Array#join - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 10064 - local.set $16 + local.get $41 + i32.const 10160 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1052 + i32.const 1107 i32.const 3 call $~lib/builtins/abort unreachable @@ -26267,75 +34125,75 @@ i32.const 6 i32.const 3 i32.const 10 - i32.const 10144 + i32.const 10240 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 - i32.const 10224 - local.set $16 + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 10320 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=68 - local.get $16 + local.get $41 + i32.store offset=168 + local.get $41 call $~lib/array/Array#join - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 11392 - local.set $16 + local.get $41 + i32.const 11488 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1053 + i32.const 1108 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 3 i32.const 2 - i32.const 27 - i32.const 11536 + i32.const 30 + i32.const 11632 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 - i32.const 7728 - local.set $16 + local.get $41 + i32.store offset=164 + local.get $41 + i32.const 7824 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=68 - local.get $16 + local.get $41 + i32.store offset=168 + local.get $41 call $~lib/array/Array<~lib/string/String|null>#join - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 11504 - local.set $16 + local.get $41 + i32.const 11600 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1054 + i32.const 1109 i32.const 3 call $~lib/builtins/abort unreachable @@ -26347,57 +34205,57 @@ i32.const 11 i32.const 0 call $~lib/rt/__newArray - local.tee $12 - i32.store offset=56 + local.tee $37 + i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $37 i32.load offset=4 - local.tee $11 - i32.store offset=52 - local.get $12 + local.tee $36 + i32.store offset=152 + local.get $37 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $12 + local.get $37 i32.const 1 i32.const 0 call $~lib/array/Array#__uset - local.get $12 + local.get $37 i32.const 2 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $12 - local.tee $11 - i32.store offset=52 - local.get $11 - i32.const 8016 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=68 - local.get $16 + local.get $37 + local.tee $36 + i32.store offset=152 + local.get $36 + i32.const 8112 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 call $~lib/array/Array#join - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 11632 - local.set $16 + local.get $41 + i32.const 11728 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1056 + i32.const 1111 i32.const 3 call $~lib/builtins/abort unreachable @@ -26409,53 +34267,53 @@ i32.const 8 i32.const 0 call $~lib/rt/__newArray - local.tee $12 - i32.store offset=56 + local.tee $37 + i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $37 i32.load offset=4 - local.tee $13 - i32.store offset=60 - local.get $12 + local.tee $38 + i32.store offset=160 + local.get $37 i32.const 0 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $12 + local.get $37 i32.const 1 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__uset - local.get $12 - local.tee $13 - i32.store offset=60 - local.get $13 - i32.const 8016 - local.set $16 - global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=68 - local.get $16 + local.get $37 + local.tee $38 + i32.store offset=160 + local.get $38 + i32.const 8112 + local.set $41 + global.get $~lib/memory/__stack_pointer + local.get $41 + i32.store offset=168 + local.get $41 call $~lib/array/Array#join - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 11728 - local.set $16 + local.get $41 + i32.const 11824 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1059 + i32.const 1114 i32.const 3 call $~lib/builtins/abort unreachable @@ -26464,250 +34322,250 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 11824 + i32.const 11920 call $~lib/rt/__newArray - local.tee $11 - i32.store offset=52 + local.tee $36 + i32.store offset=152 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 i32.const 3 - i32.const 11856 + i32.const 11952 call $~lib/rt/__newArray - local.tee $12 - i32.store offset=56 + local.tee $37 + i32.store offset=156 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 3 - i32.const 11888 + i32.const 11984 call $~lib/rt/__newArray - local.tee $10 - i32.store offset=48 + local.tee $35 + i32.store offset=148 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 i32.const 3 - i32.const 11920 + i32.const 12016 call $~lib/rt/__newArray - local.tee $5 - i32.store offset=28 - local.get $11 + local.tee $30 + i32.store offset=144 + local.get $36 call $~lib/array/Array#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 7728 - local.set $16 + local.get $41 + i32.const 7824 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1069 + i32.const 1124 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $12 + local.get $37 call $~lib/array/Array#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 11504 - local.set $16 + local.get $41 + i32.const 11600 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1070 + i32.const 1125 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $10 + local.get $35 call $~lib/array/Array#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 11968 - local.set $16 + local.get $41 + i32.const 12064 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1071 + i32.const 1126 i32.const 3 call $~lib/builtins/abort unreachable end - local.get $5 + local.get $30 call $~lib/array/Array#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 12000 - local.set $16 + local.get $41 + i32.const 12096 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1072 + i32.const 1127 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 3 i32.const 0 - i32.const 32 - i32.const 12048 + i32.const 35 + i32.const 12144 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 + local.get $41 + i32.store offset=164 + local.get $41 call $~lib/array/Array#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 12080 - local.set $16 + local.get $41 + i32.const 12176 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1074 + i32.const 1129 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 3 i32.const 1 - i32.const 33 - i32.const 12112 + i32.const 36 + i32.const 12208 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 + local.get $41 + i32.store offset=164 + local.get $41 call $~lib/array/Array#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 12144 - local.set $16 + local.get $41 + i32.const 12240 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1075 + i32.const 1130 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 3 i32.const 3 - i32.const 34 - i32.const 12192 + i32.const 37 + i32.const 12288 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 + local.get $41 + i32.store offset=164 + local.get $41 call $~lib/array/Array#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 12240 - local.set $16 + local.get $41 + i32.const 12336 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1076 + i32.const 1131 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 4 i32.const 3 - i32.const 35 - i32.const 12320 + i32.const 38 + i32.const 12416 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 + local.get $41 + i32.store offset=164 + local.get $41 call $~lib/array/Array#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 12384 - local.set $16 + local.get $41 + i32.const 12480 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1077 + i32.const 1132 i32.const 3 call $~lib/builtins/abort unreachable @@ -26715,62 +34573,62 @@ global.get $~lib/memory/__stack_pointer i32.const 7 i32.const 2 - i32.const 27 - i32.const 12496 + i32.const 30 + i32.const 12592 call $~lib/rt/__newArray - local.tee $9 - i32.store offset=44 - local.get $9 + local.tee $34 + i32.store offset=140 + local.get $34 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 12544 - local.set $16 + local.get $41 + i32.const 12640 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1081 + i32.const 1136 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 4 i32.const 2 - i32.const 27 - i32.const 12656 + i32.const 30 + i32.const 12752 call $~lib/rt/__newArray - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 - i32.store offset=64 - local.get $16 + local.get $41 + i32.store offset=164 + local.get $41 call $~lib/array/Array<~lib/string/String|null>#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 12704 - local.set $16 + local.get $41 + i32.const 12800 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1082 + i32.const 1137 i32.const 3 call $~lib/builtins/abort unreachable @@ -26779,54 +34637,54 @@ global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 - i32.const 22 + i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $8 - i32.store offset=40 + local.tee $33 + i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $33 i32.load offset=4 - local.tee $13 - i32.store offset=60 - local.get $8 + local.tee $38 + i32.store offset=160 + local.get $33 i32.const 0 i32.const 2 i32.const 2 i32.const 3 - i32.const 12736 + i32.const 12832 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $8 + local.get $33 i32.const 1 i32.const 2 i32.const 2 i32.const 3 - i32.const 12768 + i32.const 12864 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $8 - local.tee $13 - i32.store offset=60 - local.get $13 + local.get $33 + local.tee $38 + i32.store offset=160 + local.get $38 call $~lib/array/Array<~lib/array/Array>#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 12800 - local.set $16 + local.get $41 + i32.const 12896 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1085 + i32.const 1140 i32.const 3 call $~lib/builtins/abort unreachable @@ -26835,54 +34693,54 @@ global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 - i32.const 36 + i32.const 39 i32.const 0 call $~lib/rt/__newArray - local.tee $8 - i32.store offset=40 + local.tee $33 + i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $33 i32.load offset=4 - local.tee $7 - i32.store offset=36 - local.get $8 + local.tee $32 + i32.store offset=132 + local.get $33 i32.const 0 i32.const 2 i32.const 0 i32.const 6 - i32.const 12848 + i32.const 12944 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $8 + local.get $33 i32.const 1 i32.const 2 i32.const 0 i32.const 6 - i32.const 12880 + i32.const 12976 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $8 - local.tee $7 - i32.store offset=36 - local.get $7 + local.get $33 + local.tee $32 + i32.store offset=132 + local.get $32 call $~lib/array/Array<~lib/array/Array>#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 12800 - local.set $16 + local.get $41 + i32.const 12896 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1088 + i32.const 1143 i32.const 3 call $~lib/builtins/abort unreachable @@ -26891,63 +34749,63 @@ global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 - i32.const 38 + i32.const 41 i32.const 0 call $~lib/rt/__newArray - local.tee $8 - i32.store offset=40 + local.tee $33 + i32.store offset=136 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $33 i32.load offset=4 - local.tee $6 - i32.store offset=32 - local.get $8 + local.tee $31 + i32.store offset=128 + local.get $33 i32.const 0 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 - i32.const 37 + i32.const 40 i32.const 0 call $~lib/rt/__newArray - local.tee $1 - i32.store offset=4 + local.tee $29 + i32.store offset=124 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $29 i32.load offset=4 - local.tee $0 - i32.store offset=16 - local.get $1 + local.tee $28 + i32.store offset=120 + local.get $29 i32.const 0 i32.const 1 i32.const 2 i32.const 7 - i32.const 12912 + i32.const 13008 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $1 + local.get $29 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__uset - local.get $8 - local.tee $6 - i32.store offset=32 - local.get $6 + local.get $33 + local.tee $31 + i32.store offset=128 + local.get $31 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - i32.const 11504 - local.set $16 + local.get $41 + i32.const 11600 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1091 + i32.const 1146 i32.const 3 call $~lib/builtins/abort unreachable @@ -26956,57 +34814,57 @@ global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 - i32.const 22 + i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $6 - i32.store offset=32 + local.tee $31 + i32.store offset=128 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $31 i32.load offset=4 - local.tee $7 - i32.store offset=36 - local.get $6 + local.tee $32 + i32.store offset=132 + local.get $31 i32.const 0 i32.const 1 i32.const 2 i32.const 3 - i32.const 12944 + i32.const 13040 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $6 + local.get $31 i32.const 1 i32.const 3 i32.const 2 i32.const 3 - i32.const 12976 + i32.const 13072 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $6 + local.get $31 i32.const 2 i32.const 3 i32.const 2 i32.const 3 - i32.const 13008 + i32.const 13104 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $6 + local.get $31 i32.const 3 i32.const 3 i32.const 2 i32.const 3 - i32.const 13040 + i32.const 13136 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $6 - local.tee $7 - i32.store offset=36 + local.get $31 + local.tee $32 + i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $32 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $6 - i32.store offset=32 - local.get $6 + local.tee $31 + i32.store offset=128 + local.get $31 call $~lib/array/Array#get:length i32.const 10 i32.eq @@ -27014,38 +34872,38 @@ if i32.const 0 i32.const 528 - i32.const 1098 + i32.const 1153 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - local.set $13 + local.set $38 loop $for-loop|1 - local.get $13 + local.get $38 i32.const 10 i32.lt_s - local.set $9 - local.get $9 + local.set $34 + local.get $34 if - local.get $6 - local.get $13 + local.get $31 + local.get $38 call $~lib/array/Array#__get - local.get $13 + local.get $38 i32.eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1100 + i32.const 1155 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $13 + local.get $38 i32.const 1 i32.add - local.set $13 + local.set $38 br $for-loop|1 end end @@ -27053,65 +34911,65 @@ global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 - i32.const 39 + i32.const 42 i32.const 0 call $~lib/rt/__newArray - local.tee $13 - i32.store offset=60 + local.tee $38 + i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $38 i32.load offset=4 - local.tee $9 - i32.store offset=44 - local.get $13 + local.tee $34 + i32.store offset=140 + local.get $38 i32.const 0 i32.const 1 i32.const 2 - i32.const 27 - i32.const 13104 + i32.const 30 + i32.const 13200 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset - local.get $13 + local.get $38 i32.const 1 i32.const 3 i32.const 2 - i32.const 27 - i32.const 13200 + i32.const 30 + i32.const 13296 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset - local.get $13 + local.get $38 i32.const 2 i32.const 3 i32.const 2 - i32.const 27 - i32.const 13328 + i32.const 30 + i32.const 13424 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset - local.get $13 + local.get $38 i32.const 3 i32.const 1 i32.const 2 - i32.const 27 - i32.const 13392 + i32.const 30 + i32.const 13488 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#__uset - local.get $13 - local.tee $9 - i32.store offset=44 + local.get $38 + local.tee $34 + i32.store offset=140 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $34 call $~lib/array/Array<~lib/array/Array<~lib/string/String|null>>#flat - local.tee $13 - i32.store offset=60 + local.tee $38 + i32.store offset=160 global.get $~lib/memory/__stack_pointer i32.const 8 i32.const 2 - i32.const 27 - i32.const 13424 + i32.const 30 + i32.const 13520 call $~lib/rt/__newArray - local.tee $10 - i32.store offset=48 - local.get $13 + local.tee $35 + i32.store offset=148 + local.get $38 call $~lib/array/Array<~lib/string/String|null>#get:length i32.const 8 i32.eq @@ -27119,51 +34977,51 @@ if i32.const 0 i32.const 528 - i32.const 1106 + i32.const 1161 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 - local.set $5 + local.set $30 loop $for-loop|2 - local.get $5 - local.get $10 + local.get $30 + local.get $35 call $~lib/array/Array<~lib/string/String|null>#get:length i32.lt_s - local.set $12 - local.get $12 + local.set $37 + local.get $37 if - local.get $13 - local.get $5 + local.get $38 + local.get $30 call $~lib/array/Array<~lib/string/String|null>#__get - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 - local.get $10 - local.get $5 + local.get $41 + local.get $35 + local.get $30 call $~lib/array/Array<~lib/string/String|null>#__get - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store offset=8 - local.get $16 + local.get $41 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 528 - i32.const 1108 + i32.const 1163 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $5 + local.get $30 i32.const 1 i32.add - local.set $5 + local.set $30 br $for-loop|2 end end @@ -27171,42 +35029,42 @@ global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 - i32.const 22 + i32.const 25 i32.const 0 call $~lib/rt/__newArray - local.tee $5 - i32.store offset=28 + local.tee $30 + i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $30 i32.load offset=4 - local.tee $12 - i32.store offset=56 - local.get $5 + local.tee $37 + i32.store offset=156 + local.get $30 i32.const 0 i32.const 0 i32.const 2 i32.const 3 - i32.const 13488 + i32.const 13584 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $5 + local.get $30 i32.const 1 i32.const 0 i32.const 2 i32.const 3 - i32.const 13520 + i32.const 13616 call $~lib/rt/__newArray call $~lib/array/Array<~lib/array/Array>#__uset - local.get $5 - local.tee $12 - i32.store offset=56 - local.get $12 + local.get $30 + local.tee $37 + i32.store offset=156 + local.get $37 call $~lib/array/Array<~lib/array/Array>#flat - local.set $16 + local.set $41 global.get $~lib/memory/__stack_pointer - local.get $16 + local.get $41 i32.store - local.get $16 + local.get $41 call $~lib/array/Array#get:length i32.const 0 i32.eq @@ -27214,18 +35072,22 @@ if i32.const 0 i32.const 528 - i32.const 1112 + i32.const 1167 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 global.set $std/array/arr + i32.const 0 + global.set $std/array/inputStabArr + i32.const 0 + global.set $std/array/outputStabArr global.get $~lib/memory/__heap_base global.set $~lib/memory/__stack_pointer call $~lib/rt/itcms/__collect global.get $~lib/memory/__stack_pointer - i32.const 72 + i32.const 172 i32.add global.set $~lib/memory/__stack_pointer ) @@ -27737,7 +35599,7 @@ i32.const 0 i32.store local.get $0 - i32.const 8016 + i32.const 8112 local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 @@ -28983,6 +36845,40 @@ global.set $~lib/memory/__stack_pointer local.get $7 ) + (func $std/array/Dim#constructor (param $0 i32) (result i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + local.get $0 + i32.const 0 + call $std/array/Dim#set:height + local.get $0 + i32.const 0 + call $std/array/Dim#set:width + local.get $0 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + ) (func $~lib/array/Array#sort@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) global.get $~lib/memory/__stack_pointer @@ -29011,7 +36907,7 @@ i32.const 4 i32.eq drop - i32.const 6544 + i32.const 6512 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $1 @@ -29055,7 +36951,7 @@ i32.const 4 i32.eq drop - i32.const 6736 + i32.const 6800 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $1 @@ -29097,7 +36993,7 @@ i32.const 4 i32.le_u drop - i32.const 6912 + i32.const 6976 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $1 @@ -29137,7 +37033,7 @@ drop i32.const 0 drop - i32.const 7040 + i32.const 7104 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $1 @@ -29255,6 +37151,206 @@ global.set $~lib/memory/__stack_pointer local.get $4 ) + (func $~lib/array/Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result 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 $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + i32.load offset=12 + local.set $3 + local.get $1 + i32.const 0 + i32.lt_s + if (result i32) + local.get $1 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $1 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $1 + local.get $2 + i32.const 0 + i32.lt_s + if (result i32) + local.get $2 + local.get $3 + i32.add + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + else + local.get $2 + local.tee $5 + local.get $3 + local.tee $4 + local.get $5 + local.get $4 + i32.lt_s + select + end + local.set $2 + local.get $2 + local.get $1 + i32.sub + local.tee $4 + i32.const 0 + local.tee $5 + local.get $4 + local.get $5 + i32.gt_s + select + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 2 + i32.const 19 + i32.const 0 + call $~lib/rt/__newArray + local.tee $6 + i32.store + local.get $6 + i32.load offset=4 + local.set $7 + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.set $8 + i32.const 1 + drop + i32.const 0 + local.set $4 + local.get $3 + i32.const 2 + i32.shl + local.set $5 + loop $while-continue|0 + local.get $4 + local.get $5 + i32.lt_u + local.set $9 + local.get $9 + if + local.get $8 + local.get $4 + i32.add + i32.load + local.set $10 + local.get $7 + local.get $4 + i32.add + local.get $10 + i32.store + local.get $6 + local.get $10 + i32.const 1 + call $~lib/rt/itcms/__link + local.get $4 + i32.const 4 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $6 + local.set $11 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $11 + ) + (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + i32.const 320 + i32.const 80 + i32.const 99 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $2 + i32.store + i32.const 1 + drop + i32.const 0 + i32.eqz + drop + local.get $2 + i32.eqz + if + i32.const 4672 + i32.const 80 + i32.const 103 + i32.const 40 + call $~lib/builtins/abort + unreachable + end + local.get $2 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + ) (func $~lib/array/Array<~lib/array/Array>#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -29274,7 +37370,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 22 + i32.const 25 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -29407,100 +37503,6 @@ global.set $~lib/memory/__stack_pointer local.get $5 ) - (func $~lib/array/Array<~lib/array/Array>#sort (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) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load - local.tee $5 - i32.store offset=4 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $3 - local.set $6 - local.get $2 - local.set $5 - local.get $1 - local.set $4 - i32.const 1 - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/insertionSort<~lib/array/Array> - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) (func $~lib/array/Array<~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -29576,7 +37578,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 25 + i32.const 28 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -29662,7 +37664,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 24 + i32.const 27 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -29678,100 +37680,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 ) - (func $~lib/array/Array>#sort (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) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load - local.tee $5 - i32.store offset=4 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $3 - local.set $6 - local.get $2 - local.set $5 - local.get $1 - local.set $4 - i32.const 1 - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/insertionSort> - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) (func $~lib/array/Array>#__get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -29828,100 +37736,6 @@ global.set $~lib/memory/__stack_pointer local.get $3 ) - (func $~lib/array/Array<~lib/string/String|null>#sort (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) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load - local.tee $5 - i32.store offset=4 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $3 - local.set $6 - local.get $2 - local.set $5 - local.get $1 - local.set $4 - i32.const 1 - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/insertionSort<~lib/string/String|null> - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) (func $~lib/array/Array<~lib/string/String|null>#__get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -29987,7 +37801,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 29 + i32.const 32 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -30074,7 +37888,7 @@ call $~lib/string/String#get:length i32.ge_u if - i32.const 7728 + i32.const 7824 local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -30137,7 +37951,7 @@ i32.const 0 i32.eq if - i32.const 7728 + i32.const 7824 local.set $6 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -30170,100 +37984,6 @@ global.set $~lib/memory/__stack_pointer local.get $6 ) - (func $~lib/array/Array<~lib/string/String>#sort (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) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=12 - local.set $2 - local.get $2 - i32.const 1 - i32.le_s - if - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $0 - i32.load offset=4 - local.set $3 - local.get $2 - i32.const 2 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load - local.tee $5 - i32.store offset=4 - local.get $4 - local.get $5 - i32.const 2 - global.set $~argumentsLength - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $3 - local.get $5 - i32.store offset=4 - local.get $3 - local.get $4 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $3 - local.set $6 - local.get $2 - local.set $5 - local.get $1 - local.set $4 - i32.const 1 - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/sort/insertionSort<~lib/string/String> - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) @@ -30403,7 +38123,7 @@ local.get $10 i32.eqz if - i32.const 7728 + i32.const 7824 local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -30481,7 +38201,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $13 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -30493,8 +38213,8 @@ local.get $3 i32.eqz if - i32.const 7952 - i32.const 7984 + i32.const 8048 + i32.const 8080 local.get $0 i32.load8_u select @@ -30553,8 +38273,8 @@ i32.const 1 i32.shl i32.add - i32.const 7952 - i32.const 7984 + i32.const 8048 + i32.const 8080 local.get $9 select local.get $5 @@ -30604,8 +38324,8 @@ i32.const 1 i32.shl i32.add - i32.const 7952 - i32.const 7984 + i32.const 8048 + i32.const 8080 local.get $9 select local.get $5 @@ -30667,8 +38387,8 @@ i32.gt_s end if - i32.const 8128 - i32.const 8256 + i32.const 8224 + i32.const 8352 i32.const 373 i32.const 5 call $~lib/builtins/abort @@ -30677,7 +38397,7 @@ local.get $0 i32.eqz if - i32.const 8320 + i32.const 8416 local.set $8 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -30833,7 +38553,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31003,8 +38723,8 @@ i32.gt_s end if - i32.const 8128 - i32.const 8256 + i32.const 8224 + i32.const 8352 i32.const 350 i32.const 5 call $~lib/builtins/abort @@ -31013,7 +38733,7 @@ local.get $0 i32.eqz if - i32.const 8320 + i32.const 8416 local.set $7 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31144,7 +38864,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31304,7 +39024,7 @@ f64.const 0 f64.eq if - i32.const 10256 + i32.const 10352 local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31324,7 +39044,7 @@ local.get $0 f64.ne if - i32.const 10288 + i32.const 10384 local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31333,8 +39053,8 @@ local.get $3 return end - i32.const 10320 - i32.const 10368 + i32.const 10416 + i32.const 10464 local.get $0 f64.const 0 f64.lt @@ -31347,7 +39067,7 @@ local.get $3 return end - i32.const 10400 + i32.const 10496 local.get $0 call $~lib/util/number/dtoa_core i32.const 1 @@ -31360,7 +39080,7 @@ local.tee $2 i32.store local.get $2 - i32.const 10400 + i32.const 10496 local.get $1 call $~lib/memory/memory.copy local.get $2 @@ -31397,7 +39117,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31562,7 +39282,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $12 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -31583,7 +39303,7 @@ if (result i32) local.get $4 else - i32.const 7728 + i32.const 7824 end local.set $12 global.get $~lib/memory/__stack_pointer @@ -31770,7 +39490,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -31940,7 +39660,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -32112,8 +39832,8 @@ i32.gt_s end if - i32.const 8128 - i32.const 8256 + i32.const 8224 + i32.const 8352 i32.const 401 i32.const 5 call $~lib/builtins/abort @@ -32124,7 +39844,7 @@ i64.ne i32.eqz if - i32.const 8320 + i32.const 8416 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -32289,7 +40009,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -32462,8 +40182,8 @@ i32.gt_s end if - i32.const 8128 - i32.const 8256 + i32.const 8224 + i32.const 8352 i32.const 431 i32.const 5 call $~lib/builtins/abort @@ -32474,7 +40194,7 @@ i64.ne i32.eqz if - i32.const 8320 + i32.const 8416 local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -32665,7 +40385,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -32837,7 +40557,7 @@ i32.const 0 i32.lt_s if - i32.const 7728 + i32.const 7824 local.set $11 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -33216,7 +40936,7 @@ i32.store global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 27 + i32.const 30 call $~lib/rt/itcms/__new local.tee $9 i32.store offset=4 @@ -33425,7 +41145,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 40 + i32.const 43 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -33950,7 +41670,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 41 + i32.const 44 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -34385,7 +42105,7 @@ if global.get $~lib/memory/__stack_pointer i32.const 16 - i32.const 42 + i32.const 45 call $~lib/rt/itcms/__new local.tee $0 i32.store @@ -34525,7 +42245,7 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.const 2 - i32.const 29 + i32.const 32 i32.const 0 call $~lib/rt/__newArray local.tee $5 @@ -34689,7 +42409,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.const 2 - i32.const 29 + i32.const 32 i32.const 0 call $~lib/rt/__newArray local.tee $2 @@ -34906,7 +42626,7 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.const 2 - i32.const 29 + i32.const 32 i32.const 0 call $~lib/rt/__newArray local.tee $6 @@ -35032,7 +42752,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.const 2 - i32.const 29 + i32.const 32 i32.const 0 call $~lib/rt/__newArray local.tee $6 @@ -35179,7 +42899,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8016 + i32.const 8112 local.tee $1 i32.store end @@ -35217,7 +42937,7 @@ drop i32.const 0 drop - i32.const 13616 + i32.const 13712 br $~lib/util/sort/COMPARATOR|inlined.0 end local.tee $1 @@ -35252,7 +42972,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8016 + i32.const 8112 local.tee $1 i32.store end @@ -35292,7 +43012,7 @@ drop i32.const 1 drop - i32.const 13648 + i32.const 13744 br $~lib/util/sort/COMPARATOR<~lib/string/String>|inlined.1 end local.tee $1 @@ -35327,7 +43047,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 8016 + i32.const 8112 local.tee $1 i32.store end diff --git a/tests/compiler/std/dataview.optimized.wat b/tests/compiler/std/dataview.optimized.wat index ba303662a9..4d6e332251 100644 --- a/tests/compiler/std/dataview.optimized.wat +++ b/tests/compiler/std/dataview.optimized.wat @@ -1800,7 +1800,7 @@ if i32.const 1360 i32.const 1568 - i32.const 170 + i32.const 171 i32.const 45 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/dataview.untouched.wat b/tests/compiler/std/dataview.untouched.wat index e9fe0fb0ac..7a4415554a 100644 --- a/tests/compiler/std/dataview.untouched.wat +++ b/tests/compiler/std/dataview.untouched.wat @@ -2453,7 +2453,7 @@ if i32.const 336 i32.const 544 - i32.const 170 + i32.const 171 i32.const 45 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 4324af1e9e..a269f66973 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -3,16 +3,18 @@ (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_=>_none (func (param i32))) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) (type $f64_i32_i32_=>_i32 (func (param f64 i32 i32) (result i32))) - (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) - (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) (type $i64_i64_i32_i32_=>_i64 (func (param i64 i64 i32 i32) (result i64))) (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) (type $f32_f32_i32_i32_=>_f32 (func (param f32 f32 i32 i32) (result f32))) @@ -2962,7 +2964,7 @@ if i32.const 1360 i32.const 1632 - i32.const 710 + i32.const 715 i32.const 64 call $~lib/builtins/abort unreachable @@ -2986,7 +2988,7 @@ if i32.const 1360 i32.const 1632 - i32.const 699 + i32.const 704 i32.const 64 call $~lib/builtins/abort unreachable @@ -3009,7 +3011,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1385 + i32.const 1395 i32.const 64 call $~lib/builtins/abort unreachable @@ -3023,408 +3025,819 @@ local.get $2 f64.store ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 f64) - (local $6 i32) + (local $6 f64) (local $7 f64) (local $8 i32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 + local.get $2 + local.get $1 + i32.sub + i32.const 1 i32.add - local.tee $6 - i32.const 0 + local.tee $8 + i32.const 1 + i32.and local.get $3 - call $~lib/memory/memory.fill - local.get $1 + local.get $8 + local.get $3 + i32.sub i32.const 1 + i32.and i32.sub - local.set $4 + local.get $3 + i32.eqz + select + i32.add + local.set $8 loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s + local.get $2 + local.get $8 + i32.ge_s if + local.get $0 + local.get $8 + i32.const 3 + i32.shl + i32.add + local.tee $3 + f64.load + local.set $5 + local.get $3 + f64.load offset=8 + local.tee $7 + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $7 local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $7 + local.set $5 + end + local.get $8 + i32.const 1 + i32.sub local.set $3 loop $while-continue|1 + local.get $1 local.get $3 - i32.const 1 - i32.and - local.get $6 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq + i32.le_s if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 + block $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $7 + f64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end end end local.get $0 local.get $3 - i32.const 1 - i32.shr_s - local.tee $3 i32.const 3 i32.shl i32.add - f64.load - local.set $5 + local.get $5 + f64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $5 + f64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end local.get $0 - local.get $4 + local.get $3 i32.const 3 i32.shl i32.add - f64.load - local.set $7 + local.get $6 + f64.store offset=8 + local.get $8 i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 + i32.add + local.set $8 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f64) + (local $6 f64) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 local.get $2 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 + i32.const 3 i32.shl i32.add - local.tee $8 - local.get $8 + local.tee $7 + f64.load offset=8 + local.get $7 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - i32.const 1 + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 i32.shl - i32.xor - i32.store + i32.add + local.tee $3 + f64.load + local.set $5 + local.get $3 local.get $0 - local.get $4 + local.get $2 i32.const 3 i32.shl i32.add + local.tee $3 + f64.load + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 local.get $5 f64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) local.get $0 - local.get $3 + local.get $4 i32.const 3 i32.shl i32.add - local.get $7 - f64.store + local.tee $1 + f64.load offset=8 + local.get $1 + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f64) + (local $8 f64) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if local.get $4 + local.get $2 i32.const 1 i32.sub - local.set $4 + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + f64.load + f64.store br $for-loop|0 end end - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add f64.load - local.set $5 - local.get $0 - local.get $0 + local.set $7 local.get $4 + local.get $2 i32.const 3 i32.shl i32.add - local.tee $1 f64.load - f64.store - local.get $1 + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 local.get $5 - f64.store - i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $6 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - local.get $1 - i32.shr_u + local.get $7 + f64.store + local.get $6 i32.const 1 - i32.and + i32.sub + local.set $6 + else + local.get $0 local.get $1 - i32.const 1 + i32.const 3 i32.shl i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s - if - local.get $0 - f64.load - local.set $5 - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $5 - f64.store - local.get $0 - local.get $7 - f64.store - end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 - end + local.get $8 + f64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 end - local.get $4 + local.get $1 i32.const 1 - i32.sub - local.set $4 + i32.add + local.set $1 br $for-loop|2 end end - local.get $6 - call $~lib/rt/tlsf/__free - local.get $0 - f64.load offset=8 - local.set $5 - local.get $0 - local.get $0 - f64.load - f64.store offset=8 - local.get $0 - local.get $5 - f64.store ) - (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 f64) - (local $7 f64) + (local $6 i32) + (local $7 i32) (local $8 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 - local.tee $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - i32.const 1 - i32.le_u - br_if $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $3 - i32.load offset=4 - local.set $0 - local.get $2 - i32.const 2 - i32.eq + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 f64) + (local $13 i32) + (local $14 f64) + (local $15 i32) + (local $16 f64) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s if - local.get $0 - f64.load offset=8 - local.set $6 + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $16 + local.get $0 + f64.load offset=8 + local.set $14 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $14 + local.get $16 + local.get $16 + local.get $14 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + f64.load offset=16 + local.set $12 + i32.const 2 + global.set $~argumentsLength + local.get $16 + local.get $14 + local.get $1 + select + local.tee $16 + local.get $12 + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $1 + local.get $0 + local.get $12 + local.get $16 + local.get $1 + select + f64.store offset=8 + local.get $0 + local.get $16 + local.get $12 + local.get $1 + select + f64.store offset=16 + end local.get $0 f64.load - local.set $7 + local.set $16 + local.get $0 + f64.load offset=8 + local.set $14 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $1 + local.get $0 + local.get $14 + local.get $16 + local.get $16 + local.get $14 + local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 - i32.lt_s - if - local.get $0 - local.get $7 - f64.store offset=8 - local.get $0 - local.get $6 - f64.store - end - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + i32.gt_s + local.tee $1 + select + f64.store + local.get $0 + local.get $16 + local.get $14 + local.get $1 + select + f64.store offset=8 + return end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 local.get $2 - local.tee $4 - i32.const 256 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $5 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + local.get $7 + i32.add + local.set $11 + i32.const 0 + local.set $7 + loop $for-loop|1 + local.get $5 + local.get $7 + i32.gt_u + if + local.get $13 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + i32.const 3 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $10 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $15 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $15 + i32.const 31 + local.get $15 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $15 i32.lt_s if local.get $0 - local.set $2 local.get $1 - local.set $5 - loop $for-loop|0 - local.get $4 - local.get $8 + i32.const 1 + i32.add + local.tee $5 + local.get $15 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $7 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.tee $4 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $5 + local.get $15 + local.get $5 + i32.const 31 + i32.add + local.tee $7 + local.get $7 + local.get $15 i32.gt_s + select + local.tee $7 + local.get $4 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $15 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $7 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $4 + loop $for-loop|3 + local.get $4 + local.get $6 + i32.lt_u if - local.get $2 - local.get $8 - i32.const 3 + local.get $13 + local.get $6 + i32.const 2 i32.shl i32.add - f64.load - local.set $6 - local.get $8 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 + i32.load + local.tee $8 + i32.const -1 + i32.ne + if local.get $0 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $5 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $7 - f64.store - br $while-continue|1 - end - end + local.get $8 + local.get $11 + local.get $6 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $13 + i32.add + i32.const -1 + i32.store + local.get $8 + local.set $3 end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add local.get $6 - f64.store - local.get $8 i32.const 1 - i32.add - local.set $8 - br $for-loop|0 + i32.sub + local.set $6 + br $for-loop|3 end end - else - local.get $0 + local.get $13 local.get $4 + i32.const 2 + i32.shl + local.tee $6 + i32.add + local.get $3 + i32.store + local.get $6 + local.get $11 + i32.add local.get $1 - call $~lib/util/sort/weakHeapSort + i32.store + local.get $5 + local.set $3 + local.get $7 + local.set $1 + local.get $4 + local.set $6 + br $while-continue|2 end end - local.get $3 + loop $for-loop|4 + local.get $6 + if + local.get $13 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $11 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $15 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) (local $2 i64) @@ -3465,7 +3878,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1374 + i32.const 1384 i32.const 64 call $~lib/builtins/abort unreachable @@ -3486,7 +3899,7 @@ if i32.const 1360 i32.const 1632 - i32.const 305 + i32.const 307 i32.const 45 call $~lib/builtins/abort unreachable @@ -3518,7 +3931,7 @@ if i32.const 1360 i32.const 1632 - i32.const 294 + i32.const 296 i32.const 45 call $~lib/builtins/abort unreachable @@ -4819,7 +5232,7 @@ if i32.const 1360 i32.const 1632 - i32.const 170 + i32.const 171 i32.const 45 call $~lib/builtins/abort unreachable @@ -4841,7 +5254,7 @@ if i32.const 1360 i32.const 1632 - i32.const 440 + i32.const 443 i32.const 64 call $~lib/builtins/abort unreachable @@ -4865,7 +5278,7 @@ if i32.const 1360 i32.const 1632 - i32.const 575 + i32.const 579 i32.const 64 call $~lib/builtins/abort unreachable @@ -4889,7 +5302,7 @@ if i32.const 1360 i32.const 1632 - i32.const 845 + i32.const 851 i32.const 64 call $~lib/builtins/abort unreachable @@ -4913,7 +5326,7 @@ if i32.const 1360 i32.const 1632 - i32.const 980 + i32.const 987 i32.const 64 call $~lib/builtins/abort unreachable @@ -4942,7 +5355,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1115 + i32.const 1123 i32.const 64 call $~lib/builtins/abort unreachable @@ -4966,7 +5379,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1250 + i32.const 1259 i32.const 64 call $~lib/builtins/abort unreachable @@ -5037,7 +5450,7 @@ if i32.const 1360 i32.const 1632 - i32.const 182 + i32.const 183 i32.const 33 call $~lib/builtins/abort unreachable @@ -5066,7 +5479,7 @@ if i32.const 1360 i32.const 1632 - i32.const 317 + i32.const 319 i32.const 33 call $~lib/builtins/abort unreachable @@ -5097,7 +5510,7 @@ if i32.const 1360 i32.const 1632 - i32.const 452 + i32.const 455 i32.const 33 call $~lib/builtins/abort unreachable @@ -5130,7 +5543,7 @@ if i32.const 1360 i32.const 1632 - i32.const 587 + i32.const 591 i32.const 33 call $~lib/builtins/abort unreachable @@ -5163,7 +5576,7 @@ if i32.const 1360 i32.const 1632 - i32.const 722 + i32.const 727 i32.const 33 call $~lib/builtins/abort unreachable @@ -5196,7 +5609,7 @@ if i32.const 1360 i32.const 1632 - i32.const 857 + i32.const 863 i32.const 33 call $~lib/builtins/abort unreachable @@ -5229,7 +5642,7 @@ if i32.const 1360 i32.const 1632 - i32.const 992 + i32.const 999 i32.const 33 call $~lib/builtins/abort unreachable @@ -5262,7 +5675,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1127 + i32.const 1135 i32.const 33 call $~lib/builtins/abort unreachable @@ -5295,7 +5708,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1262 + i32.const 1271 i32.const 33 call $~lib/builtins/abort unreachable @@ -5328,7 +5741,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1397 + i32.const 1407 i32.const 33 call $~lib/builtins/abort unreachable @@ -5354,7 +5767,7 @@ if i32.const 1360 i32.const 1632 - i32.const 159 + i32.const 160 i32.const 45 call $~lib/builtins/abort unreachable @@ -5375,7 +5788,7 @@ if i32.const 1360 i32.const 1632 - i32.const 429 + i32.const 432 i32.const 64 call $~lib/builtins/abort unreachable @@ -5398,7 +5811,7 @@ if i32.const 1360 i32.const 1632 - i32.const 564 + i32.const 568 i32.const 64 call $~lib/builtins/abort unreachable @@ -5421,7 +5834,7 @@ if i32.const 1360 i32.const 1632 - i32.const 834 + i32.const 840 i32.const 64 call $~lib/builtins/abort unreachable @@ -5449,7 +5862,7 @@ if i32.const 1360 i32.const 1632 - i32.const 969 + i32.const 976 i32.const 64 call $~lib/builtins/abort unreachable @@ -5472,7 +5885,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1104 + i32.const 1112 i32.const 64 call $~lib/builtins/abort unreachable @@ -5500,7 +5913,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1239 + i32.const 1248 i32.const 64 call $~lib/builtins/abort unreachable @@ -27631,7 +28044,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -27650,7 +28063,7 @@ else i32.const 1056 i32.const 1632 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -27665,7 +28078,7 @@ if i32.const 1056 i32.const 1632 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -27709,7 +28122,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27761,7 +28174,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27811,7 +28224,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27839,7 +28252,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27891,7 +28304,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27916,7 +28329,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27933,7 +28346,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28000,7 +28413,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28017,7 +28430,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28085,7 +28498,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28141,7 +28554,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28197,7 +28610,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28249,7 +28662,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28280,7 +28693,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28326,7 +28739,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28343,7 +28756,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28377,7 +28790,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28433,7 +28846,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28487,7 +28900,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28546,7 +28959,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28599,7 +29012,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28653,7 +29066,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28681,7 +29094,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28735,7 +29148,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28794,7 +29207,7 @@ if i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28833,1230 +29246,783 @@ end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $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_u - i32.const 2 - i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 + local.get $2 + local.get $1 + i32.sub + i32.const 1 i32.add local.tee $5 - i32.const 0 + i32.const 1 + i32.and local.get $3 - call $~lib/memory/memory.fill - local.get $1 + local.get $5 + local.get $3 + i32.sub i32.const 1 + i32.and i32.sub - local.set $4 + local.get $3 + i32.eqz + select + i32.add + local.set $7 loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s + local.get $2 + local.get $7 + i32.ge_s if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $5 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end local.get $0 - local.get $3 - i32.const 1 - i32.shr_s - local.tee $7 + local.get $7 i32.add + local.tee $5 i32.load8_s local.set $3 - local.get $0 - local.get $4 - i32.add - i32.load8_s - local.set $6 + local.get $5 + i32.load8_s offset=1 + local.tee $6 + local.set $5 i32.const 2 global.set $~argumentsLength local.get $3 local.get $6 - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.le_s if - local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $4 - i32.add local.get $3 - i32.store8 - local.get $0 - local.get $7 - i32.add + local.set $5 local.get $6 - i32.store8 + local.set $3 end - local.get $4 + local.get $7 i32.const 1 i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s - if - local.get $0 - i32.load8_s - local.set $1 - local.get $0 - local.get $0 - local.get $4 - i32.add - local.tee $3 - i32.load8_s - i32.store8 - local.get $3 - local.get $1 - i32.store8 - i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 + local.set $6 + loop $while-continue|1 local.get $1 - i32.const 0 - i32.gt_s + local.get $6 + i32.le_s if - local.get $0 - i32.load8_s - local.set $3 - local.get $0 - local.get $1 - i32.add - i32.load8_s - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $7 - local.get $7 - i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store + block $while-break|1 local.get $0 - local.get $1 + local.get $6 i32.add + i32.load8_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 local.get $3 - i32.store8 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 local.get $0 local.get $6 - i32.store8 + i32.add + local.get $8 + i32.store8 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 end end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 - end - end - local.get $5 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load8_s offset=1 - local.set $1 - local.get $0 - local.get $0 - i32.load8_s - i32.store8 offset=1 - local.get $0 - local.get $1 - i32.store8 - ) - (func $~lib/typedarray/Int8Array#sort (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/Int8Array,i8>|inlined.0 - local.get $0 - local.tee $4 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.le_s - br_if $~lib/typedarray/SORT<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $4 - i32.load offset=4 - local.set $0 - local.get $2 - i32.const 2 - i32.eq - if - local.get $0 - i32.load8_s offset=1 - local.set $3 local.get $0 - i32.load8_s - local.set $2 - i32.const 2 - global.set $~argumentsLength + local.get $6 + i32.add local.get $3 - local.get $2 - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $2 - i32.store8 offset=1 - local.get $0 - local.get $3 - i32.store8 - end - br $~lib/typedarray/SORT<~lib/typedarray/Int8Array,i8>|inlined.0 - end - local.get $2 - local.tee $3 - i32.const 256 - i32.lt_s - if - local.get $0 - local.set $2 - local.get $1 - local.set $5 - loop $for-loop|0 - local.get $3 + i32.store8 offset=2 + loop $while-continue|2 + local.get $1 local.get $6 - i32.gt_s + i32.le_s if - local.get $2 - local.get $6 - i32.add - i32.load8_s - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 + block $while-break|2 local.get $0 + local.get $6 + i32.add + i32.load8_s + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $0 - local.get $2 - i32.add - i32.load8_s - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.add - local.get $8 - i32.store8 - br $while-continue|1 - end - end + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=1 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.add - local.get $7 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 end end - else local.get $0 - local.get $3 - local.get $1 - call $~lib/util/sort/weakHeapSort + local.get $6 + i32.add + local.get $5 + i32.store8 offset=1 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end end - local.get $4 - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.extend8_s - local.get $1 - i32.extend8_s - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.extend8_s - local.tee $1 - local.get $0 - i32.extend8_s - local.tee $0 - i32.gt_s - local.get $0 - local.get $1 - i32.gt_s - i32.sub ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result 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_u - i32.const 2 - i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz + local.get $2 + i32.eq if - call $~lib/rt/tlsf/initialize + local.get $1 + return end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 + local.get $0 + local.get $1 i32.add - local.tee $5 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill + i32.load8_s + local.get $0 local.get $1 i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s - if + i32.add + local.tee $4 + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $5 + i32.load8_s offset=1 local.get $5 - local.get $3 - i32.const 6 - i32.shr_u + i32.load8_s i32.const 2 - i32.shl - i32.add - i32.load + global.set $~argumentsLength local.get $3 - i32.const 1 - i32.shr_s + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 i32.shr_u + else + i32.const 0 + end + if + local.get $4 i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $0 - local.get $3 - i32.const 1 - i32.shr_s - local.tee $7 - i32.add - i32.load8_u - local.set $3 - local.get $0 - local.get $4 - i32.add - i32.load8_u - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s if - local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store local.get $0 - local.get $4 + local.get $1 i32.add + local.tee $3 + i32.load8_s + local.set $5 local.get $3 - i32.store8 local.get $0 - local.get $7 + local.get $2 i32.add - local.get $6 + local.tee $3 + i32.load8_s + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 end + end + else + loop $while-continue|2 + local.get $2 local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $1 + i32.load8_s offset=1 + local.get $1 + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 i32.const 1 i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s if - local.get $0 - i32.load8_u - local.set $1 - local.get $0 - local.get $0 local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + local.tee $8 i32.add - local.tee $3 - i32.load8_u + local.get $0 + local.get $8 + i32.add + i32.load8_s i32.store8 - local.get $3 - local.get $1 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_s offset=1 i32.store8 + local.get $6 i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $5 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.add + i32.load8_s + local.set $7 + local.get $2 + local.get $4 + i32.add + i32.load8_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl i32.add - i32.load - local.get $1 - i32.shr_u + local.get $7 + i32.store8 + local.get $6 i32.const 1 - i32.and + i32.sub + local.set $6 + else + local.get $0 local.get $1 + i32.add + local.get $8 + i32.store8 + local.get $2 i32.const 1 - i32.shl i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s - if - local.get $0 - i32.load8_u - local.set $3 - local.get $0 - local.get $1 - i32.add - i32.load8_u - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $7 - local.get $7 - i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.add - local.get $3 - i32.store8 - local.get $0 - local.get $6 - i32.store8 - end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 - end + local.set $2 end - local.get $4 + local.get $1 i32.const 1 - i32.sub - local.set $4 + i32.add + local.set $1 br $for-loop|2 end end - local.get $5 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load8_u offset=1 - local.set $1 - local.get $0 - local.get $0 - i32.load8_u - i32.store8 offset=1 - local.get $0 - local.get $1 - i32.store8 ) - (func $~lib/typedarray/Uint8Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) - block $~lib/typedarray/SORT<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 - local.tee $4 - i32.load offset=8 - local.tee $2 + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 i32.const 1 i32.le_s - br_if $~lib/typedarray/SORT<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $4 - i32.load offset=4 - local.set $0 - local.get $2 - i32.const 2 - i32.eq if - local.get $0 - i32.load8_u offset=1 - local.set $3 - local.get $0 - i32.load8_u - local.set $2 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $2 - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_s + local.set $1 + local.get $0 + i32.load8_s offset=1 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store8 local.get $0 + i32.load8_s offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 + local.get $3 local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $4 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select i32.store8 offset=1 local.get $0 + local.get $1 local.get $3 - i32.store8 + local.get $4 + select + i32.store8 offset=2 end - br $~lib/typedarray/SORT<~lib/typedarray/Uint8Array,u8>|inlined.0 - end - local.get $2 - local.tee $3 - i32.const 256 - i32.lt_s - if local.get $0 - local.set $2 + i32.load8_s + local.set $1 + local.get $0 + i32.load8_s offset=1 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 local.get $1 - local.set $5 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $2 - local.get $6 - i32.add - i32.load8_u - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 - local.get $0 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $0 - local.get $2 - i32.add - i32.load8_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.add - local.get $8 - i32.store8 - br $while-continue|1 - end - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.add - local.get $7 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end - end - else + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 local.get $0 - local.get $3 local.get $1 - call $~lib/util/sort/weakHeapSort + local.get $4 + local.get $2 + select + i32.store8 offset=1 + return end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return end - local.get $4 - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 255 - i32.and - local.tee $0 - local.get $1 - i32.const 255 - i32.and - local.tee $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.const 255 - i32.and - local.tee $1 - local.get $0 - i32.const 255 - i32.and - local.tee $0 - i32.gt_u - local.get $0 + i32.const 33 local.get $1 - i32.gt_u + i32.clz i32.sub - ) - (func $~lib/util/sort/weakHeapSort (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_u + local.tee $6 i32.const 2 i32.shl - local.tee $3 - local.set $4 + local.tee $5 + i32.const 1 + i32.shl + local.set $7 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $4 + local.get $7 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $5 + local.tee $9 + local.get $5 + i32.add + local.set $10 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $5 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shr_s - local.tee $7 - i32.const 1 + local.get $9 + local.get $5 + i32.const 2 i32.shl i32.add - i32.load16_s - local.set $3 - local.get $0 - local.get $4 + i32.const -1 + i32.store + local.get $5 i32.const 1 - i32.shl i32.add - i32.load16_s - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.store16 - local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add - local.get $6 - i32.store16 - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 + local.set $5 + br $for-loop|1 end end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 local.get $1 i32.const 1 i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s if local.get $0 - i32.load16_s - local.set $1 - local.get $0 - local.get $0 - local.get $4 + local.get $1 i32.const 1 - i32.shl i32.add - local.tee $3 - i32.load16_s - i32.store16 - local.get $3 - local.get $1 - i32.store16 + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 i32.add - local.tee $3 + local.tee $5 + local.get $5 + local.get $8 i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u if - local.get $0 - i32.load16_s - local.set $3 - local.get $0 - local.get $1 - i32.const 1 + local.get $9 + local.get $4 + i32.const 2 i32.shl i32.add - i32.load16_s - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s + local.tee $13 + i32.const -1 + i32.ne if - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u + local.get $0 + local.get $13 + local.get $10 + local.get $4 i32.const 2 i32.shl + local.tee $3 i32.add - local.tee $7 - local.get $7 i32.load i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 1 - i32.shl i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns local.get $3 - i32.store16 - local.get $0 - local.get $6 - i32.store16 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 end - local.get $1 + local.get $4 i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 + i32.sub + local.set $4 + br $for-loop|3 end end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store local.get $4 - i32.const 1 - i32.sub + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 local.set $4 - br $for-loop|2 + br $while-continue|2 end end - local.get $5 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load16_s offset=2 - local.set $1 - local.get $0 - local.get $0 - i32.load16_s - i32.store16 offset=2 - local.get $0 - local.get $1 - i32.store16 - ) - (func $~lib/typedarray/Int16Array#sort (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/Int16Array,i16>|inlined.0 - local.get $0 - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.le_u - br_if $~lib/typedarray/SORT<~lib/typedarray/Int16Array,i16>|inlined.0 + loop $for-loop|4 local.get $4 - i32.load offset=4 - local.set $0 - local.get $2 - i32.const 2 - i32.eq if - local.get $0 - i32.load16_s offset=2 - local.set $3 - local.get $0 - i32.load16_s - local.set $2 + local.get $9 + local.get $4 i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $2 - local.get $1 + i32.shl + i32.add i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s + local.tee $1 + i32.const -1 + i32.ne if local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 local.get $2 - i32.store16 offset=2 - local.get $0 - local.get $3 - i32.store16 - end - br $~lib/typedarray/SORT<~lib/typedarray/Int16Array,i16>|inlined.0 - end - local.get $2 - local.tee $3 - i32.const 256 - i32.lt_s - if - local.get $0 - local.set $2 - local.get $1 - local.set $5 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $2 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 - local.get $0 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $8 - i32.store16 - br $while-continue|1 - end - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $7 - i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end + call $~lib/util/sort/mergeRuns end - else - local.get $0 - local.get $3 - local.get $1 - call $~lib/util/sort/weakHeapSort + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 end end - local.get $4 + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.extend16_s + i32.extend8_s local.get $1 - i32.extend16_s + i32.extend8_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $1 - i32.extend16_s + i32.extend8_s local.tee $1 local.get $0 - i32.extend16_s + i32.extend8_s local.tee $0 i32.gt_s local.get $0 @@ -30064,2521 +30030,6589 @@ i32.gt_s i32.sub ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $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_u - i32.const 2 - i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 + local.get $2 + local.get $1 + i32.sub + i32.const 1 i32.add local.tee $5 - i32.const 0 + i32.const 1 + i32.and local.get $3 - call $~lib/memory/memory.fill - local.get $1 + local.get $5 + local.get $3 + i32.sub i32.const 1 + i32.and i32.sub - local.set $4 + local.get $3 + i32.eqz + select + i32.add + local.set $7 loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s + local.get $2 + local.get $7 + i32.ge_s if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $5 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end local.get $0 - local.get $3 - i32.const 1 - i32.shr_s - local.tee $7 - i32.const 1 - i32.shl + local.get $7 i32.add - i32.load16_u + local.tee $5 + i32.load8_u local.set $3 - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $6 + local.get $5 + i32.load8_u offset=1 + local.tee $6 + local.set $5 i32.const 2 global.set $~argumentsLength local.get $3 local.get $6 - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.le_s if - local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add local.get $3 - i32.store16 - local.get $0 - local.get $7 - i32.const 1 - i32.shl - i32.add + local.set $5 local.get $6 - i32.store16 + local.set $3 end - local.get $4 + local.get $7 i32.const 1 i32.sub - local.set $4 - br $for-loop|0 - end - end - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s - if - local.get $0 - i32.load16_u - local.set $1 - local.get $0 - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.load16_u - i32.store16 - local.get $3 - local.get $1 - i32.store16 - i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and + local.set $6 + loop $while-continue|1 local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $3 - i32.gt_s + local.get $6 + i32.le_s if - local.get $3 - local.set $1 - br $while-continue|3 + block $while-break|1 + local.get $0 + local.get $6 + i32.add + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.add + local.get $8 + i32.store8 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end end end - loop $while-continue|4 + local.get $0 + local.get $6 + i32.add + local.get $3 + i32.store8 offset=2 + loop $while-continue|2 local.get $1 - i32.const 0 - i32.gt_s + local.get $6 + i32.le_s if - local.get $0 - i32.load16_u - local.set $3 - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl + block $while-break|2 + local.get $0 + local.get $6 i32.add - local.tee $7 - local.get $7 + i32.load8_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 local.get $0 - local.get $1 - i32.const 1 - i32.shl + local.get $6 i32.add local.get $3 - i32.store16 - local.get $0 + i32.store8 offset=1 local.get $6 - i32.store16 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 end end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 + local.get $0 + local.get $6 + i32.add + local.get $5 + i32.store8 offset=1 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 end end - local.get $5 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load16_u offset=2 - local.set $1 - local.get $0 - local.get $0 - i32.load16_u - i32.store16 offset=2 - local.get $0 - local.get $1 - i32.store16 ) - (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 - local.tee $4 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.le_u - br_if $~lib/typedarray/SORT<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $4 - i32.load offset=4 - local.set $0 - local.get $2 - i32.const 2 - i32.eq - if - local.get $0 - i32.load16_u offset=2 - local.set $3 - local.get $0 - i32.load16_u - local.set $2 - i32.const 2 - global.set $~argumentsLength - local.get $3 + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.add + i32.load8_u + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $5 + i32.load8_u offset=1 + local.get $5 + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 + local.get $2 i32.lt_s if local.get $0 - local.get $2 - i32.store16 offset=2 + local.get $1 + i32.add + local.tee $3 + i32.load8_u + local.set $5 + local.get $3 local.get $0 + local.get $2 + i32.add + local.tee $3 + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $3 - i32.store16 + local.get $5 + i32.store8 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 end - br $~lib/typedarray/SORT<~lib/typedarray/Uint16Array,u16>|inlined.0 end - local.get $2 - local.tee $3 - i32.const 256 - i32.lt_s - if - local.get $0 - local.set $2 - local.get $1 - local.set $5 - loop $for-loop|0 + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.add + local.tee $1 + i32.load8_u offset=1 + local.get $1 + i32.load8_u + i32.const 2 + global.set $~argumentsLength local.get $3 - local.get $6 - i32.gt_s - if - local.get $2 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 - local.get $0 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $8 - i32.store16 - br $while-continue|1 - end - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.const 1 - i32.shl - i32.add - local.get $7 - i32.store16 - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 - end + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 end - else - local.get $0 - local.get $3 - local.get $1 - call $~lib/util/sort/weakHeapSort end end local.get $4 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.const 65535 - i32.and - local.tee $0 - local.get $1 - i32.const 65535 - i32.and - local.tee $1 - i32.gt_u - local.get $0 - local.get $1 - i32.lt_u - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - i32.const 65535 - i32.and - local.tee $1 - local.get $0 - i32.const 65535 - i32.and - local.tee $0 - i32.gt_u - local.get $0 - local.get $1 - i32.gt_u - i32.sub - ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $5 - i32.const 0 local.get $3 - call $~lib/memory/memory.fill - local.get $1 + local.get $2 i32.const 1 i32.sub - local.set $4 + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s + local.get $1 + local.get $2 + i32.lt_s if local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $5 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end - local.get $0 - local.get $3 + local.get $2 i32.const 1 - i32.shr_s - local.tee $7 - i32.const 2 - i32.shl + i32.sub + local.tee $2 + local.tee $8 i32.add - i32.load - local.set $3 local.get $0 + local.get $8 + i32.add + i32.load8_u + i32.store8 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if local.get $4 - i32.const 2 - i32.shl + local.get $7 + local.get $6 + i32.sub + i32.add + local.get $0 + local.get $6 + i32.add + i32.load8_u offset=1 + i32.store8 + local.get $6 + i32.const 1 i32.add - i32.load local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 local.get $6 + i32.add + i32.load8_u + local.set $7 local.get $2 + local.get $4 + i32.add + i32.load8_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 i32.lt_s if - local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl + local.get $0 + local.get $1 i32.add - local.tee $8 - local.get $8 - i32.load + local.get $7 + i32.store8 + local.get $6 i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store + i32.sub + local.set $6 + else local.get $0 - local.get $4 - i32.const 2 - i32.shl + local.get $1 i32.add - local.get $3 - i32.store - local.get $0 - local.get $7 - i32.const 2 - i32.shl + local.get $8 + i32.store8 + local.get $2 + i32.const 1 i32.add - local.get $6 - i32.store + local.set $2 end - local.get $4 + local.get $1 i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 + i32.add + local.set $1 + br $for-loop|2 end end + ) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i64) + (local $13 i32) local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $1 + local.get $0 + i32.load8_u offset=1 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store8 + local.get $0 + i32.load8_u offset=2 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $4 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select + i32.store8 offset=1 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store8 offset=2 + end local.get $0 - i32.load + i32.load8_u local.set $1 local.get $0 + i32.load8_u offset=1 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store8 local.get $0 + local.get $1 local.get $4 + local.get $2 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 i32.const 2 i32.shl i32.add - local.tee $3 - i32.load + i32.const -1 i32.store - local.get $3 + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $1 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 local.get $1 - i32.store i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 i32.add - local.tee $3 + local.tee $5 + local.get $5 + local.get $8 i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u if - local.get $0 - i32.load - local.set $3 - local.get $0 - local.get $1 + local.get $9 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s + local.tee $13 + i32.const -1 + i32.ne if - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u + local.get $0 + local.get $13 + local.get $10 + local.get $4 i32.const 2 i32.shl + local.tee $3 i32.add - local.tee $7 - local.get $7 i32.load i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 2 - i32.shl i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns local.get $3 + local.get $9 + i32.add + i32.const -1 i32.store - local.get $0 - local.get $6 - i32.store + local.get $13 + local.set $3 end - local.get $1 + local.get $4 i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 + i32.sub + local.set $4 + br $for-loop|3 end end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end local.get $4 i32.const 1 i32.sub local.set $4 - br $for-loop|2 + br $for-loop|4 end end - local.get $5 + local.get $11 call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.load offset=4 - local.set $1 + i32.const 255 + i32.and + local.tee $0 + local.get $1 + i32.const 255 + i32.and + local.tee $1 + i32.gt_u local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 255 + i32.and + local.tee $1 local.get $0 - i32.load - i32.store offset=4 + i32.const 255 + i32.and + local.tee $0 + i32.gt_u local.get $0 local.get $1 - i32.store + i32.gt_u + i32.sub ) - (func $~lib/typedarray/Int32Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $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 - local.tee $4 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 1 - i32.le_u - br_if $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $4 - i32.load offset=4 - local.set $0 + local.get $1 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $7 + loop $for-loop|0 local.get $2 - i32.const 2 - i32.eq + local.get $7 + i32.ge_s if local.get $0 - i32.load offset=4 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_s local.set $3 - local.get $0 - i32.load - local.set $2 + local.get $5 + i32.load16_s offset=2 + local.tee $6 + local.set $5 i32.const 2 global.set $~argumentsLength local.get $3 - local.get $2 - local.get $1 + local.get $6 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.le_s if - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 local.get $3 - i32.store + local.set $5 + local.get $6 + local.set $3 end - br $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0 - end - local.get $2 - local.tee $3 - i32.const 256 - i32.lt_s - if - local.get $0 - local.set $2 - local.get $1 - local.set $5 - loop $for-loop|0 - local.get $3 + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 local.get $6 - i32.gt_s + i32.le_s if - local.get $2 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $6 + block $while-break|1 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.store16 offset=4 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.store16 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $5 + i32.store16 offset=2 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_s offset=2 + local.get $5 + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_s + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $1 + i32.load16_s offset=2 + local.get $1 + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load16_s + i32.store16 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $7 + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store16 + local.get $0 + i32.load16_s offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $4 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select + i32.store16 offset=2 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_s + local.set $1 + local.get $0 + i32.load16_s offset=2 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store16 + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store16 offset=2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.extend16_s + local.get $1 + i32.extend16_s + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.extend16_s + local.tee $1 + local.get $0 + i32.extend16_s + local.tee $0 + i32.gt_s + local.get $0 + local.get $1 + i32.gt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u + local.set $3 + local.get $5 + i32.load16_u offset=2 + local.tee $6 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.store16 offset=4 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.store16 offset=2 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + local.get $5 + i32.store16 offset=2 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $5 + i32.load16_u offset=2 + local.get $5 + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.tee $3 + i32.load16_u + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store16 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + local.tee $1 + i32.load16_u offset=2 + local.get $1 + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load16_u + i32.store16 + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + i32.store16 + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $7 + local.get $4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $7 + i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_u + local.set $1 + local.get $0 + i32.load16_u offset=2 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store16 + local.get $0 + i32.load16_u offset=4 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $4 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select + i32.store16 offset=2 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_u + local.set $1 + local.get $0 + i32.load16_u offset=2 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store16 + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store16 offset=2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 1 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.const 65535 + i32.and + local.tee $0 + local.get $1 + i32.const 65535 + i32.and + local.tee $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + i32.const 65535 + i32.and + local.tee $1 + local.get $0 + i32.const 65535 + i32.and + local.tee $0 + i32.gt_u + local.get $0 + local.get $1 + i32.gt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.set $3 + local.get $5 + i32.load offset=4 + local.tee $6 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $4 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.lt_s + local.get $0 + local.get $1 + i32.gt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $1 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $7 + loop $for-loop|0 + local.get $2 + local.get $7 + i32.ge_s + if + local.get $0 + local.get $7 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load + local.set $3 + local.get $5 + i32.load offset=4 + local.tee $6 + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $3 + local.set $5 + local.get $6 + local.set $3 + end + local.get $7 + i32.const 1 + i32.sub + local.set $6 + loop $while-continue|1 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $8 + local.get $3 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|1 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $6 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $3 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $3 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $while-continue|2 + end + end + end + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $5 + i32.store offset=4 + local.get $7 + i32.const 2 + i32.add + local.set $7 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $5 + i32.load offset=4 + local.get $5 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + local.tee $3 + i32.load + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i32.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + i32.load offset=4 + local.get $1 + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $7 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $8 + i32.add + local.get $0 + local.get $8 + i32.add + i32.load + i32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $7 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + i32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + local.get $4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $7 + i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (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 $11 i32) + (local $12 i64) + (local $13 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $5 + select + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + i32.const 2 + global.set $~argumentsLength + local.get $1 + local.get $4 + local.get $5 + select + local.tee $1 + local.get $3 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $4 + local.get $0 + local.get $3 + local.get $1 + local.get $4 + select + i32.store offset=4 + local.get $0 + local.get $1 + local.get $3 + local.get $4 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $1 + local.get $0 + i32.load offset=4 + local.set $4 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $4 + local.get $1 + local.get $1 + local.get $4 + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $2 + select + i32.store + local.get $0 + local.get $1 + local.get $4 + local.get $2 + select + i32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 + i32.const 2 + i32.shl + local.tee $5 + i32.const 1 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $9 + local.get $5 + i32.add + local.set $10 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + if + local.get $9 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + local.set $5 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $5 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $11 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $5 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $8 + i32.const 31 + local.get $8 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $5 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $6 + local.get $8 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $5 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $8 + local.get $6 + i32.const 31 + i32.add + local.tee $5 + local.get $5 + local.get $8 + i32.gt_s + select + local.tee $5 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $8 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $12 + i64.div_u + local.get $5 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $12 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $4 + local.get $7 + i32.gt_u + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $13 + i32.const -1 + i32.ne + if + local.get $0 + local.get $13 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + local.tee $3 + i32.add + i32.load + i32.const 1 + i32.add + local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $9 + i32.add + i32.const -1 + i32.store + local.get $13 + local.set $3 + end + local.get $4 i32.const 1 i32.sub - local.set $0 - loop $while-continue|1 + local.set $4 + br $for-loop|3 + end + end + local.get $9 + local.get $7 + i32.const 2 + i32.shl + local.tee $4 + i32.add + local.get $3 + i32.store + local.get $4 + local.get $10 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 + local.get $5 + local.set $1 + local.get $7 + local.set $4 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $4 + if + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $10 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $8 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $9 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.lt_u + local.get $0 + local.get $1 + i32.gt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + local.get $1 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $8 + i32.const 1 + i32.and + local.get $3 + local.get $8 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $8 + loop $for-loop|0 + local.get $2 + local.get $8 + i32.ge_s + if + local.get $0 + local.get $8 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + i64.load offset=8 + local.tee $7 + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $7 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $7 + local.set $5 + end + local.get $8 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - br $while-continue|1 - end - end + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $7 + i64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end + end + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $5 + i64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $5 + i64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $6 - i32.const 1 - i32.add - local.set $6 - br $for-loop|0 end end - else - local.get $0 - local.get $3 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $6 + i64.store offset=8 + local.get $8 + i32.const 2 + i32.add + local.set $8 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i64.load offset=8 + local.get $7 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + local.get $0 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 + i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $1 + i64.load offset=8 + local.get $1 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i64) + (local $8 i64) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + i64.load + i64.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $8 + local.get $5 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $7 + i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 + end local.get $1 - call $~lib/util/sort/weakHeapSort + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end end - local.get $4 - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.lt_s - local.get $0 - local.get $1 - i32.gt_s - i32.sub ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/SORT (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 i64) + (local $10 i32) + (local $11 i64) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $11 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $11 + local.get $9 + local.get $9 + local.get $11 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + i64.load offset=16 + local.set $13 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $11 + local.get $1 + select + local.tee $9 + local.get $13 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $1 + local.get $0 + local.get $13 + local.get $9 + local.get $1 + select + i64.store offset=8 + local.get $0 + local.get $9 + local.get $13 + local.get $1 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $11 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $11 + local.get $9 + local.get $9 + local.get $11 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + local.get $9 + local.get $11 + local.get $1 + select + i64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $6 i32.const 2 i32.shl - local.tee $3 - local.set $4 + local.tee $4 + i32.const 1 + i32.shl + local.set $7 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $4 + local.get $7 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $5 + local.tee $12 + local.get $4 + i32.add + local.set $14 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub local.set $4 - loop $for-loop|0 + loop $for-loop|1 local.get $4 - i32.const 0 - i32.gt_s + local.get $6 + i32.lt_u if - local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $5 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-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 $12 local.get $4 i32.const 2 i32.shl i32.add - i32.load - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - 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 + i32.const -1 + i32.store local.get $4 i32.const 1 - i32.sub + i32.add local.set $4 - br $for-loop|0 + br $for-loop|1 end end local.get $1 + i32.const 3 + i32.shl + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 + local.get $0 + i32.const 0 + local.get $1 i32.const 1 i32.sub - local.set $4 - loop $for-loop|2 + local.tee $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $10 + i32.const 31 + local.get $10 + i32.const 31 + i32.lt_s + select + local.tee $1 local.get $4 - i32.const 2 - i32.ge_s + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $10 + i32.lt_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 $while-continue|3 - local.get $4 - local.get $5 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl + i32.add + local.tee $6 + local.get $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $6 + local.get $10 + local.get $6 + i32.const 31 i32.add - local.tee $3 + local.tee $4 + local.get $4 + local.get $10 i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end + select + local.tee $4 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $5 + local.get $7 + i32.gt_u if - local.get $0 - i32.load - local.set $3 - local.get $0 - local.get $1 + local.get $12 + local.get $5 i32.const 2 i32.shl i32.add i32.load - local.set $6 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $6 - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s + local.tee $8 + i32.const -1 + i32.ne if + local.get $0 + local.get $8 + local.get $14 local.get $5 - local.get $1 - i32.const 5 - i32.shr_u i32.const 2 i32.shl + local.tee $3 i32.add - local.tee $7 - local.get $7 i32.load i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 2 - i32.shl i32.add + local.get $1 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns local.get $3 + local.get $12 + i32.add + i32.const -1 i32.store - local.get $0 - local.get $6 - i32.store - end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 - end - end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-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/Uint32Array#sort (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/Uint32Array,u32>|inlined.0 - local.get $0 - local.tee $4 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 1 - i32.le_u - br_if $~lib/typedarray/SORT<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $4 - i32.load offset=4 - local.set $0 - local.get $2 - i32.const 2 - i32.eq - if - local.get $0 - i32.load offset=4 - local.set $3 - local.get $0 - i32.load - local.set $2 - i32.const 2 - global.set $~argumentsLength - local.get $3 - local.get $2 - local.get $1 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - local.get $3 - i32.store - end - br $~lib/typedarray/SORT<~lib/typedarray/Uint32Array,u32>|inlined.0 - end - local.get $2 - local.tee $3 - i32.const 256 - i32.lt_s - if - local.get $0 - local.set $2 - local.get $1 - local.set $5 - loop $for-loop|0 - local.get $3 - local.get $6 - i32.gt_s - if - local.get $2 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - local.get $6 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 - local.get $0 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - i32.const 2 - global.set $~argumentsLength - local.get $7 - local.get $8 - local.get $5 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - br $while-continue|1 - end - end + local.get $8 + local.set $3 end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store - local.get $6 + local.get $5 i32.const 1 - i32.add - local.set $6 - br $for-loop|0 + i32.sub + local.set $5 + br $for-loop|3 end end - else - local.get $0 + local.get $12 + local.get $7 + i32.const 2 + i32.shl + local.tee $5 + i32.add local.get $3 + i32.store + local.get $5 + local.get $14 + i32.add local.get $1 - call $~lib/util/sort/weakHeapSort + i32.store + local.get $6 + local.set $3 + local.get $4 + local.set $1 + local.get $7 + local.set $5 + br $while-continue|2 end end - local.get $4 + loop $for-loop|4 + local.get $5 + if + local.get $12 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $14 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $10 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $for-loop|4 + end + end + local.get $15 + call $~lib/rt/tlsf/__free + local.get $12 + call $~lib/rt/tlsf/__free ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) local.get $0 local.get $1 - i32.gt_u + i64.gt_s local.get $0 local.get $1 - i32.lt_u + i64.lt_s i32.sub ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) local.get $0 local.get $1 - i32.lt_u + i64.lt_s local.get $0 local.get $1 - i32.gt_u + i64.gt_s i32.sub ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i64) - (local $6 i32) + (local $6 i64) (local $7 i64) (local $8 i32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 + local.get $2 + local.get $1 + i32.sub + i32.const 1 i32.add - local.tee $6 - i32.const 0 + local.tee $8 + i32.const 1 + i32.and local.get $3 - call $~lib/memory/memory.fill - local.get $1 + local.get $8 + local.get $3 + i32.sub i32.const 1 + i32.and i32.sub - local.set $4 + local.get $3 + i32.eqz + select + i32.add + local.set $8 loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s + local.get $2 + local.get $8 + i32.ge_s if + local.get $0 + local.get $8 + i32.const 3 + i32.shl + i32.add + local.tee $3 + i64.load + local.set $5 + local.get $3 + i64.load offset=8 + local.tee $7 + local.set $6 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $7 local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $5 + local.set $6 + local.get $7 + local.set $5 + end + local.get $8 + i32.const 1 + i32.sub local.set $3 loop $while-continue|1 + local.get $1 local.get $3 - i32.const 1 - i32.and - local.get $6 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq + i32.le_s if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 + block $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $7 + i64.store offset=16 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end end end local.get $0 local.get $3 - i32.const 1 - i32.shr_s - local.tee $3 i32.const 3 i32.shl i32.add - i64.load - local.set $5 + local.get $5 + i64.store offset=16 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.add + local.get $5 + i64.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 + end + end + end local.get $0 - local.get $4 + local.get $3 i32.const 3 i32.shl i32.add - i64.load - local.set $7 + local.get $6 + i64.store offset=8 + local.get $8 i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 + i32.add + local.set $8 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 local.get $2 - i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 + i32.const 3 i32.shl i32.add - local.tee $8 - local.get $8 + local.tee $7 + i64.load offset=8 + local.get $7 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - i32.const 1 + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if local.get $4 - i32.shl - i32.xor - i32.store + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if local.get $0 - local.get $4 + local.get $1 i32.const 3 i32.shl i32.add - local.get $5 - i64.store - local.get $0 + local.tee $3 + i64.load + local.set $5 local.get $3 + local.get $0 + local.get $2 i32.const 3 i32.shl i32.add - local.get $7 + local.tee $3 + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $3 + local.get $5 i64.store + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $while-continue|1 end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 end - end - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s - if - local.get $0 - i64.load - local.set $5 - local.get $0 - local.get $0 + else + loop $while-continue|2 + local.get $2 local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - i64.load - i64.store - local.get $1 - local.get $5 - i64.store - i32.const 1 - local.set $1 - loop $while-continue|3 + i32.gt_s + if (result i32) + local.get $0 local.get $4 - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 + i32.const 3 i32.shl i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and + local.tee $1 + i64.load offset=8 local.get $1 + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 i32.const 1 - i32.shl i32.add - local.tee $3 - i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s - if - local.get $0 - i64.load - local.set $5 - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 - i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $3 - local.get $3 - i32.load - i32.const 1 - local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $5 - i64.store - local.get $0 - local.get $7 - i64.store - end - local.get $1 - i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 - end + local.set $4 + br $while-continue|2 end - local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 end end - local.get $6 - call $~lib/rt/tlsf/__free - local.get $0 - i64.load offset=8 - local.set $5 - local.get $0 - local.get $0 - i64.load - i64.store offset=8 - local.get $0 - local.get $5 - i64.store + local.get $4 ) - (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) (local $7 i64) - (local $8 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 - local.tee $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - i32.const 1 - i32.le_u - br_if $~lib/typedarray/SORT<~lib/typedarray/Int64Array,i64>|inlined.0 + (local $8 i64) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 3 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + i64.load + i64.store + br $for-loop|0 + end + end + loop $for-loop|1 local.get $3 - i32.load offset=4 - local.set $0 - local.get $2 - i32.const 2 - i32.eq + local.get $6 + i32.gt_s if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 3 + i32.shl + i32.add local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add i64.load offset=8 + i64.store + local.get $6 + i32.const 1 + i32.add local.set $6 - local.get $0 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add i64.load local.set $7 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $6 local.get $7 - local.get $1 + local.get $8 + local.get $5 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 i32.lt_s if local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add local.get $7 - i64.store offset=8 - local.get $0 + i64.store local.get $6 + i32.const 1 + i32.sub + local.set $6 + else + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $8 i64.store + local.get $2 + i32.const 1 + i32.add + local.set $2 end - br $~lib/typedarray/SORT<~lib/typedarray/Int64Array,i64>|inlined.0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|2 end - local.get $2 - local.tee $4 - i32.const 256 - i32.lt_s + end + ) + (func $~lib/util/sort/SORT (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 i64) + (local $10 i32) + (local $11 i64) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s if - local.get $0 - local.set $2 - local.get $1 - local.set $5 - loop $for-loop|0 - local.get $4 - local.get $8 - i32.gt_s + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne if - local.get $2 - local.get $8 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $6 - local.get $8 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 - local.get $0 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $5 - i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $7 - i64.store - br $while-continue|1 - end - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $6 - i64.store - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|0 + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 end + local.get $0 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $11 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $11 + local.get $9 + local.get $9 + local.get $11 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + i64.load offset=16 + local.set $13 + i32.const 2 + global.set $~argumentsLength + local.get $9 + local.get $11 + local.get $1 + select + local.tee $9 + local.get $13 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $1 + local.get $0 + local.get $13 + local.get $9 + local.get $1 + select + i64.store offset=8 + local.get $0 + local.get $9 + local.get $13 + local.get $1 + select + i64.store offset=16 end - else local.get $0 - local.get $4 + i64.load + local.set $9 + local.get $0 + i64.load offset=8 + local.set $11 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $11 + local.get $9 + local.get $9 + local.get $11 + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + i64.store + local.get $0 + local.get $9 + local.get $11 local.get $1 - call $~lib/util/sort/weakHeapSort + select + i64.store offset=8 + return end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return end - local.get $3 - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) - local.get $0 - local.get $1 - i64.gt_s - local.get $0 - local.get $1 - i64.lt_s - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) - local.get $0 + i32.const 33 local.get $1 - i64.lt_s - local.get $0 - local.get $1 - i64.gt_s + i32.clz i32.sub - ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i64) - (local $8 i32) - local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u + local.tee $6 i32.const 2 i32.shl - local.tee $3 - local.set $4 + local.tee $4 + i32.const 1 + i32.shl + local.set $7 global.get $~lib/rt/tlsf/ROOT i32.eqz if call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.get $4 + local.get $7 call $~lib/rt/tlsf/allocateBlock i32.const 4 i32.add - local.tee $6 + local.tee $12 + local.get $4 + i32.add + local.set $14 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub local.set $4 - loop $for-loop|0 + loop $for-loop|1 local.get $4 - i32.const 0 - i32.gt_s + local.get $6 + i32.lt_u if + local.get $12 local.get $4 - local.set $3 - loop $while-continue|1 - local.get $3 - i32.const 1 - i32.and - local.get $6 - local.get $3 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $3 - i32.const 1 - i32.shr_s - i32.shr_u - i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end - end - local.get $0 - local.get $3 - i32.const 1 - i32.shr_s - local.tee $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $5 - local.get $0 - local.get $4 - i32.const 3 + i32.const 2 i32.shl i32.add - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 - i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $6 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.get $5 - i64.store - local.get $0 - local.get $3 - i32.const 3 - i32.shl - i32.add - local.get $7 - i64.store - end + i32.const -1 + i32.store local.get $4 i32.const 1 - i32.sub + i32.add local.set $4 - br $for-loop|0 + br $for-loop|1 end end local.get $1 + i32.const 3 + i32.shl + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $15 + local.get $0 + i32.const 0 + local.get $1 i32.const 1 i32.sub - local.set $4 - loop $for-loop|2 + local.tee $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $4 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $10 + i32.const 31 + local.get $10 + i32.const 31 + i32.lt_s + select + local.tee $1 local.get $4 - i32.const 2 - i32.ge_s + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $10 + i32.lt_s if local.get $0 - i64.load - local.set $5 - local.get $0 - local.get $0 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $1 - i64.load - i64.store local.get $1 - local.get $5 - i64.store i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 + i32.add + local.tee $6 + local.get $10 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $4 + local.get $6 + i32.sub + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl + local.get $10 + local.get $6 + i32.const 31 i32.add - local.tee $3 + local.tee $4 + local.get $4 + local.get $10 i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end + select + local.tee $4 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s + local.get $3 + local.get $6 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $10 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $7 + loop $for-loop|3 + local.get $5 + local.get $7 + i32.gt_u if - local.get $0 - i64.load - local.set $5 - local.get $0 - local.get $1 - i32.const 3 + local.get $12 + local.get $5 + i32.const 2 i32.shl i32.add - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.lt_s + local.tee $8 + i32.const -1 + i32.ne if - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u + local.get $0 + local.get $8 + local.get $14 + local.get $5 i32.const 2 i32.shl - i32.add local.tee $3 - local.get $3 + i32.add i32.load i32.const 1 + i32.add local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 3 - i32.shl + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $12 i32.add - local.get $5 - i64.store - local.get $0 - local.get $7 - i64.store + i32.const -1 + i32.store + local.get $8 + local.set $3 end - local.get $1 + local.get $5 i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 + i32.sub + local.set $5 + br $for-loop|3 end end + local.get $12 + local.get $7 + i32.const 2 + i32.shl + local.tee $5 + i32.add + local.get $3 + i32.store + local.get $5 + local.get $14 + i32.add + local.get $1 + i32.store + local.get $6 + local.set $3 local.get $4 + local.set $1 + local.get $7 + local.set $5 + br $while-continue|2 + end + end + loop $for-loop|4 + local.get $5 + if + local.get $12 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $1 + i32.const -1 + i32.ne + if + local.get $0 + local.get $1 + local.get $14 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $10 + local.get $15 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $5 i32.const 1 i32.sub - local.set $4 - br $for-loop|2 + local.set $5 + br $for-loop|4 end end - local.get $6 + local.get $15 call $~lib/rt/tlsf/__free + local.get $12 + call $~lib/rt/tlsf/__free + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) local.get $0 - i64.load offset=8 - local.set $5 + local.get $1 + i64.gt_u local.get $0 + local.get $1 + i64.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) local.get $0 - i64.load - i64.store offset=8 + local.get $1 + i64.lt_u local.get $0 - local.get $5 - i64.store + local.get $1 + i64.gt_u + i32.sub ) - (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i64) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 f32) (local $8 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 - local.tee $3 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.tee $2 - i32.const 1 - i32.le_u - br_if $~lib/typedarray/SORT<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $3 - i32.load offset=4 - local.set $0 + local.get $1 + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.tee $8 + i32.const 1 + i32.and + local.get $3 + local.get $8 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.eqz + select + i32.add + local.set $8 + loop $for-loop|0 local.get $2 - i32.const 2 - i32.eq + local.get $8 + i32.ge_s if local.get $0 - i64.load offset=8 + local.get $8 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load + local.set $5 + local.get $3 + f32.load offset=4 + local.tee $7 local.set $6 - local.get $0 - i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $6 + local.get $5 local.get $7 - local.get $1 + local.get $4 i32.load - call_indirect $0 (type $i64_i64_=>_i32) + call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 - i32.lt_s + i32.le_s if - local.get $0 + local.get $5 + local.set $6 local.get $7 - i64.store offset=8 - local.get $0 - local.get $6 - i64.store + local.set $5 + end + local.get $8 + i32.const 1 + i32.sub + local.set $3 + loop $while-continue|1 + local.get $1 + local.get $3 + i32.le_s + if + block $while-break|1 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $7 + i32.const 2 + global.set $~argumentsLength + local.get $7 + local.get $5 + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + br_if $while-break|1 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $7 + f32.store offset=8 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|1 + end + end end - br $~lib/typedarray/SORT<~lib/typedarray/Uint64Array,u64>|inlined.0 - end - local.get $2 - local.tee $4 - i32.const 256 - i32.lt_s - if local.get $0 - local.set $2 - local.get $1 - local.set $5 - loop $for-loop|0 - local.get $4 - local.get $8 - i32.gt_s + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store offset=8 + loop $while-continue|2 + local.get $1 + local.get $3 + i32.le_s if - local.get $2 - local.get $8 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $6 - local.get $8 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 + block $while-break|2 local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $5 + i32.const 2 + global.set $~argumentsLength + local.get $5 + local.get $6 + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $2 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $5 - i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $7 - i64.store - br $while-continue|1 - end - end + i32.le_s + br_if $while-break|2 + local.get $0 + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $5 + f32.store offset=4 + local.get $3 + i32.const 1 + i32.sub + local.set $3 + br $while-continue|2 end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $6 - i64.store - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|0 end end - else local.get $0 - local.get $4 - local.get $1 - call $~lib/util/sort/weakHeapSort + local.get $3 + i32.const 2 + i32.shl + i32.add + local.get $6 + f32.store offset=4 + local.get $8 + i32.const 2 + i32.add + local.set $8 + br $for-loop|0 end end - local.get $3 ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) - local.get $0 - local.get $1 - i64.gt_u - local.get $0 + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 f32) + (local $6 f32) + (local $7 i32) local.get $1 - i64.lt_u - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $2 + i32.eq + if + local.get $1 + return + end local.get $0 local.get $1 - i64.lt_u + i32.const 2 + i32.shl + i32.add + f32.load local.get $0 local.get $1 - i64.gt_u - i32.sub - ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) - (local $6 i32) - (local $7 f32) - (local $8 i32) - local.get $1 - i32.const 31 + i32.const 1 i32.add - i32.const 5 - i32.shr_u + local.tee $4 i32.const 2 i32.shl - local.tee $3 - local.set $4 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $4 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 i32.add - local.tee $6 - i32.const 0 + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $4 - i32.const 0 - i32.gt_s - if + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $2 local.get $4 - local.set $3 - loop $while-continue|1 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $7 + f32.load offset=4 + local.get $7 + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $4 i32.const 1 - i32.and - local.get $6 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $2 + loop $while-continue|1 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.tee $3 + f32.load + local.set $5 local.get $3 - i32.const 6 - i32.shr_u + local.get $0 + local.get $2 i32.const 2 i32.shl i32.add - i32.load + local.tee $3 + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $3 + local.get $5 + f32.store + local.get $2 i32.const 1 - i32.shr_s - i32.shr_u + i32.sub + local.set $2 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $2 + local.get $4 + i32.gt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + local.tee $1 + f32.load offset=4 + local.get $1 + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + if + local.get $4 i32.const 1 - i32.and - i32.eq - if - local.get $3 - i32.const 1 - i32.shr_s - local.set $3 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|2 end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 f32) + (local $8 f32) + (local $9 i32) + (local $10 i32) + local.get $3 + local.get $2 + i32.const 1 + i32.sub + local.tee $6 + i32.add + local.set $9 + local.get $6 + i32.const 1 + i32.add + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $2 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 2 + i32.shl + local.tee $10 + i32.add + local.get $0 + local.get $10 + i32.add + f32.load + f32.store + br $for-loop|0 + end + end + loop $for-loop|1 + local.get $3 + local.get $6 + i32.gt_s + if + local.get $4 + local.get $9 + local.get $6 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $3 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + f32.store + local.get $6 i32.const 1 - i32.shr_s - local.tee $3 + i32.add + local.set $6 + br $for-loop|1 + end + end + loop $for-loop|2 + local.get $1 + local.get $3 + i32.le_s + if + local.get $4 + local.get $6 i32.const 2 i32.shl i32.add f32.load - local.set $5 - local.get $0 + local.set $7 local.get $4 + local.get $2 i32.const 2 i32.shl i32.add f32.load - local.set $7 + local.set $8 i32.const 2 global.set $~argumentsLength - local.get $5 local.get $7 - local.get $2 + local.get $8 + local.get $5 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 i32.lt_s if - local.get $6 - local.get $4 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.tee $8 - local.get $8 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.xor - i32.store local.get $0 - local.get $4 + local.get $1 i32.const 2 i32.shl i32.add - local.get $5 + local.get $7 f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + else local.get $0 - local.get $3 + local.get $1 i32.const 2 i32.shl i32.add - local.get $7 + local.get $8 f32.store + local.get $2 + i32.const 1 + i32.add + local.set $2 end - local.get $4 + local.get $1 i32.const 1 - i32.sub - local.set $4 - br $for-loop|0 + i32.add + local.set $1 + br $for-loop|2 end end + ) + (func $~lib/util/sort/SORT (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 i64) + (local $10 i32) + (local $11 i32) + (local $12 f32) + (local $13 i32) + (local $14 f32) + (local $15 i32) + (local $16 f32) local.get $1 - i32.const 1 - i32.sub - local.set $4 - loop $for-loop|2 - local.get $4 - i32.const 2 - i32.ge_s + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s if + return + end + block $break|0 + block $case1|0 + local.get $1 + i32.const 3 + i32.ne + if + local.get $1 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $16 + local.get $0 + f32.load offset=4 + local.set $14 + i32.const 2 + global.set $~argumentsLength + local.get $0 + local.get $14 + local.get $16 + local.get $16 + local.get $14 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + f32.load offset=8 + local.set $12 + i32.const 2 + global.set $~argumentsLength + local.get $16 + local.get $14 + local.get $1 + select + local.tee $16 + local.get $12 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $1 + local.get $0 + local.get $12 + local.get $16 + local.get $1 + select + f32.store offset=4 + local.get $0 + local.get $16 + local.get $12 + local.get $1 + select + f32.store offset=8 + end local.get $0 f32.load - local.set $5 + local.set $16 local.get $0 + f32.load offset=4 + local.set $14 + i32.const 2 + global.set $~argumentsLength local.get $0 - local.get $4 + local.get $14 + local.get $16 + local.get $16 + local.get $14 + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.tee $1 + select + f32.store + local.get $0 + local.get $16 + local.get $14 + local.get $1 + select + f32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + i32.const 33 + local.get $1 + i32.clz + i32.sub + local.tee $5 + i32.const 2 + i32.shl + local.tee $7 + i32.const 1 + i32.shl + local.set $4 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $4 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $13 + local.get $7 + i32.add + local.set $11 + i32.const 0 + local.set $7 + loop $for-loop|1 + local.get $5 + local.get $7 + i32.gt_u + if + local.get $13 + local.get $7 i32.const 2 i32.shl i32.add - local.tee $1 - f32.load - f32.store + i32.const -1 + i32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + local.set $7 + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + local.get $7 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.set $10 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + local.tee $15 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $1 + i32.const 1 + i32.add + local.tee $7 + i32.const 32 + i32.lt_s + if + local.get $0 + i32.const 0 + local.get $15 + i32.const 31 + local.get $15 + i32.const 31 + i32.lt_s + select + local.tee $1 + local.get $7 + local.get $2 + call $~lib/util/sort/insertionSort + end + loop $while-continue|2 + local.get $1 + local.get $15 + i32.lt_s + if + local.get $0 local.get $1 + i32.const 1 + i32.add + local.tee $5 + local.get $15 + local.get $2 + call $~lib/util/sort/extendRunRight + local.tee $7 local.get $5 - f32.store + i32.sub i32.const 1 - local.set $1 - loop $while-continue|3 - local.get $4 - local.get $6 - local.get $1 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $1 - i32.shr_u - i32.const 1 - i32.and - local.get $1 - i32.const 1 - i32.shl + i32.add + local.tee $4 + i32.const 32 + i32.lt_s + if + local.get $0 + local.get $5 + local.get $15 + local.get $5 + i32.const 31 i32.add - local.tee $3 + local.tee $7 + local.get $7 + local.get $15 i32.gt_s - if - local.get $3 - local.set $1 - br $while-continue|3 - end + select + local.tee $7 + local.get $4 + local.get $2 + call $~lib/util/sort/insertionSort end - loop $while-continue|4 - local.get $1 - i32.const 0 - i32.gt_s + local.get $3 + local.get $5 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $15 + i32.const 1 + i32.add + i64.extend_i32_u + local.tee $9 + i64.div_u + local.get $5 + local.get $7 + i32.add + i32.const 1 + i32.add + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $9 + i64.div_u + i64.xor + i32.wrap_i64 + i32.clz + local.set $4 + loop $for-loop|3 + local.get $4 + local.get $6 + i32.lt_u if - local.get $0 - f32.load - local.set $5 - local.get $0 - local.get $1 + local.get $13 + local.get $6 i32.const 2 i32.shl i32.add - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $5 - local.get $7 - local.get $2 i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s + local.tee $8 + i32.const -1 + i32.ne if + local.get $0 + local.get $8 + local.get $11 local.get $6 - local.get $1 - i32.const 5 - i32.shr_u i32.const 2 i32.shl - i32.add local.tee $3 - local.get $3 + i32.add i32.load i32.const 1 + i32.add local.get $1 - i32.shl - i32.xor - i32.store - local.get $0 - local.get $1 - i32.const 2 - i32.shl + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $3 + local.get $13 i32.add - local.get $5 - f32.store - local.get $0 - local.get $7 - f32.store + i32.const -1 + i32.store + local.get $8 + local.set $3 end - local.get $1 + local.get $6 i32.const 1 - i32.shr_s - local.set $1 - br $while-continue|4 + i32.sub + local.set $6 + br $for-loop|3 end end + local.get $13 local.get $4 - i32.const 1 - i32.sub - local.set $4 - br $for-loop|2 + i32.const 2 + i32.shl + local.tee $6 + i32.add + local.get $3 + i32.store + local.get $6 + local.get $11 + i32.add + local.get $1 + i32.store + local.get $5 + local.set $3 + local.get $7 + local.set $1 + local.get $4 + local.set $6 + br $while-continue|2 end end - local.get $6 - call $~lib/rt/tlsf/__free - local.get $0 - f32.load offset=4 - local.set $5 - local.get $0 - local.get $0 - f32.load - f32.store offset=4 - local.get $0 - local.get $5 - f32.store - ) - (func $~lib/typedarray/Float32Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 f32) - (local $7 f32) - (local $8 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 - local.tee $3 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.tee $2 - i32.const 1 - i32.le_u - br_if $~lib/typedarray/SORT<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $3 - i32.load offset=4 - local.set $0 - local.get $2 - i32.const 2 - i32.eq + loop $for-loop|4 + local.get $6 if - local.get $0 - f32.load offset=4 - local.set $6 - local.get $0 - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength + local.get $13 local.get $6 - local.get $7 - local.get $1 + i32.const 2 + i32.shl + i32.add i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s + local.tee $1 + i32.const -1 + i32.ne if local.get $0 - local.get $7 - f32.store offset=4 - local.get $0 + local.get $1 + local.get $11 local.get $6 - f32.store - end - br $~lib/typedarray/SORT<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $2 - local.tee $4 - i32.const 256 - i32.lt_s - if - local.get $0 - local.set $2 - local.get $1 - local.set $5 - loop $for-loop|0 - local.get $4 - local.get $8 - i32.gt_s - if - local.get $2 - local.get $8 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $6 - local.get $8 - i32.const 1 - i32.sub - local.set $0 - loop $while-continue|1 - local.get $0 - i32.const 0 - i32.ge_s - if - block $while-break|1 - local.get $2 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $7 - i32.const 2 - global.set $~argumentsLength - local.get $6 - local.get $7 - local.get $5 - i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.ge_s - br_if $while-break|1 - local.get $0 - local.tee $1 - i32.const 1 - i32.sub - local.set $0 - local.get $2 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - f32.store - br $while-continue|1 - end - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - f32.store - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $15 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns end - else - local.get $0 - local.get $4 - local.get $1 - call $~lib/util/sort/weakHeapSort + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|4 end end - local.get $3 + local.get $10 + call $~lib/rt/tlsf/__free + local.get $13 + call $~lib/rt/tlsf/__free ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) (local $2 i32) @@ -38990,7 +43024,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -39382,7 +43416,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -39885,7 +43919,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -40290,7 +44324,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -40695,7 +44729,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -41102,7 +45136,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -41509,7 +45543,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -41914,7 +45948,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -42319,7 +46353,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -42817,7 +46851,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -43356,7 +47390,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -43400,16 +47434,16 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i64.const 0 i64.store offset=16 - local.get $1 + local.get $0 i64.const 0 i64.store offset=24 memory.size @@ -43451,21 +47485,21 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -43479,9 +47513,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub if @@ -43492,7 +47526,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 12 i32.ne @@ -43504,7 +47538,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 @@ -43517,7 +47551,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -43530,7 +47564,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -43544,13 +47578,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#subarray - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -43564,9 +47598,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub i32.const 4 @@ -43579,7 +47613,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 4 i32.ne @@ -43591,7 +47625,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -43607,48 +47641,48 @@ global.get $~lib/memory/__stack_pointer i32.const 8 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 2 f64.const 7 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 3 f64.const 6 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 4 f64.const 5 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 5 f64.const 4 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 6 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 7 f64.const 8 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 i32.const 6 call $~lib/typedarray/Float64Array#subarray - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u @@ -43662,9 +47696,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load i32.sub i32.const 16 @@ -43677,7 +47711,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 32 i32.ne @@ -43691,16 +47725,16 @@ end i32.const 0 global.set $~argumentsLength - local.get $0 + local.get $1 call $~lib/typedarray/Float64Array#sort@varargs drop - local.get $0 + local.get $1 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 4 f64.eq if (result i32) - local.get $0 + local.get $1 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 5 @@ -43709,7 +47743,7 @@ i32.const 0 end if (result i32) - local.get $0 + local.get $1 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 6 @@ -43718,7 +47752,7 @@ i32.const 0 end if (result i32) - local.get $0 + local.get $1 i32.const 3 call $~lib/typedarray/Float64Array#__get f64.const 7 @@ -43738,21 +47772,21 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const -32 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 2 i32.const 256 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get if @@ -43763,7 +47797,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 @@ -43776,7 +47810,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 255 @@ -43824,12 +47858,12 @@ i32.const 15 i32.const 1728 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $2 - local.get $1 + local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -43850,12 +47884,12 @@ i32.const 15 i32.const 1808 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $2 - local.get $1 + local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -43876,12 +47910,12 @@ i32.const 15 i32.const 1840 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $2 - local.get $1 + local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -43902,12 +47936,12 @@ i32.const 15 i32.const 1872 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $2 - local.get $1 + local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -43928,12 +47962,12 @@ i32.const 15 i32.const 1904 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $2 - local.get $1 + local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -43949,14 +47983,14 @@ i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int8Array#fill - local.get $0 + local.get $1 i32.load offset=8 i32.const 3 i32.ne @@ -43968,9 +48002,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load i32.sub i32.const 1 @@ -43983,7 +48017,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 3 i32.ne @@ -44000,12 +48034,12 @@ i32.const 15 i32.const 1936 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -44021,12 +48055,12 @@ i32.const 15 i32.const 1968 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $2 - local.get $1 + local.get $0 call $std/typedarray/isInt8ArrayEqual i32.eqz if @@ -44070,35 +48104,35 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 1 i32.gt_s select - local.set $1 + local.set $0 i32.const 3 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 3 i32.gt_s select - local.set $0 + local.set $1 loop $for-loop|0 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.const 1 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|0 end end @@ -44107,12 +48141,12 @@ i32.const 16 i32.const 2000 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $3 - local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44125,7 +48159,7 @@ end local.get $3 i32.load offset=4 - local.set $0 + local.set $1 i32.const 0 local.get $3 i32.load offset=8 @@ -44136,23 +48170,23 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 loop $for-loop|01 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $0 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|01 end end @@ -44161,12 +48195,12 @@ i32.const 16 i32.const 2048 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $3 - local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44185,38 +48219,38 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 0 i32.gt_s select - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 3 i32.sub - local.tee $0 + local.tee $1 i32.const 0 - local.get $0 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $for-loop|03 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.const 1 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|03 end end @@ -44225,12 +48259,12 @@ i32.const 16 i32.const 2096 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $3 - local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44248,32 +48282,32 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 + local.tee $1 i32.const 2 i32.sub - local.tee $1 + local.tee $0 i32.const 0 - local.get $1 + local.get $0 i32.const 0 i32.gt_s select - local.set $1 + local.set $0 loop $for-loop|05 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.const 2 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|05 end end @@ -44282,12 +48316,12 @@ i32.const 16 i32.const 2144 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $3 - local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44306,35 +48340,35 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i32.const 1 i32.gt_s select - local.set $1 + local.set $0 i32.const 0 - local.get $0 - local.get $0 + local.get $1 + local.get $1 i32.const 0 i32.gt_s select - local.set $0 + local.set $1 loop $for-loop|07 local.get $0 local.get $1 - i32.gt_s + i32.lt_s if local.get $2 - local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|07 end end @@ -44343,12 +48377,12 @@ i32.const 16 i32.const 2192 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $3 - local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44368,7 +48402,7 @@ i32.store offset=12 local.get $4 i32.load offset=4 - local.set $0 + local.set $1 i32.const 0 local.get $4 i32.load offset=8 @@ -44379,23 +48413,23 @@ i32.const 0 i32.gt_s select - local.set $1 + local.set $0 loop $for-loop|09 - local.get $1 + local.get $0 local.get $2 i32.lt_s if - local.get $0 local.get $1 + local.get $0 i32.const 2 i32.shl i32.add i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|09 end end @@ -44445,12 +48479,12 @@ i32.const 16 i32.const 2240 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $4 - local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44466,12 +48500,12 @@ i32.const 16 i32.const 2272 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $3 - local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44485,40 +48519,40 @@ global.get $~lib/memory/__stack_pointer i32.const 6 call $~lib/typedarray/Int8Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 5 i32.const 6 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 6 call $~lib/typedarray/Int8Array#subarray - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 2 @@ -44531,7 +48565,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 5 i32.ne @@ -44543,9 +48577,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub i32.const 1 @@ -44558,7 +48592,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 5 i32.ne @@ -44571,13 +48605,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 5 call $~lib/typedarray/Int8Array#subarray - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -44590,7 +48624,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 4 i32.ne @@ -44602,9 +48636,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub i32.const 2 @@ -44617,7 +48651,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 4 i32.ne @@ -44630,13 +48664,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 4 call $~lib/typedarray/Int8Array#subarray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 4 @@ -44649,7 +48683,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.ne @@ -44661,9 +48695,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub i32.const 3 @@ -44676,7 +48710,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 3 i32.ne @@ -44691,55 +48725,55 @@ global.get $~lib/memory/__stack_pointer i32.const 5 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 4 i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice local.tee $2 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2320 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44755,28 +48789,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2368 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44792,28 +48826,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2416 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44829,28 +48863,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 2 i32.const 2 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2464 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44866,28 +48900,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2512 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44903,28 +48937,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 3 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2560 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44940,28 +48974,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 1 i32.const 2 i32.const 4 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2608 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -44977,28 +49011,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2656 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45014,28 +49048,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 0 i32.const -2 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2704 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45051,28 +49085,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -2 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2752 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45088,28 +49122,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const -1 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2800 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45125,28 +49159,28 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.const -4 i32.const -3 i32.const 2147483647 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=20 i32.const 5 i32.const 2 i32.const 16 i32.const 2848 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 local.get $0 + i32.store offset=4 local.get $1 + local.get $0 call $std/typedarray/isInt32ArrayEqual i32.eqz if @@ -45187,9 +49221,9 @@ i32.const 1 i32.const 4 call $~lib/typedarray/Int32Array#subarray - local.tee $1 + local.tee $0 i32.store offset=16 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -45203,9 +49237,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub i32.const 4 @@ -45218,7 +49252,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 12 i32.ne @@ -45235,9 +49269,9 @@ i32.const 1 i32.const 3 call $~lib/typedarray/Int32Array#slice - local.tee $0 + local.tee $1 i32.store offset=8 - local.get $0 + local.get $1 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 2 @@ -45250,7 +49284,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -45263,7 +49297,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u @@ -45277,9 +49311,9 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=4 - local.get $0 + local.get $1 i32.load i32.sub if @@ -45290,7 +49324,7 @@ call $~lib/builtins/abort unreachable end - local.get $0 + local.get $1 i32.load offset=8 i32.const 8 i32.ne @@ -45303,13 +49337,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -45322,7 +49356,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -45336,9 +49370,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub if @@ -45349,7 +49383,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 4 i32.ne @@ -45366,9 +49400,9 @@ i32.const 0 i32.const 2147483647 call $~lib/typedarray/Int32Array#slice - local.tee $1 + local.tee $0 i32.store offset=24 - local.get $1 + local.get $0 local.get $2 i32.eq if @@ -45379,7 +49413,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -45396,9 +49430,9 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=4 - local.get $1 + local.get $0 i32.load i32.sub local.get $2 @@ -45415,7 +49449,7 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.load offset=8 local.get $2 i32.load offset=8 @@ -45437,10 +49471,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $3 @@ -45461,7 +49495,7 @@ i32.const 2896 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -45469,29 +49503,29 @@ i32.load offset=8 local.set $2 loop $for-loop|011 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength local.get $9 - local.get $1 local.get $0 + local.get $1 local.get $3 i32.const 2896 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|011 end end @@ -45530,10 +49564,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $3 @@ -45554,7 +49588,7 @@ i32.const 2928 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -45562,29 +49596,29 @@ i32.load offset=8 local.set $2 loop $for-loop|013 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength local.get $5 - local.get $1 local.get $0 + local.get $1 local.get $3 i32.const 2928 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|013 end end @@ -45607,10 +49641,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $3 @@ -45631,7 +49665,7 @@ i32.const 2960 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.set $5 local.get $3 @@ -45641,29 +49675,29 @@ i32.load offset=8 local.set $2 loop $for-loop|016 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength local.get $5 - local.get $1 local.get $0 + local.get $1 local.get $3 i32.const 2960 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|016 end end @@ -45686,10 +49720,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $3 @@ -45710,7 +49744,7 @@ i32.const 2992 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.set $9 local.get $3 @@ -45722,31 +49756,31 @@ i32.shr_u local.set $2 loop $for-loop|08 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength local.get $9 - local.get $1 local.get $0 + local.get $1 local.get $3 i32.const 2992 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|08 end end @@ -45769,10 +49803,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $3 @@ -45793,7 +49827,7 @@ i32.const 3024 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.set $9 local.get $3 @@ -45805,31 +49839,31 @@ i32.shr_u local.set $2 loop $for-loop|010 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength local.get $9 - local.get $1 local.get $0 + local.get $1 local.get $3 i32.const 3024 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|010 end end @@ -45852,10 +49886,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $3 @@ -45876,7 +49910,7 @@ i32.const 3056 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.set $9 local.get $3 @@ -45888,31 +49922,31 @@ i32.shr_u local.set $2 loop $for-loop|012 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength local.get $9 - local.get $1 local.get $0 + local.get $1 local.get $3 i32.const 3056 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|012 end end @@ -45933,10 +49967,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $3 @@ -45957,7 +49991,7 @@ i32.const 3088 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.set $9 local.get $3 @@ -45969,31 +50003,31 @@ i32.shr_u local.set $2 loop $for-loop|014 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength local.get $9 - local.get $1 local.get $0 + local.get $1 local.get $3 i32.const 3088 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $9 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|014 end end @@ -46014,10 +50048,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $4 @@ -46038,7 +50072,7 @@ i32.const 3120 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -46046,14 +50080,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|01622 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -46063,16 +50097,16 @@ global.set $~argumentsLength local.get $13 local.get $10 - local.get $0 + local.get $1 local.get $4 i32.const 3120 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|01622 end end @@ -46093,10 +50127,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $4 @@ -46117,7 +50151,7 @@ i32.const 3152 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 i64.const 0 local.set $13 local.get $4 @@ -46127,14 +50161,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|018 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -46144,16 +50178,16 @@ global.set $~argumentsLength local.get $13 local.get $10 - local.get $0 + local.get $1 local.get $4 i32.const 3152 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) local.set $13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|018 end end @@ -46174,10 +50208,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $4 @@ -46198,7 +50232,7 @@ i32.const 3184 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -46206,14 +50240,14 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|021 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -46223,16 +50257,16 @@ global.set $~argumentsLength local.get $14 local.get $11 - local.get $0 + local.get $1 local.get $4 i32.const 3184 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) local.set $14 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|021 end end @@ -46253,10 +50287,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $4 @@ -46277,7 +50311,7 @@ i32.const 3216 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -46285,14 +50319,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|023 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -46302,16 +50336,16 @@ global.set $~argumentsLength local.get $15 local.get $12 - local.get $0 + local.get $1 local.get $4 i32.const 3216 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) local.set $15 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|023 end end @@ -46332,39 +50366,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int8Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int8Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Int8Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Int8Array#at i32.const 1 @@ -46383,39 +50417,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint8Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint8Array#at i32.const 1 @@ -46434,39 +50468,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint8ClampedArray#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint8ClampedArray#at i32.const 1 @@ -46485,39 +50519,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int16Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int16Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Int16Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Int16Array#at i32.const 1 @@ -46536,39 +50570,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint16Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint16Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint16Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint16Array#at i32.const 1 @@ -46587,39 +50621,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Int32Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int32Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Int32Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Int32Array#at i32.const 1 @@ -46638,39 +50672,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 2 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 3 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint32Array#at i32.const 1 i32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint32Array#at i32.const 3 i32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint32Array#at i32.const 1 @@ -46689,39 +50723,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Int64Array#at i64.const 1 i64.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Int64Array#at i64.const 3 i64.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Int64Array#at i64.const 1 @@ -46740,39 +50774,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint64Array#at i64.const 1 i64.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Uint64Array#at i64.const 3 i64.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Uint64Array#at i64.const 1 @@ -46791,39 +50825,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Float32Array#at f32.const 1 f32.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Float32Array#at f32.const 3 f32.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Float32Array#at f32.const 1 @@ -46842,39 +50876,39 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Float64Array#at f64.const 1 f64.ne br_if $folding-inner2 - local.get $1 + local.get $0 i32.const -1 call $~lib/typedarray/Float64Array#at f64.const 3 f64.ne br_if $folding-inner3 - local.get $1 + local.get $0 i32.const -3 call $~lib/typedarray/Float64Array#at f64.const 1 @@ -46893,10 +50927,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $4 @@ -46917,7 +50951,7 @@ i32.const 3248 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -46935,17 +50969,17 @@ local.get $5 i32.add i32.load8_s - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $0 local.get $1 + local.get $0 local.get $5 local.get $4 i32.const 3248 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 + local.set $1 local.get $5 i32.const 1 i32.sub @@ -46953,7 +50987,7 @@ br $for-loop|025 end end - local.get $0 + local.get $1 i32.const 255 i32.and i32.const 6 @@ -46972,10 +51006,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $4 @@ -47004,31 +51038,31 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|039 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 local.get $2 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength local.get $5 - local.get $1 local.get $0 + local.get $1 local.get $4 i32.const 3280 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|039 end end @@ -47051,10 +51085,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $4 @@ -47083,31 +51117,31 @@ i32.load offset=8 i32.const 1 i32.sub - local.set $0 + local.set $1 loop $for-loop|042 - local.get $0 + local.get $1 i32.const 0 i32.ge_s if - local.get $0 + local.get $1 local.get $2 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength local.get $5 - local.get $1 local.get $0 + local.get $1 local.get $4 i32.const 3312 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) local.set $5 - local.get $0 + local.get $1 i32.const 1 i32.sub - local.set $0 + local.set $1 br $for-loop|042 end end @@ -47130,10 +51164,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $4 @@ -47154,7 +51188,7 @@ i32.const 3344 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -47176,17 +51210,17 @@ i32.shl i32.add i32.load16_s - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $0 local.get $1 + local.get $0 local.get $5 local.get $4 i32.const 3344 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 + local.set $1 local.get $5 i32.const 1 i32.sub @@ -47194,7 +51228,7 @@ br $for-loop|027 end end - local.get $0 + local.get $1 i32.const 65535 i32.and i32.const 6 @@ -47213,10 +51247,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $4 @@ -47237,7 +51271,7 @@ i32.const 3376 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -47259,17 +51293,17 @@ i32.shl i32.add i32.load16_u - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $0 local.get $1 + local.get $0 local.get $5 local.get $4 i32.const 3376 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 + local.set $1 local.get $5 i32.const 1 i32.sub @@ -47277,7 +51311,7 @@ br $for-loop|029 end end - local.get $0 + local.get $1 i32.const 65535 i32.and i32.const 6 @@ -47296,10 +51330,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $4 @@ -47320,7 +51354,7 @@ i32.const 3408 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -47342,17 +51376,17 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $0 local.get $1 + local.get $0 local.get $5 local.get $4 i32.const 3408 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 + local.set $1 local.get $5 i32.const 1 i32.sub @@ -47360,7 +51394,7 @@ br $for-loop|031 end end - local.get $0 + local.get $1 i32.const 6 i32.ne br_if $folding-inner5 @@ -47377,10 +51411,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $4 @@ -47401,7 +51435,7 @@ i32.const 3440 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -47423,17 +51457,17 @@ i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 4 global.set $~argumentsLength - local.get $0 local.get $1 + local.get $0 local.get $5 local.get $4 i32.const 3440 i32.load call_indirect $0 (type $i32_i32_i32_i32_=>_i32) - local.set $0 + local.set $1 local.get $5 i32.const 1 i32.sub @@ -47441,7 +51475,7 @@ br $for-loop|033 end end - local.get $0 + local.get $1 i32.const 6 i32.ne br_if $folding-inner5 @@ -47458,23 +51492,23 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Int64Array#__set @@ -47483,10 +51517,10 @@ i32.store offset=4 i64.const 0 local.set $13 - local.get $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u @@ -47498,7 +51532,7 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $5 i32.const 3 i32.shl @@ -47510,7 +51544,7 @@ local.get $13 local.get $10 local.get $5 - local.get $0 + local.get $1 i32.const 3472 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) @@ -47539,23 +51573,23 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 i64.const 1 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 1 i64.const 2 call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 2 i64.const 3 call $~lib/typedarray/Uint64Array#__set @@ -47564,10 +51598,10 @@ i32.store offset=4 i64.const 0 local.set $13 - local.get $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u @@ -47579,7 +51613,7 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $5 i32.const 3 i32.shl @@ -47591,7 +51625,7 @@ local.get $13 local.get $10 local.get $5 - local.get $0 + local.get $1 i32.const 3504 i32.load call_indirect $0 (type $i64_i64_i32_i32_=>_i64) @@ -47620,23 +51654,23 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 f32.const 1 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 1 f32.const 2 call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 2 f32.const 3 call $~lib/typedarray/Float32Array#__set @@ -47645,10 +51679,10 @@ i32.store offset=4 f32.const 0 local.set $14 - local.get $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load offset=8 i32.const 2 i32.shr_u @@ -47660,7 +51694,7 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $5 i32.const 2 i32.shl @@ -47672,7 +51706,7 @@ local.get $14 local.get $11 local.get $5 - local.get $0 + local.get $1 i32.const 3536 i32.load call_indirect $0 (type $f32_f32_i32_i32_=>_f32) @@ -47701,23 +51735,23 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 i32.const 0 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 2 f64.const 3 call $~lib/typedarray/Float64Array#__set @@ -47726,10 +51760,10 @@ i32.store offset=4 f64.const 0 local.set $15 - local.get $0 + local.get $1 i32.load offset=4 - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.load offset=8 i32.const 3 i32.shr_u @@ -47741,7 +51775,7 @@ i32.const 0 i32.ge_s if - local.get $1 + local.get $0 local.get $5 i32.const 3 i32.shl @@ -47753,7 +51787,7 @@ local.get $15 local.get $12 local.get $5 - local.get $0 + local.get $1 i32.const 3568 i32.load call_indirect $0 (type $f64_f64_i32_i32_=>_f64) @@ -47782,13 +51816,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $5 @@ -47818,16 +51852,16 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $5 i32.load offset=4 - local.set $0 + local.set $1 local.get $5 i32.load offset=8 local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new @@ -47844,17 +51878,17 @@ local.get $7 i32.gt_s if - local.get $0 + local.get $1 local.get $7 i32.add i32.load8_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $3 local.get $7 i32.add - local.get $1 + local.get $0 local.get $7 local.get $5 i32.const 3600 @@ -47920,13 +51954,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $5 @@ -47956,16 +51990,16 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $5 i32.load offset=4 - local.set $0 + local.set $1 local.get $5 i32.load offset=8 local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -47982,17 +52016,17 @@ local.get $7 i32.gt_s if - local.get $0 + local.get $1 local.get $7 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $3 local.get $7 i32.add - local.get $1 + local.get $0 local.get $7 local.get $5 i32.const 3632 @@ -48058,13 +52092,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 @@ -48094,16 +52128,16 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $5 i32.load offset=4 - local.set $0 + local.set $1 local.get $5 i32.load offset=8 local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new @@ -48120,17 +52154,17 @@ local.get $7 i32.gt_s if - local.get $0 + local.get $1 local.get $7 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength local.get $3 local.get $7 i32.add - local.get $1 + local.get $0 local.get $7 local.get $5 i32.const 3664 @@ -48196,13 +52230,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $8 @@ -48232,7 +52266,7 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $8 @@ -48243,7 +52277,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $1 + local.get $0 i32.const 12 i32.const 6 call $~lib/rt/itcms/__new @@ -48267,16 +52301,16 @@ local.get $9 i32.const 1 i32.shl - local.tee $0 + local.tee $1 i32.add i32.load16_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $6 i32.add - local.get $1 + local.get $0 local.get $9 local.get $8 i32.const 3696 @@ -48342,13 +52376,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $8 @@ -48378,7 +52412,7 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $8 @@ -48389,7 +52423,7 @@ i32.const 1 i32.shr_u local.set $3 - local.get $1 + local.get $0 i32.const 12 i32.const 7 call $~lib/rt/itcms/__new @@ -48413,16 +52447,16 @@ local.get $9 i32.const 1 i32.shl - local.tee $0 + local.tee $1 i32.add i32.load16_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $6 i32.add - local.get $1 + local.get $0 local.get $9 local.get $8 i32.const 3728 @@ -48488,13 +52522,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $8 @@ -48524,7 +52558,7 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $8 @@ -48535,7 +52569,7 @@ i32.const 2 i32.shr_u local.set $3 - local.get $1 + local.get $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new @@ -48559,16 +52593,16 @@ local.get $9 i32.const 2 i32.shl - local.tee $0 + local.tee $1 i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $6 i32.add - local.get $1 + local.get $0 local.get $9 local.get $8 i32.const 3760 @@ -48634,13 +52668,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $8 @@ -48670,7 +52704,7 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $8 @@ -48681,7 +52715,7 @@ i32.const 2 i32.shr_u local.set $3 - local.get $1 + local.get $0 i32.const 12 i32.const 9 call $~lib/rt/itcms/__new @@ -48705,16 +52739,16 @@ local.get $9 i32.const 2 i32.shl - local.tee $0 + local.tee $1 i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $6 i32.add - local.get $1 + local.get $0 local.get $9 local.get $8 i32.const 3792 @@ -48780,13 +52814,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $6 @@ -48816,7 +52850,7 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $6 @@ -48827,7 +52861,7 @@ i32.const 3 i32.shr_u local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 10 call $~lib/rt/itcms/__new @@ -48837,7 +52871,7 @@ local.get $4 i32.const 3 i32.shl - local.tee $0 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.tee $5 @@ -48851,13 +52885,13 @@ local.get $7 i32.const 3 i32.shl - local.tee $1 + local.tee $0 i32.add i64.load local.set $10 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $5 i32.add local.get $10 @@ -48884,7 +52918,7 @@ local.get $5 i32.store offset=4 local.get $8 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -48926,13 +52960,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $6 @@ -48962,7 +52996,7 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $6 @@ -48973,7 +53007,7 @@ i32.const 3 i32.shr_u local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 11 call $~lib/rt/itcms/__new @@ -48983,7 +53017,7 @@ local.get $4 i32.const 3 i32.shl - local.tee $0 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.tee $5 @@ -48997,13 +53031,13 @@ local.get $7 i32.const 3 i32.shl - local.tee $1 + local.tee $0 i32.add i64.load local.set $10 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $5 i32.add local.get $10 @@ -49030,7 +53064,7 @@ local.get $5 i32.store offset=4 local.get $8 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -49072,13 +53106,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $6 @@ -49108,7 +53142,7 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $6 @@ -49119,7 +53153,7 @@ i32.const 2 i32.shr_u local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 12 call $~lib/rt/itcms/__new @@ -49129,7 +53163,7 @@ local.get $4 i32.const 2 i32.shl - local.tee $0 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.tee $5 @@ -49143,13 +53177,13 @@ local.get $7 i32.const 2 i32.shl - local.tee $1 + local.tee $0 i32.add f32.load local.set $11 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $5 i32.add local.get $11 @@ -49176,7 +53210,7 @@ local.get $5 i32.store offset=4 local.get $8 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -49218,13 +53252,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $6 @@ -49254,7 +53288,7 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store local.get $6 @@ -49265,7 +53299,7 @@ i32.const 3 i32.shr_u local.set $4 - local.get $1 + local.get $0 i32.const 12 i32.const 13 call $~lib/rt/itcms/__new @@ -49275,7 +53309,7 @@ local.get $4 i32.const 3 i32.shl - local.tee $0 + local.tee $1 i32.const 0 call $~lib/rt/itcms/__new local.tee $5 @@ -49289,13 +53323,13 @@ local.get $7 i32.const 3 i32.shl - local.tee $1 + local.tee $0 i32.add f64.load local.set $12 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $0 local.get $5 i32.add local.get $12 @@ -49322,7 +53356,7 @@ local.get $5 i32.store offset=4 local.get $8 - local.get $0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -49373,10 +53407,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $5 @@ -49397,7 +53431,7 @@ i32.const 4304 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -49406,30 +53440,30 @@ i32.load offset=8 local.set $2 loop $for-loop|053 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4304 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|053 end end @@ -49441,7 +53475,7 @@ i32.const 4336 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.055 (result i32) local.get $5 i32.load offset=4 @@ -49450,30 +53484,30 @@ i32.load offset=8 local.set $2 loop $for-loop|056 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4336 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int8Array,i8>|inlined.055 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|056 end end @@ -49493,10 +53527,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $5 @@ -49517,7 +53551,7 @@ i32.const 4368 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -49526,30 +53560,30 @@ i32.load offset=8 local.set $2 loop $for-loop|058 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4368 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|058 end end @@ -49561,7 +53595,7 @@ i32.const 4400 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 (result i32) local.get $5 i32.load offset=4 @@ -49570,30 +53604,30 @@ i32.load offset=8 local.set $2 loop $for-loop|061 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4400 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.060 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|061 end end @@ -49613,10 +53647,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 @@ -49637,7 +53671,7 @@ i32.const 4432 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.064 (result i32) local.get $5 i32.load offset=4 @@ -49646,30 +53680,30 @@ i32.load offset=8 local.set $2 loop $for-loop|065 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4432 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.064 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|065 end end @@ -49681,7 +53715,7 @@ i32.const 4464 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.067 (result i32) local.get $5 i32.load offset=4 @@ -49690,30 +53724,30 @@ i32.load offset=8 local.set $2 loop $for-loop|068 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4464 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint8Array,u8>|inlined.067 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|068 end end @@ -49733,10 +53767,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $5 @@ -49757,7 +53791,7 @@ i32.const 4496 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -49768,32 +53802,32 @@ i32.shr_u local.set $2 loop $for-loop|070 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4496 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|070 end end @@ -49805,7 +53839,7 @@ i32.const 4528 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.072 (result i32) local.get $5 i32.load offset=4 @@ -49816,32 +53850,32 @@ i32.shr_u local.set $2 loop $for-loop|073 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4528 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int16Array,i16>|inlined.072 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|073 end end @@ -49861,10 +53895,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $5 @@ -49885,7 +53919,7 @@ i32.const 4560 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -49896,32 +53930,32 @@ i32.shr_u local.set $2 loop $for-loop|075 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4560 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|075 end end @@ -49933,7 +53967,7 @@ i32.const 4592 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.077 (result i32) local.get $5 i32.load offset=4 @@ -49944,32 +53978,32 @@ i32.shr_u local.set $2 loop $for-loop|078 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4592 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint16Array,u16>|inlined.077 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|078 end end @@ -49989,10 +54023,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $5 @@ -50013,7 +54047,7 @@ i32.const 4624 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -50024,32 +54058,32 @@ i32.shr_u local.set $2 loop $for-loop|080 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4624 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|080 end end @@ -50061,7 +54095,7 @@ i32.const 4656 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.082 (result i32) local.get $5 i32.load offset=4 @@ -50072,32 +54106,32 @@ i32.shr_u local.set $2 loop $for-loop|083 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4656 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int32Array,i32>|inlined.082 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|083 end end @@ -50117,10 +54151,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $5 @@ -50141,7 +54175,7 @@ i32.const 4688 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -50152,32 +54186,32 @@ i32.shr_u local.set $2 loop $for-loop|085 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4688 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|085 end end @@ -50189,7 +54223,7 @@ i32.const 4720 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.087 (result i32) local.get $5 i32.load offset=4 @@ -50200,32 +54234,32 @@ i32.shr_u local.set $2 loop $for-loop|088 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 1 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 4720 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint32Array,u32>|inlined.087 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|088 end end @@ -50245,10 +54279,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $3 @@ -50269,7 +54303,7 @@ i32.const 4752 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $3 i32.load offset=4 @@ -50278,14 +54312,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|090 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -50295,17 +54329,17 @@ global.set $~argumentsLength i32.const 1 local.get $10 - local.get $0 + local.get $1 local.get $3 i32.const 4752 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|090 end end @@ -50317,7 +54351,7 @@ i32.const 4784 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.092 (result i32) local.get $3 i32.load offset=4 @@ -50326,14 +54360,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|093 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -50343,17 +54377,17 @@ global.set $~argumentsLength i32.const 1 local.get $10 - local.get $0 + local.get $1 local.get $3 i32.const 4784 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Int64Array,i64>|inlined.092 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|093 end end @@ -50373,10 +54407,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $3 @@ -50397,7 +54431,7 @@ i32.const 4816 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $3 i32.load offset=4 @@ -50406,14 +54440,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|095 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -50423,17 +54457,17 @@ global.set $~argumentsLength i32.const 1 local.get $10 - local.get $0 + local.get $1 local.get $3 i32.const 4816 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|095 end end @@ -50445,7 +54479,7 @@ i32.const 4848 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.097 (result i32) local.get $3 i32.load offset=4 @@ -50454,14 +54488,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|098 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -50471,17 +54505,17 @@ global.set $~argumentsLength i32.const 1 local.get $10 - local.get $0 + local.get $1 local.get $3 i32.const 4848 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Uint64Array,u64>|inlined.097 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|098 end end @@ -50501,10 +54535,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $3 @@ -50525,7 +54559,7 @@ i32.const 4880 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $3 i32.load offset=4 @@ -50534,14 +54568,14 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0100 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -50551,17 +54585,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $0 + local.get $1 local.get $3 i32.const 4880 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0100 end end @@ -50573,7 +54607,7 @@ i32.const 4912 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0102 (result i32) local.get $3 i32.load offset=4 @@ -50582,14 +54616,14 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0103 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -50599,17 +54633,17 @@ global.set $~argumentsLength i32.const 1 local.get $11 - local.get $0 + local.get $1 local.get $3 i32.const 4912 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float32Array,f32>|inlined.0102 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0103 end end @@ -50629,10 +54663,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $3 @@ -50653,7 +54687,7 @@ i32.const 4944 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $3 i32.load offset=4 @@ -50662,14 +54696,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0105 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -50679,17 +54713,17 @@ global.set $~argumentsLength i32.const 1 local.get $12 - local.get $0 + local.get $1 local.get $3 i32.const 4944 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0105 end end @@ -50701,7 +54735,7 @@ i32.const 4976 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0107 (result i32) local.get $3 i32.load offset=4 @@ -50710,14 +54744,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0108 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -50727,17 +54761,17 @@ global.set $~argumentsLength i32.const 1 local.get $12 - local.get $0 + local.get $1 local.get $3 i32.const 4976 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/SOME<~lib/typedarray/Float64Array,f64>|inlined.0107 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0108 end end @@ -50757,10 +54791,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $3 @@ -50781,7 +54815,7 @@ i32.const 5008 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -50790,33 +54824,33 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 loop $for-loop|0110 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5008 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0110 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -50824,7 +54858,7 @@ i32.const 5040 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -50833,33 +54867,33 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0112 loop $for-loop|0113 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5040 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int8Array,i8>|inlined.0112 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0113 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -50876,10 +54910,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $3 @@ -50900,7 +54934,7 @@ i32.const 5072 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -50909,33 +54943,33 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 loop $for-loop|0115 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5072 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0115 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -50943,7 +54977,7 @@ i32.const 5104 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -50952,33 +54986,33 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 loop $for-loop|0118 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5104 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0117 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0118 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -50995,10 +55029,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $3 @@ -51019,7 +55053,7 @@ i32.const 5136 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51028,33 +55062,33 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0121 loop $for-loop|0122 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5136 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0121 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0122 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -51062,7 +55096,7 @@ i32.const 5168 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51071,33 +55105,33 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0124 loop $for-loop|0125 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5168 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint8Array,u8>|inlined.0124 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0125 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51114,10 +55148,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $3 @@ -51138,7 +55172,7 @@ i32.const 5200 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51149,35 +55183,35 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 loop $for-loop|0127 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5200 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0127 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -51185,7 +55219,7 @@ i32.const 5232 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51196,35 +55230,35 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0129 loop $for-loop|0130 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5232 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int16Array,i16>|inlined.0129 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0130 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51241,10 +55275,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $3 @@ -51265,7 +55299,7 @@ i32.const 5264 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51276,35 +55310,35 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 loop $for-loop|0132 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5264 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0132 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -51312,7 +55346,7 @@ i32.const 5296 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51323,35 +55357,35 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0134 loop $for-loop|0135 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5296 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint16Array,u16>|inlined.0134 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0135 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51368,10 +55402,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $3 @@ -51392,7 +55426,7 @@ i32.const 5328 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51403,35 +55437,35 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 loop $for-loop|0137 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5328 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0137 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -51439,7 +55473,7 @@ i32.const 5360 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51450,35 +55484,35 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0139 loop $for-loop|0140 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5360 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int32Array,i32>|inlined.0139 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0140 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51495,10 +55529,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $3 @@ -51519,7 +55553,7 @@ i32.const 5392 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51530,35 +55564,35 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 loop $for-loop|0142 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5392 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0142 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -51566,7 +55600,7 @@ i32.const 5424 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -51577,35 +55611,35 @@ local.set $2 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0144 loop $for-loop|0145 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 5424 i32.load call_indirect $0 (type $i32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint32Array,u32>|inlined.0144 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0145 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51622,10 +55656,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $4 @@ -51646,7 +55680,7 @@ i32.const 5456 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -51654,38 +55688,38 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 loop $for-loop|0147 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 5456 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0147 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -51693,7 +55727,7 @@ i32.const 5488 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -51701,38 +55735,38 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0149 loop $for-loop|0150 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 5488 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Int64Array,i64>|inlined.0149 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0150 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51749,10 +55783,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $4 @@ -51773,7 +55807,7 @@ i32.const 5520 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -51781,38 +55815,38 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 loop $for-loop|0152 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 5520 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0152 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -51820,7 +55854,7 @@ i32.const 5552 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -51828,38 +55862,38 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0154 loop $for-loop|0155 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 5552 i32.load call_indirect $0 (type $i64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Uint64Array,u64>|inlined.0154 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0155 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -51876,10 +55910,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $4 @@ -51900,7 +55934,7 @@ i32.const 5584 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -51908,38 +55942,38 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 loop $for-loop|0157 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 5584 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0157 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -51947,7 +55981,7 @@ i32.const 5616 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -51955,38 +55989,38 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0159 loop $for-loop|0160 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 5616 i32.load call_indirect $0 (type $f32_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float32Array,f32>|inlined.0159 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0160 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -52003,10 +56037,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $4 @@ -52027,7 +56061,7 @@ i32.const 5648 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -52035,38 +56069,38 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 loop $for-loop|0162 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 5648 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0162 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const 1 i32.ne br_if $folding-inner8 @@ -52074,7 +56108,7 @@ i32.const 5680 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -52082,38 +56116,38 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 block $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0164 loop $for-loop|0165 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 5680 i32.load call_indirect $0 (type $f64_i32_i32_=>_i32) br_if $~lib/typedarray/FIND_INDEX<~lib/typedarray/Float64Array,f64>|inlined.0164 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0165 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne br_if $folding-inner9 @@ -52130,10 +56164,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $5 @@ -52154,7 +56188,7 @@ i32.const 5712 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -52163,20 +56197,20 @@ i32.load offset=8 local.set $2 loop $for-loop|0167 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 5712 i32.load @@ -52184,10 +56218,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0167 end end @@ -52199,7 +56233,7 @@ i32.const 5744 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0169 (result i32) local.get $5 i32.load offset=4 @@ -52208,20 +56242,20 @@ i32.load offset=8 local.set $2 loop $for-loop|0170 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 5744 i32.load @@ -52229,10 +56263,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int8Array,i8>|inlined.0169 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0170 end end @@ -52252,10 +56286,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $5 @@ -52276,7 +56310,7 @@ i32.const 5776 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -52285,20 +56319,20 @@ i32.load offset=8 local.set $2 loop $for-loop|0172 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 5776 i32.load @@ -52306,10 +56340,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0172 end end @@ -52321,7 +56355,7 @@ i32.const 5808 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0174 (result i32) local.get $5 i32.load offset=4 @@ -52330,20 +56364,20 @@ i32.load offset=8 local.set $2 loop $for-loop|0175 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 5808 i32.load @@ -52351,10 +56385,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0174 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0175 end end @@ -52374,10 +56408,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $5 @@ -52398,7 +56432,7 @@ i32.const 5840 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0178 (result i32) local.get $5 i32.load offset=4 @@ -52407,20 +56441,20 @@ i32.load offset=8 local.set $2 loop $for-loop|0179 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 5840 i32.load @@ -52428,10 +56462,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0178 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0179 end end @@ -52443,7 +56477,7 @@ i32.const 5872 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0181 (result i32) local.get $5 i32.load offset=4 @@ -52452,20 +56486,20 @@ i32.load offset=8 local.set $2 loop $for-loop|0182 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 5872 i32.load @@ -52473,10 +56507,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint8Array,u8>|inlined.0181 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0182 end end @@ -52496,10 +56530,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $5 @@ -52520,7 +56554,7 @@ i32.const 5904 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -52531,22 +56565,22 @@ i32.shr_u local.set $2 loop $for-loop|0184 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 5904 i32.load @@ -52554,10 +56588,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0184 end end @@ -52569,7 +56603,7 @@ i32.const 5936 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0186 (result i32) local.get $5 i32.load offset=4 @@ -52580,22 +56614,22 @@ i32.shr_u local.set $2 loop $for-loop|0187 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 5936 i32.load @@ -52603,10 +56637,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int16Array,i16>|inlined.0186 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0187 end end @@ -52626,10 +56660,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $5 @@ -52650,7 +56684,7 @@ i32.const 5968 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -52661,22 +56695,22 @@ i32.shr_u local.set $2 loop $for-loop|0189 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 5968 i32.load @@ -52684,10 +56718,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0189 end end @@ -52699,7 +56733,7 @@ i32.const 6000 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0191 (result i32) local.get $5 i32.load offset=4 @@ -52710,22 +56744,22 @@ i32.shr_u local.set $2 loop $for-loop|0192 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 6000 i32.load @@ -52733,10 +56767,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint16Array,u16>|inlined.0191 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0192 end end @@ -52756,10 +56790,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $5 @@ -52780,7 +56814,7 @@ i32.const 6032 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -52791,22 +56825,22 @@ i32.shr_u local.set $2 loop $for-loop|0194 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 6032 i32.load @@ -52814,10 +56848,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0194 end end @@ -52829,7 +56863,7 @@ i32.const 6064 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0196 (result i32) local.get $5 i32.load offset=4 @@ -52840,22 +56874,22 @@ i32.shr_u local.set $2 loop $for-loop|0197 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 6064 i32.load @@ -52863,10 +56897,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int32Array,i32>|inlined.0196 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0197 end end @@ -52886,10 +56920,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $5 @@ -52910,7 +56944,7 @@ i32.const 6096 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) local.get $5 i32.load offset=4 @@ -52921,22 +56955,22 @@ i32.shr_u local.set $2 loop $for-loop|0199 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 6096 i32.load @@ -52944,10 +56978,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0199 end end @@ -52959,7 +56993,7 @@ i32.const 6128 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0201 (result i32) local.get $5 i32.load offset=4 @@ -52970,22 +57004,22 @@ i32.shr_u local.set $2 loop $for-loop|0202 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load - local.set $1 + local.set $0 i32.const 3 global.set $~argumentsLength i32.const 0 - local.get $1 local.get $0 + local.get $1 local.get $5 i32.const 6128 i32.load @@ -52993,10 +57027,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint32Array,u32>|inlined.0201 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0202 end end @@ -53016,10 +57050,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $3 @@ -53040,7 +57074,7 @@ i32.const 6160 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) local.get $3 i32.load offset=4 @@ -53049,14 +57083,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0204 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53066,7 +57100,7 @@ global.set $~argumentsLength i32.const 0 local.get $10 - local.get $0 + local.get $1 local.get $3 i32.const 6160 i32.load @@ -53074,10 +57108,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0204 end end @@ -53089,7 +57123,7 @@ i32.const 6192 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0206 (result i32) local.get $3 i32.load offset=4 @@ -53098,14 +57132,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0207 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53115,7 +57149,7 @@ global.set $~argumentsLength i32.const 0 local.get $10 - local.get $0 + local.get $1 local.get $3 i32.const 6192 i32.load @@ -53123,10 +57157,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Int64Array,i64>|inlined.0206 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0207 end end @@ -53146,10 +57180,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $3 @@ -53170,7 +57204,7 @@ i32.const 6224 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) local.get $3 i32.load offset=4 @@ -53179,14 +57213,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0209 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53196,7 +57230,7 @@ global.set $~argumentsLength i32.const 0 local.get $10 - local.get $0 + local.get $1 local.get $3 i32.const 6224 i32.load @@ -53204,10 +57238,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0209 end end @@ -53219,7 +57253,7 @@ i32.const 6256 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0211 (result i32) local.get $3 i32.load offset=4 @@ -53228,14 +57262,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0212 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53245,7 +57279,7 @@ global.set $~argumentsLength i32.const 0 local.get $10 - local.get $0 + local.get $1 local.get $3 i32.const 6256 i32.load @@ -53253,10 +57287,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Uint64Array,u64>|inlined.0211 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0212 end end @@ -53276,10 +57310,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $3 @@ -53300,7 +57334,7 @@ i32.const 6288 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) local.get $3 i32.load offset=4 @@ -53309,14 +57343,14 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0214 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -53326,7 +57360,7 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $0 + local.get $1 local.get $3 i32.const 6288 i32.load @@ -53334,10 +57368,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0214 end end @@ -53349,7 +57383,7 @@ i32.const 6320 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0216 (result i32) local.get $3 i32.load offset=4 @@ -53358,14 +57392,14 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0217 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -53375,7 +57409,7 @@ global.set $~argumentsLength i32.const 0 local.get $11 - local.get $0 + local.get $1 local.get $3 i32.const 6320 i32.load @@ -53383,10 +57417,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float32Array,f32>|inlined.0216 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0217 end end @@ -53406,10 +57440,10 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $3 @@ -53430,7 +57464,7 @@ i32.const 6352 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) local.get $3 i32.load offset=4 @@ -53439,14 +57473,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0219 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53456,7 +57490,7 @@ global.set $~argumentsLength i32.const 0 local.get $12 - local.get $0 + local.get $1 local.get $3 i32.const 6352 i32.load @@ -53464,10 +57498,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0219 end end @@ -53479,7 +57513,7 @@ i32.const 6384 i32.store offset=4 i32.const 0 - local.set $0 + local.set $1 block $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0221 (result i32) local.get $3 i32.load offset=4 @@ -53488,14 +57522,14 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0222 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -53505,7 +57539,7 @@ global.set $~argumentsLength i32.const 0 local.get $12 - local.get $0 + local.get $1 local.get $3 i32.const 6384 i32.load @@ -53513,10 +57547,10 @@ i32.eqz br_if $~lib/typedarray/EVERY<~lib/typedarray/Float64Array,f64>|inlined.0221 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0222 end end @@ -53536,15 +57570,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $3 @@ -53585,7 +57619,7 @@ i32.const 6496 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -53593,25 +57627,25 @@ i32.load offset=8 local.set $2 loop $for-loop|043 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_s i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 6496 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|043 end end @@ -53632,15 +57666,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $3 @@ -53684,7 +57718,7 @@ i32.const 6528 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -53692,25 +57726,25 @@ i32.load offset=8 local.set $2 loop $for-loop|0225 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 6528 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0225 end end @@ -53731,15 +57765,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $3 @@ -53783,7 +57817,7 @@ i32.const 6560 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -53791,25 +57825,25 @@ i32.load offset=8 local.set $2 loop $for-loop|0228 - local.get $0 + local.get $1 local.get $2 i32.lt_s if - local.get $0 + local.get $1 local.get $4 i32.add i32.load8_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 6560 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0228 end end @@ -53830,15 +57864,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $3 @@ -53879,7 +57913,7 @@ i32.const 6592 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -53889,27 +57923,27 @@ i32.shr_u local.set $2 loop $for-loop|045 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_s i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 6592 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|045 end end @@ -53930,15 +57964,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $3 @@ -53982,7 +58016,7 @@ i32.const 6624 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -53992,27 +58026,27 @@ i32.shr_u local.set $2 loop $for-loop|047 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 1 i32.shl i32.add i32.load16_u i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 6624 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|047 end end @@ -54033,15 +58067,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $3 @@ -54079,7 +58113,7 @@ i32.const 6656 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -54089,27 +58123,27 @@ i32.shr_u local.set $2 loop $for-loop|049 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 6656 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|049 end end @@ -54130,15 +58164,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $3 @@ -54176,7 +58210,7 @@ i32.const 6688 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $3 i32.load offset=4 local.set $4 @@ -54186,27 +58220,27 @@ i32.shr_u local.set $2 loop $for-loop|051 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add i32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $3 i32.const 6688 i32.load call_indirect $0 (type $i32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|051 end end @@ -54227,15 +58261,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $4 @@ -54276,7 +58310,7 @@ i32.const 6720 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -54284,29 +58318,29 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|053234 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6720 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|053234 end end @@ -54327,15 +58361,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $4 @@ -54376,7 +58410,7 @@ i32.const 6752 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -54384,29 +58418,29 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|055 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add i64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6752 i32.load call_indirect $0 (type $i64_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|055 end end @@ -54427,15 +58461,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $4 @@ -54476,7 +58510,7 @@ i32.const 6784 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -54484,29 +58518,29 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|057 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add f32.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6784 i32.load call_indirect $0 (type $f32_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|057 end end @@ -54527,15 +58561,15 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 i32.const 0 global.set $std/typedarray/forEachCallCount - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor local.tee $4 @@ -54576,7 +58610,7 @@ i32.const 6816 i32.store offset=8 i32.const 0 - local.set $0 + local.set $1 local.get $4 i32.load offset=4 local.set $2 @@ -54584,29 +58618,29 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|059 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if local.get $2 - local.get $0 + local.get $1 i32.const 3 i32.shl i32.add f64.load i32.const 3 global.set $~argumentsLength - local.get $0 + local.get $1 local.get $4 i32.const 6816 i32.load call_indirect $0 (type $f64_i32_i32_=>_none) - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|059 end end @@ -54650,9 +58684,9 @@ f64.const nan:0x8000000000000 call $~lib/typedarray/Float64Array#__set i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 local.get $3 i32.load offset=8 @@ -54668,13 +58702,13 @@ i32.load offset=4 local.set $2 loop $while-continue|0 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 3 i32.shl i32.add @@ -54682,17 +58716,17 @@ f64.const nan:0x8000000000000 f64.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -54705,7 +58739,7 @@ end block $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.get $3 i32.load offset=8 @@ -54720,16 +58754,16 @@ drop local.get $3 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|0238 - local.get $0 + local.get $1 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 local.get $0 + local.get $1 i32.const 3 i32.shl i32.add @@ -54743,10 +58777,10 @@ select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|0238 end end @@ -54771,9 +58805,9 @@ f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set i32.const 0 - local.set $1 - i32.const -1 local.set $0 + i32.const -1 + local.set $1 block $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 local.get $3 i32.load offset=8 @@ -54789,13 +58823,13 @@ i32.load offset=4 local.set $2 loop $while-continue|0239 - local.get $1 + local.get $0 local.get $4 i32.lt_s if local.get $2 - local.get $1 - local.tee $0 + local.get $0 + local.tee $1 i32.const 2 i32.shl i32.add @@ -54803,17 +58837,17 @@ f32.const nan:0x400000 f32.eq br_if $~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $1 + local.set $0 br $while-continue|0239 end end i32.const -1 - local.set $0 + local.set $1 end - local.get $0 + local.get $1 i32.const -1 i32.ne if @@ -54826,7 +58860,7 @@ end block $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) i32.const 0 - local.set $0 + local.set $1 i32.const 0 local.get $3 i32.load offset=8 @@ -54841,16 +58875,16 @@ drop local.get $3 i32.load offset=4 - local.set $1 + local.set $0 loop $while-continue|062 - local.get $0 + local.get $1 local.get $2 i32.lt_s if i32.const 1 i32.const 1 - local.get $1 local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -54864,10 +58898,10 @@ select br_if $~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0 drop - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $while-continue|062 end end @@ -54891,13 +58925,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Int8Array#constructor local.tee $2 @@ -54927,15 +58961,15 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Int8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -54949,27 +58983,27 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8880 i32.store local.get $2 call $~lib/typedarray/Int8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -54987,13 +59021,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Uint8Array#constructor local.tee $2 @@ -55023,30 +59057,30 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Uint8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz br_if $folding-inner20 local.get $2 call $~lib/typedarray/Uint8Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55064,13 +59098,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $2 @@ -55100,30 +59134,30 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Uint8Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz br_if $folding-inner20 local.get $2 call $~lib/typedarray/Uint8Array#toString - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55141,13 +59175,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Int16Array#constructor local.tee $2 @@ -55177,15 +59211,15 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Int16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55199,27 +59233,27 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8880 i32.store local.get $2 call $~lib/typedarray/Int16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55237,13 +59271,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Uint16Array#constructor local.tee $2 @@ -55273,15 +59307,15 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Uint16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55295,27 +59329,27 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8880 i32.store local.get $2 call $~lib/typedarray/Uint16Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55333,13 +59367,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Int32Array#constructor local.tee $2 @@ -55369,15 +59403,15 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Int32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55391,27 +59425,27 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8880 i32.store local.get $2 call $~lib/typedarray/Int32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55429,13 +59463,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Uint32Array#constructor local.tee $2 @@ -55465,15 +59499,15 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Uint32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55487,27 +59521,27 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8880 i32.store local.get $2 call $~lib/typedarray/Uint32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55525,13 +59559,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Int64Array#constructor local.tee $2 @@ -55561,15 +59595,15 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Int64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55583,27 +59617,27 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8880 i32.store local.get $2 call $~lib/typedarray/Int64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55621,13 +59655,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Uint64Array#constructor local.tee $2 @@ -55657,15 +59691,15 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Uint64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55679,27 +59713,27 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8880 i32.store local.get $2 call $~lib/typedarray/Uint64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 8912 i32.store offset=8 - local.get $0 + local.get $1 i32.const 8912 call $~lib/string/String.__eq i32.eqz @@ -55717,13 +59751,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Float32Array#constructor local.tee $2 @@ -55753,15 +59787,15 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Float32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 10096 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10096 call $~lib/string/String.__eq i32.eqz @@ -55775,27 +59809,27 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8880 i32.store local.get $2 call $~lib/typedarray/Float32Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 10096 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10096 call $~lib/string/String.__eq i32.eqz @@ -55813,13 +59847,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 5 call $~lib/typedarray/Float64Array#constructor local.tee $2 @@ -55849,15 +59883,15 @@ i32.store offset=12 local.get $2 call $~lib/typedarray/Float64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 10096 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10096 call $~lib/string/String.__eq i32.eqz @@ -55871,27 +59905,27 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 0 i32.store - local.get $1 + local.get $0 i32.const 8880 i32.store local.get $2 call $~lib/typedarray/Float64Array#join - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.tee $1 - local.get $0 - i32.store offset=4 + local.tee $0 local.get $1 + i32.store offset=4 + local.get $0 i32.const 10096 i32.store offset=8 - local.get $0 + local.get $1 i32.const 10096 call $~lib/string/String.__eq i32.eqz @@ -55903,17 +59937,17 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store offset=12 i32.const 2 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $1 + local.tee $0 i32.store offset=24 - local.get $1 + local.get $0 i32.load offset=8 if i32.const 0 @@ -55926,17 +59960,17 @@ global.get $~lib/memory/__stack_pointer i32.const 2 call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 + local.tee $0 i32.store offset=12 i32.const 2 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $1 + local.tee $0 i32.store offset=24 - local.get $1 + local.get $0 i32.load offset=8 if i32.const 0 @@ -55957,19 +59991,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $4 @@ -55996,13 +60030,13 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -56031,30 +60065,30 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store local.get $3 i32.const 20 i32.sub i32.load offset=16 - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 local.get $3 i32.store - local.get $0 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $0 local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -56062,7 +60096,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $0 + local.get $1 i32.store offset=16 i32.const 0 local.set $2 @@ -56074,7 +60108,7 @@ local.get $5 local.get $2 call $~lib/typedarray/Int8Array#__get - local.get $0 + local.get $1 local.get $2 call $~lib/typedarray/Int8Array#__get i32.ne @@ -56091,7 +60125,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56101,19 +60135,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $2 @@ -56121,33 +60155,33 @@ local.tee $4 i32.store offset=4 loop $for-loop|040 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 + local.get $1 i32.const 10224 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.const 255 i32.and call $~lib/typedarray/Uint8Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|040 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $4 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $4 i32.load offset=4 local.get $4 @@ -56162,35 +60196,35 @@ i32.sub i32.add call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $1 + local.tee $0 i32.store offset=12 i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $1 + local.tee $0 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|11 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $4 - local.get $0 - call $~lib/typedarray/Uint8Array#__get local.get $1 + call $~lib/typedarray/Uint8Array#__get local.get $0 + local.get $1 call $~lib/typedarray/Uint8Array#__get i32.ne br_if $folding-inner13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|11 end end @@ -56209,19 +60243,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $4 @@ -56249,13 +60283,13 @@ end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -56284,30 +60318,30 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 0 i32.store local.get $3 i32.const 20 i32.sub i32.load offset=16 - local.set $1 - local.get $0 + local.set $0 + local.get $1 i32.const 12 i32.const 5 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 i32.store - local.get $0 + local.get $1 local.get $3 i32.store - local.get $0 + local.get $1 local.get $3 call $~lib/rt/itcms/__link - local.get $0 local.get $1 - i32.store offset=8 local.get $0 + i32.store offset=8 + local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -56315,7 +60349,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $2 - local.get $0 + local.get $1 i32.store offset=16 i32.const 0 local.set $2 @@ -56327,7 +60361,7 @@ local.get $5 local.get $2 call $~lib/typedarray/Uint8ClampedArray#__get - local.get $0 + local.get $1 local.get $2 call $~lib/typedarray/Uint8ClampedArray#__get i32.ne @@ -56344,7 +60378,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56354,19 +60388,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $2 @@ -56374,32 +60408,32 @@ local.tee $5 i32.store offset=4 loop $for-loop|032 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 10224 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.extend16_s call $~lib/typedarray/Int16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|032 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -56419,7 +60453,7 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -56434,7 +60468,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $1 + local.tee $0 i32.const 1 i32.and br_if $folding-inner30 @@ -56451,7 +60485,7 @@ local.get $4 call $~lib/rt/itcms/__link local.get $3 - local.get $1 + local.get $0 i32.store offset=8 local.get $3 local.get $4 @@ -56460,28 +60494,28 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $3 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|133 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 call $~lib/typedarray/Int16Array#__get local.get $3 - local.get $0 + local.get $1 call $~lib/typedarray/Int16Array#__get i32.ne br_if $folding-inner13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|133 end end @@ -56490,7 +60524,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56500,19 +60534,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $2 @@ -56520,33 +60554,33 @@ local.tee $5 i32.store offset=4 loop $for-loop|036 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 10224 - local.get $0 + local.get $1 call $~lib/array/Array#__get i32.const 65535 i32.and call $~lib/typedarray/Uint16Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|036 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -56566,7 +60600,7 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -56581,7 +60615,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $1 + local.tee $0 i32.const 1 i32.and br_if $folding-inner30 @@ -56598,7 +60632,7 @@ local.get $4 call $~lib/rt/itcms/__link local.get $3 - local.get $1 + local.get $0 i32.store offset=8 local.get $3 local.get $4 @@ -56607,28 +60641,28 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $3 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|137 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 call $~lib/typedarray/Uint16Array#__get local.get $3 - local.get $0 + local.get $1 call $~lib/typedarray/Uint16Array#__get i32.ne br_if $folding-inner13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|137 end end @@ -56637,7 +60671,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56647,19 +60681,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $2 @@ -56667,31 +60701,31 @@ local.tee $5 i32.store offset=4 loop $for-loop|044 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 10224 - local.get $0 + local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Int32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|044 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -56711,7 +60745,7 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -56726,7 +60760,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $1 + local.tee $0 i32.const 3 i32.and br_if $folding-inner30 @@ -56743,7 +60777,7 @@ local.get $4 call $~lib/rt/itcms/__link local.get $3 - local.get $1 + local.get $0 i32.store offset=8 local.get $3 local.get $4 @@ -56752,28 +60786,28 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $3 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|145 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#__get local.get $3 - local.get $0 + local.get $1 call $~lib/typedarray/Int32Array#__get i32.ne br_if $folding-inner13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|145 end end @@ -56782,7 +60816,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56792,19 +60826,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $2 @@ -56812,31 +60846,31 @@ local.tee $5 i32.store offset=4 loop $for-loop|048 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 10224 - local.get $0 + local.get $1 call $~lib/array/Array#__get call $~lib/typedarray/Uint32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|048 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -56856,7 +60890,7 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -56871,7 +60905,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $1 + local.tee $0 i32.const 3 i32.and br_if $folding-inner30 @@ -56888,7 +60922,7 @@ local.get $4 call $~lib/rt/itcms/__link local.get $3 - local.get $1 + local.get $0 i32.store offset=8 local.get $3 local.get $4 @@ -56897,28 +60931,28 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $3 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|149 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 call $~lib/typedarray/Uint32Array#__get local.get $3 - local.get $0 + local.get $1 call $~lib/typedarray/Uint32Array#__get i32.ne br_if $folding-inner13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|149 end end @@ -56927,7 +60961,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -56937,19 +60971,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $2 @@ -56957,32 +60991,32 @@ local.tee $5 i32.store offset=4 loop $for-loop|052 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 10224 - local.get $0 + local.get $1 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Int64Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|052 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -57002,7 +61036,7 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -57017,7 +61051,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $1 + local.tee $0 i32.const 7 i32.and br_if $folding-inner30 @@ -57034,7 +61068,7 @@ local.get $4 call $~lib/rt/itcms/__link local.get $3 - local.get $1 + local.get $0 i32.store offset=8 local.get $3 local.get $4 @@ -57043,28 +61077,28 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $3 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|153 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#__get local.get $3 - local.get $0 + local.get $1 call $~lib/typedarray/Int64Array#__get i64.ne br_if $folding-inner13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|153 end end @@ -57073,7 +61107,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57083,19 +61117,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $2 @@ -57103,32 +61137,32 @@ local.tee $5 i32.store offset=4 loop $for-loop|060 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 10224 - local.get $0 + local.get $1 call $~lib/array/Array#__get i64.extend_i32_s call $~lib/typedarray/Uint64Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|060 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -57148,7 +61182,7 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -57163,7 +61197,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $1 + local.tee $0 i32.const 7 i32.and br_if $folding-inner30 @@ -57180,7 +61214,7 @@ local.get $4 call $~lib/rt/itcms/__link local.get $3 - local.get $1 + local.get $0 i32.store offset=8 local.get $3 local.get $4 @@ -57189,28 +61223,28 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $3 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|161 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 call $~lib/typedarray/Uint64Array#__get local.get $3 - local.get $0 + local.get $1 call $~lib/typedarray/Uint64Array#__get i64.ne br_if $folding-inner13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|161 end end @@ -57219,7 +61253,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57229,19 +61263,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $2 @@ -57249,32 +61283,32 @@ local.tee $5 i32.store offset=4 loop $for-loop|063 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 10224 - local.get $0 + local.get $1 call $~lib/array/Array#__get f32.convert_i32_s call $~lib/typedarray/Float32Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|063 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -57294,7 +61328,7 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -57309,7 +61343,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $1 + local.tee $0 i32.const 3 i32.and br_if $folding-inner30 @@ -57326,7 +61360,7 @@ local.get $4 call $~lib/rt/itcms/__link local.get $3 - local.get $1 + local.get $0 i32.store offset=8 local.get $3 local.get $4 @@ -57335,28 +61369,28 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $3 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|164 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 call $~lib/typedarray/Float32Array#__get local.get $3 - local.get $0 + local.get $1 call $~lib/typedarray/Float32Array#__get f32.ne br_if $folding-inner13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|164 end end @@ -57365,7 +61399,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -57375,19 +61409,19 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i64.const 0 i64.store offset=8 - local.get $1 + local.get $0 i32.const 0 i32.store offset=16 - local.get $1 + local.get $0 i32.const 10224 i32.store - local.get $1 + local.get $0 i32.const 10236 i32.load local.tee $2 @@ -57395,32 +61429,32 @@ local.tee $5 i32.store offset=4 loop $for-loop|066 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 i32.const 10224 - local.get $0 + local.get $1 call $~lib/array/Array#__get f64.convert_i32_s call $~lib/typedarray/Float64Array#__set - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|066 end end global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 local.get $5 i32.load - local.tee $1 + local.tee $0 i32.store offset=8 - local.get $0 local.get $1 + local.get $0 local.get $5 i32.load offset=4 local.get $5 @@ -57440,7 +61474,7 @@ i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $0 + local.tee $1 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -57455,7 +61489,7 @@ i32.const 20 i32.sub i32.load offset=16 - local.tee $1 + local.tee $0 i32.const 7 i32.and br_if $folding-inner30 @@ -57472,7 +61506,7 @@ local.get $4 call $~lib/rt/itcms/__link local.get $3 - local.get $1 + local.get $0 i32.store offset=8 local.get $3 local.get $4 @@ -57481,28 +61515,28 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 local.get $3 i32.store offset=16 i32.const 0 - local.set $0 + local.set $1 loop $for-loop|167 - local.get $0 + local.get $1 local.get $2 i32.lt_s if local.get $5 - local.get $0 + local.get $1 call $~lib/typedarray/Float64Array#__get local.get $3 - local.get $0 + local.get $1 call $~lib/typedarray/Float64Array#__get f64.ne br_if $folding-inner13 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|167 end end @@ -57529,17 +61563,17 @@ global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Float32Array#constructor - local.tee $1 + local.tee $0 i32.store offset=12 - local.get $1 + local.get $0 i32.const 0 f32.const 400 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 1 f32.const nan:0x400000 call $~lib/typedarray/Float32Array#__set - local.get $1 + local.get $0 i32.const 2 f32.const inf call $~lib/typedarray/Float32Array#__set @@ -57581,7 +61615,7 @@ local.set $9 local.get $8 i32.load offset=8 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -57594,16 +61628,16 @@ i32.const 1 i32.add local.set $4 - local.get $1 + local.get $0 i32.load offset=4 local.set $2 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 + local.set $1 loop $for-loop|0242 - local.get $0 + local.get $1 local.get $9 i32.gt_s if @@ -57644,7 +61678,7 @@ i32.const 4 call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> i32.const 0 - local.set $0 + local.set $1 local.get $8 i32.load offset=8 local.get $5 @@ -57667,17 +61701,17 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $1 + local.set $0 loop $for-loop|0243 local.get $0 local.get $1 - i32.lt_s + i32.gt_s if - local.get $0 + local.get $1 local.get $4 i32.add local.get $2 - local.get $0 + local.get $1 i32.const 2 i32.shl i32.add @@ -57696,10 +61730,10 @@ i32.or i32.and i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 + local.set $1 br $for-loop|0243 end end @@ -57708,31 +61742,31 @@ i32.const 63 i32.const 14576 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $8 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer i32.const 4 call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + local.tee $0 i32.store offset=28 - local.get $1 + local.get $0 i32.const 0 i32.const 1 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 1 i32.const 300 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 2 i32.const 100 call $~lib/typedarray/Uint32Array#__set - local.get $1 + local.get $0 i32.const 3 i32.const -1 call $~lib/typedarray/Uint32Array#__set @@ -57761,7 +61795,7 @@ local.set $3 local.get $8 i32.load offset=8 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u @@ -57770,16 +61804,16 @@ local.get $8 i32.load offset=4 local.set $4 - local.get $1 + local.get $0 i32.load offset=4 local.set $2 - local.get $1 + local.get $0 i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 + local.set $1 loop $for-loop|0244 - local.get $0 + local.get $1 local.get $3 i32.gt_s if @@ -57793,8 +61827,8 @@ i32.shl i32.add i32.load - local.tee $1 - local.get $1 + local.tee $0 + local.get $0 i32.const 255 i32.gt_u select @@ -57815,15 +61849,15 @@ i32.const 63 i32.const 14608 call $~lib/rt/__newArray - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 local.get $8 - local.get $1 + local.get $0 call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -57833,13 +61867,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int8Array#constructor local.tee $2 @@ -57859,7 +61893,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -57879,35 +61913,37 @@ unreachable end i32.const 14640 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 14640 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Int8Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 1 i32.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 3 @@ -57916,23 +61952,25 @@ global.get $~lib/memory/__stack_pointer i32.const 14672 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 i32.const 14672 - call $~lib/typedarray/Int8Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Int8Array#__get i32.const 3 i32.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int8Array#__get i32.const 2 i32.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int8Array#__get i32.const 1 @@ -57943,7 +61981,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -57953,13 +61991,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8Array#constructor local.tee $2 @@ -57979,7 +62017,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -57999,35 +62037,37 @@ unreachable end i32.const 14704 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 14704 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 1 i32.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 3 @@ -58036,23 +62076,25 @@ global.get $~lib/memory/__stack_pointer i32.const 14736 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 i32.const 14736 - call $~lib/typedarray/Uint8Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Uint8Array#__get i32.const 3 i32.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8Array#__get i32.const 2 i32.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8Array#__get i32.const 1 @@ -58063,7 +62105,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -58073,13 +62115,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor local.tee $2 @@ -58099,7 +62141,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -58119,35 +62161,37 @@ unreachable end i32.const 14768 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 14768 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 i32.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 @@ -58156,23 +62200,25 @@ global.get $~lib/memory/__stack_pointer i32.const 14800 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 i32.const 14800 - call $~lib/typedarray/Uint8Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 3 i32.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 2 i32.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint8ClampedArray#__get i32.const 1 @@ -58183,7 +62229,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -58193,13 +62239,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int16Array#constructor local.tee $2 @@ -58219,7 +62265,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -58239,35 +62285,39 @@ unreachable end i32.const 14832 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 14832 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Int16Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 1 i32.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 3 @@ -58276,23 +62326,27 @@ global.get $~lib/memory/__stack_pointer i32.const 14864 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u i32.const 14864 - call $~lib/typedarray/Int16Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Int16Array#__get i32.const 3 i32.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int16Array#__get i32.const 2 i32.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int16Array#__get i32.const 1 @@ -58303,7 +62357,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -58313,13 +62367,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint16Array#constructor local.tee $2 @@ -58339,7 +62393,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -58359,35 +62413,39 @@ unreachable end i32.const 14896 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 14896 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Uint16Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 1 i32.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 3 @@ -58396,23 +62454,27 @@ global.get $~lib/memory/__stack_pointer i32.const 14928 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 1 + i32.shr_u i32.const 14928 - call $~lib/typedarray/Uint16Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Uint16Array#__get i32.const 3 i32.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint16Array#__get i32.const 2 i32.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint16Array#__get i32.const 1 @@ -58423,7 +62485,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -58433,13 +62495,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int32Array#constructor local.tee $2 @@ -58459,7 +62521,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -58479,35 +62541,39 @@ unreachable end i32.const 14960 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 14960 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Int32Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 1 i32.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 3 @@ -58516,23 +62582,27 @@ global.get $~lib/memory/__stack_pointer i32.const 14992 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u i32.const 14992 - call $~lib/typedarray/Int32Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Int32Array#__get i32.const 3 i32.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int32Array#__get i32.const 2 i32.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int32Array#__get i32.const 1 @@ -58543,7 +62613,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -58553,13 +62623,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint32Array#constructor local.tee $2 @@ -58579,7 +62649,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -58599,35 +62669,39 @@ unreachable end i32.const 15024 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15024 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Uint32Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 1 i32.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 3 @@ -58636,23 +62710,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15056 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u i32.const 15056 - call $~lib/typedarray/Uint32Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Uint32Array#__get i32.const 3 i32.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint32Array#__get i32.const 2 i32.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint32Array#__get i32.const 1 @@ -58663,7 +62741,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -58673,13 +62751,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Int64Array#constructor local.tee $2 @@ -58699,7 +62777,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -58719,35 +62797,39 @@ unreachable end i32.const 15088 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15088 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Int64Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 1 i64.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 3 @@ -58756,23 +62838,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15120 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.const 15120 - call $~lib/typedarray/Int64Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Int64Array#__get i64.const 3 i64.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Int64Array#__get i64.const 2 i64.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Int64Array#__get i64.const 1 @@ -58783,7 +62869,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -58793,13 +62879,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Uint64Array#constructor local.tee $2 @@ -58819,7 +62905,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -58839,35 +62925,39 @@ unreachable end i32.const 15152 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15152 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Uint64Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 1 i64.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 3 @@ -58876,23 +62966,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15184 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.const 15184 - call $~lib/typedarray/Uint64Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Uint64Array#__get i64.const 3 i64.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Uint64Array#__get i64.const 2 i64.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Uint64Array#__get i64.const 1 @@ -58903,7 +62997,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -58913,13 +63007,13 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float32Array#constructor local.tee $2 @@ -58939,7 +63033,7 @@ i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer @@ -58959,35 +63053,39 @@ unreachable end i32.const 15216 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 15216 i32.store end local.get $2 - local.get $0 - call $~lib/typedarray/Float32Array#sort - local.set $0 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.get $1 + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 1 f32.ne br_if $folding-inner24 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne br_if $folding-inner25 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 3 @@ -58996,23 +63094,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15248 i32.store offset=8 - local.get $0 + local.get $2 + i32.load offset=4 + local.get $2 + i32.load offset=8 + i32.const 2 + i32.shr_u i32.const 15248 - call $~lib/typedarray/Float32Array#sort - drop - local.get $0 + call $~lib/util/sort/SORT + local.get $2 i32.const 0 call $~lib/typedarray/Float32Array#__get f32.const 3 f32.ne br_if $folding-inner27 - local.get $0 + local.get $2 i32.const 1 call $~lib/typedarray/Float32Array#__get f32.const 2 f32.ne br_if $folding-inner28 - local.get $0 + local.get $2 i32.const 2 call $~lib/typedarray/Float32Array#__get f32.const 1 @@ -59031,49 +63133,49 @@ i32.lt_s br_if $folding-inner14 global.get $~lib/memory/__stack_pointer - local.tee $1 + local.tee $0 i64.const 0 i64.store - local.get $1 + local.get $0 i32.const 0 i32.store offset=8 - local.get $1 + local.get $0 i32.const 3 call $~lib/typedarray/Float64Array#constructor - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 i32.const 2 f64.const 1 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 1 f64.const 2 call $~lib/typedarray/Float64Array#__set - local.get $1 + local.get $0 i32.const 0 f64.const 3 call $~lib/typedarray/Float64Array#__set i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 call $~lib/typedarray/Float64Array#sort@varargs - local.tee $1 + local.tee $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 1 f64.ne br_if $folding-inner24 - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne br_if $folding-inner25 - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 3 @@ -59082,23 +63184,27 @@ global.get $~lib/memory/__stack_pointer i32.const 15280 i32.store offset=8 - local.get $1 + local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u i32.const 15280 - call $~lib/typedarray/Float64Array#sort - drop - local.get $1 + call $~lib/util/sort/SORT + local.get $0 i32.const 0 call $~lib/typedarray/Float64Array#__get f64.const 3 f64.ne br_if $folding-inner27 - local.get $1 + local.get $0 i32.const 1 call $~lib/typedarray/Float64Array#__get f64.const 2 f64.ne br_if $folding-inner28 - local.get $1 + local.get $0 i32.const 2 call $~lib/typedarray/Float64Array#__get f64.const 1 @@ -59235,7 +63341,7 @@ end i32.const 1360 i32.const 1632 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -59347,7 +63453,7 @@ end i32.const 1056 i32.const 1632 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -60134,12 +64240,18 @@ i32.store end local.get $0 + i32.load offset=4 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u local.get $1 - call $~lib/typedarray/Float64Array#sort + call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) (func $~lib/rt/__newArray (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) diff --git a/tests/compiler/std/typedarray.untouched.wat b/tests/compiler/std/typedarray.untouched.wat index 61ef2080ff..bb26404122 100644 --- a/tests/compiler/std/typedarray.untouched.wat +++ b/tests/compiler/std/typedarray.untouched.wat @@ -6,16 +6,18 @@ (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) - (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) (type $i64_i64_=>_i32 (func (param i64 i64) (result i32))) + (type $i64_i32_i32_=>_i32 (func (param i64 i32 i32) (result i32))) + (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f32_i32_i32_=>_i32 (func (param f32 i32 i32) (result i32))) (type $f64_i32_i32_=>_i32 (func (param f64 i32 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32))) + (type $i32_i32_i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32 i32 i32))) (type $i32_=>_none (func (param i32))) (type $i64_i64_i32_i32_=>_i64 (func (param i64 i64 i32 i32) (result i64))) (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) - (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) - (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) (type $i32_i32_i64_=>_i64 (func (param i32 i32 i64) (result i64))) (type $f32_f32_i32_i32_=>_f32 (func (param f32 f32 i32 i32) (result f32))) @@ -26,6 +28,7 @@ (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) + (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) (type $i32_i32_i64_=>_none (func (param i32 i32 i64))) (type $i32_i32_f32_=>_f32 (func (param i32 i32 f32) (result f32))) (type $i32_i32_f64_=>_f64 (func (param i32 i32 f64) (result f64))) @@ -43,7 +46,6 @@ (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) (type $f64_f64_=>_f64 (func (param f64 f64) (result f64))) (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) (type $i64_=>_i32 (func (param i64) (result i32))) (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) @@ -74,13 +76,13 @@ (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) + (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $std/typedarray/forEachCallCount (mut i32) (i32.const 0)) (global $std/typedarray/forEachSelf (mut i32) (i32.const 0)) (global $std/typedarray/forEachValues i32 (i32.const 5424)) (global $std/typedarray/testArrayReverseValues i32 (i32.const 5888)) (global $std/typedarray/testArrayIndexOfAndLastIndexOfValues i32 (i32.const 6000)) - (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) (global $~lib/util/number/_exp (mut i32) (i32.const 0)) @@ -3410,7 +3412,7 @@ if i32.const 336 i32.const 608 - i32.const 710 + i32.const 715 i32.const 64 call $~lib/builtins/abort unreachable @@ -3434,7 +3436,7 @@ if i32.const 336 i32.const 608 - i32.const 699 + i32.const 704 i32.const 64 call $~lib/builtins/abort unreachable @@ -3457,7 +3459,7 @@ if i32.const 336 i32.const 608 - i32.const 1385 + i32.const 1395 i32.const 64 call $~lib/builtins/abort unreachable @@ -3471,73 +3473,123 @@ local.get $2 f64.store ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f64) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 f64) - (local $9 i32) + (local $9 f64) + (local $10 f64) + (local $11 f64) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 3 i32.shl i32.add f64.load - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 3 i32.shl i32.add f64.load local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 3 i32.shl i32.add local.get $8 - f64.store + f64.store offset=16 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -3546,394 +3598,842 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 3 + i32.shl i32.add + local.get $11 + f64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + f64.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 3 i32.shl i32.add - local.get $5 - f64.store - local.get $3 - i32.const 1 + local.get $10 + f64.store offset=8 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f64) - (local $10 f64) - (local $11 i32) - (local $12 f64) + (local $7 f64) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl i32.add - i32.const 5 - i32.shr_u - i32.const 2 + f64.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 i32.shl - local.set $3 + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 i32.shl i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - local.get $7 - i32.const 1 - i32.shr_s + call_indirect $0 (type $f64_f64_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + local.get $0 + local.get $1 + i32.const 3 i32.shl i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + f64.load + local.set $7 + local.get $0 + local.get $1 + i32.const 3 i32.shl i32.add - i32.load - i32.const 1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 3 i32.shl - i32.xor - i32.store + i32.add + f64.load + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $0 local.get $5 i32.const 3 i32.shl i32.add - local.get $9 + local.get $7 f64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) local.get $0 - local.get $8 + local.get $4 i32.const 3 i32.shl i32.add - local.get $10 - f64.store + f64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end + local.get $4 + ) + (func $~lib/util/sort/nodePower (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i64) local.get $1 - i32.const 1 + local.get $0 i32.sub + i32.const 1 + i32.add + i64.extend_i32_u local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.get $3 + local.get $0 + i32.const 1 + i32.shl + i32.sub + local.set $6 + local.get $2 + local.get $6 + i32.add + local.set $7 + local.get $4 + local.get $6 + i32.add + i32.const 1 + i32.add + local.set $8 + local.get $7 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $9 + local.get $8 + i64.extend_i32_u + i64.const 30 + i64.shl + local.get $5 + i64.div_u + local.set $10 + local.get $9 + local.get $10 + i64.xor + i32.wrap_i64 + i32.clz + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + (local $12 f64) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 3 i32.shl i32.add f64.load f64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 3 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 3 i32.shl i32.add - local.get $10 + f64.load offset=8 f64.store + local.get $7 i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 - i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - 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 - local.set $11 - local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $8 - i32.const 0 - i32.gt_s - local.set $11 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $11 + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add local.get $11 - if - local.get $0 - f64.load - local.set $10 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $9 - local.get $10 - local.get $9 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $f64_f64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - 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 3 - i32.shl - i32.add - local.get $10 - f64.store - local.get $0 - local.get $9 - f64.store - end - local.get $8 - i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 - end + f64.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $12 + f64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - f64.load offset=8 - local.set $12 - local.get $0 - local.get $0 - f64.load - f64.store offset=8 - local.get $0 - local.get $12 - f64.store ) - (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 f64) - (local $7 f64) + (local $4 f64) + (local $5 f64) + (local $6 i32) + (local $7 i32) (local $8 i32) (local $9 i32) (local $10 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 (result i32) - local.get $0 - local.set $3 + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 128 + i32.le_s + if local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Float64Array#get:length - local.set $4 - local.get $4 i32.const 1 i32.le_s if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + return end - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq - if - local.get $5 + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f64.load + local.set $4 + local.get $0 + f64.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + f64.load offset=16 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f64_f64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f64.store offset=8 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f64.store offset=16 + end + local.get $0 + f64.load + local.set $5 + local.get $0 f64.load offset=8 - local.set $6 + local.set $4 local.get $5 - f64.load - local.set $7 - local.get $6 - local.get $7 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $2 i32.load call_indirect $0 (type $f64_f64_=>_i32) i32.const 0 - i32.lt_s - if - local.get $5 - local.get $7 - f64.store offset=8 - local.get $5 - local.get $6 - f64.store - end + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f64.store + local.get $0 + local.get $5 + local.get $4 local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Float64Array,f64>|inlined.0 + select + f64.store offset=8 + return end - local.get $5 - local.set $10 - local.get $4 - local.set $9 + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 local.get $2 - local.set $8 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 i32.const 0 - drop - local.get $9 - i32.const 256 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 i32.lt_s + local.set $10 + local.get $10 if - local.get $10 - local.get $9 + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 + if + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $22 + local.get $22 + i32.const -1 + i32.ne + if + local.get $0 + local.get $22 + local.get $9 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $20 + i32.const 1 + i32.sub + local.set $20 + br $for-loop|3 + end + end local.get $8 - call $~lib/util/sort/insertionSort - else - local.get $10 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if local.get $8 - call $~lib/util/sort/weakHeapSort + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 end - local.get $3 end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Float64Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float64Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f64) (param $1 f64) (result i32) (local $2 i64) @@ -3978,7 +4478,7 @@ if i32.const 336 i32.const 608 - i32.const 1374 + i32.const 1384 i32.const 64 call $~lib/builtins/abort unreachable @@ -3999,7 +4499,7 @@ if i32.const 336 i32.const 608 - i32.const 305 + i32.const 307 i32.const 45 call $~lib/builtins/abort unreachable @@ -4031,7 +4531,7 @@ if i32.const 336 i32.const 608 - i32.const 294 + i32.const 296 i32.const 45 call $~lib/builtins/abort unreachable @@ -5896,7 +6396,7 @@ if i32.const 336 i32.const 608 - i32.const 170 + i32.const 171 i32.const 45 call $~lib/builtins/abort unreachable @@ -6034,7 +6534,7 @@ if i32.const 336 i32.const 608 - i32.const 440 + i32.const 443 i32.const 64 call $~lib/builtins/abort unreachable @@ -6116,7 +6616,7 @@ if i32.const 336 i32.const 608 - i32.const 575 + i32.const 579 i32.const 64 call $~lib/builtins/abort unreachable @@ -6256,7 +6756,7 @@ if i32.const 336 i32.const 608 - i32.const 845 + i32.const 851 i32.const 64 call $~lib/builtins/abort unreachable @@ -6338,7 +6838,7 @@ if i32.const 336 i32.const 608 - i32.const 980 + i32.const 987 i32.const 64 call $~lib/builtins/abort unreachable @@ -6420,7 +6920,7 @@ if i32.const 336 i32.const 608 - i32.const 1115 + i32.const 1123 i32.const 64 call $~lib/builtins/abort unreachable @@ -6502,7 +7002,7 @@ if i32.const 336 i32.const 608 - i32.const 1250 + i32.const 1259 i32.const 64 call $~lib/builtins/abort unreachable @@ -6758,7 +7258,7 @@ if i32.const 336 i32.const 608 - i32.const 182 + i32.const 183 i32.const 33 call $~lib/builtins/abort unreachable @@ -6864,7 +7364,7 @@ if i32.const 336 i32.const 608 - i32.const 317 + i32.const 319 i32.const 33 call $~lib/builtins/abort unreachable @@ -6972,7 +7472,7 @@ if i32.const 336 i32.const 608 - i32.const 452 + i32.const 455 i32.const 33 call $~lib/builtins/abort unreachable @@ -7082,7 +7582,7 @@ if i32.const 336 i32.const 608 - i32.const 587 + i32.const 591 i32.const 33 call $~lib/builtins/abort unreachable @@ -7192,7 +7692,7 @@ if i32.const 336 i32.const 608 - i32.const 722 + i32.const 727 i32.const 33 call $~lib/builtins/abort unreachable @@ -7302,7 +7802,7 @@ if i32.const 336 i32.const 608 - i32.const 857 + i32.const 863 i32.const 33 call $~lib/builtins/abort unreachable @@ -7412,7 +7912,7 @@ if i32.const 336 i32.const 608 - i32.const 992 + i32.const 999 i32.const 33 call $~lib/builtins/abort unreachable @@ -7522,7 +8022,7 @@ if i32.const 336 i32.const 608 - i32.const 1127 + i32.const 1135 i32.const 33 call $~lib/builtins/abort unreachable @@ -7632,7 +8132,7 @@ if i32.const 336 i32.const 608 - i32.const 1262 + i32.const 1271 i32.const 33 call $~lib/builtins/abort unreachable @@ -7742,7 +8242,7 @@ if i32.const 336 i32.const 608 - i32.const 1397 + i32.const 1407 i32.const 33 call $~lib/builtins/abort unreachable @@ -8475,7 +8975,7 @@ if i32.const 336 i32.const 608 - i32.const 159 + i32.const 160 i32.const 45 call $~lib/builtins/abort unreachable @@ -8506,7 +9006,7 @@ if i32.const 336 i32.const 608 - i32.const 429 + i32.const 432 i32.const 64 call $~lib/builtins/abort unreachable @@ -8534,7 +9034,7 @@ if i32.const 336 i32.const 608 - i32.const 564 + i32.const 568 i32.const 64 call $~lib/builtins/abort unreachable @@ -8567,7 +9067,7 @@ if i32.const 336 i32.const 608 - i32.const 834 + i32.const 840 i32.const 64 call $~lib/builtins/abort unreachable @@ -8595,7 +9095,7 @@ if i32.const 336 i32.const 608 - i32.const 969 + i32.const 976 i32.const 64 call $~lib/builtins/abort unreachable @@ -8623,7 +9123,7 @@ if i32.const 336 i32.const 608 - i32.const 1104 + i32.const 1112 i32.const 64 call $~lib/builtins/abort unreachable @@ -8651,7 +9151,7 @@ if i32.const 336 i32.const 608 - i32.const 1239 + i32.const 1248 i32.const 64 call $~lib/builtins/abort unreachable @@ -23313,7 +23813,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -23328,7 +23828,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -23429,7 +23929,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -23444,7 +23944,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -23535,7 +24035,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -23550,7 +24050,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -23635,7 +24135,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -23650,7 +24150,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -23736,7 +24236,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -23751,7 +24251,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -23794,7 +24294,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -23809,7 +24309,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -23884,7 +24384,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -23899,7 +24399,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -23942,7 +24442,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -23957,7 +24457,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24058,7 +24558,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24073,7 +24573,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24164,7 +24664,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24179,7 +24679,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24260,7 +24760,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24275,7 +24775,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24361,7 +24861,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24376,7 +24876,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24419,7 +24919,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24434,7 +24934,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24509,7 +25009,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24524,7 +25024,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24568,7 +25068,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24583,7 +25083,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24690,7 +25190,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24705,7 +25205,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24800,7 +25300,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24815,7 +25315,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -24919,7 +25419,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -24934,7 +25434,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25023,7 +25523,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25038,7 +25538,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25082,7 +25582,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25097,7 +25597,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25197,7 +25697,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25212,7 +25712,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25310,7 +25810,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25325,7 +25825,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25428,7 +25928,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25443,7 +25943,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25534,7 +26034,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25549,7 +26049,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25630,7 +26130,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25645,7 +26145,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25736,7 +26236,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25751,7 +26251,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25826,7 +26326,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25841,7 +26341,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25884,7 +26384,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25899,7 +26399,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -25979,7 +26479,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -25994,7 +26494,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26097,7 +26597,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26112,7 +26612,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26203,7 +26703,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26218,7 +26718,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26299,7 +26799,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26314,7 +26814,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26405,7 +26905,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26420,7 +26920,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26495,7 +26995,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26510,7 +27010,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26553,7 +27053,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26568,7 +27068,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26643,7 +27143,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26658,7 +27158,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26720,7 +27220,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26735,7 +27235,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26826,7 +27326,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26841,7 +27341,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -26922,7 +27422,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -26937,7 +27437,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27028,7 +27528,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27043,7 +27543,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27123,7 +27623,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27138,7 +27638,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27218,7 +27718,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27233,7 +27733,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27308,7 +27808,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27323,7 +27823,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27389,7 +27889,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27404,7 +27904,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27495,7 +27995,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27510,7 +28010,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27591,7 +28091,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27606,7 +28106,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27697,7 +28197,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27712,7 +28212,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27792,7 +28292,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27807,7 +28307,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27887,7 +28387,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27902,7 +28402,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -27982,7 +28482,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -27997,7 +28497,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28100,7 +28600,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28115,7 +28615,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28201,7 +28701,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28216,7 +28716,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28260,7 +28760,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28275,7 +28775,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28366,7 +28866,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28381,7 +28881,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28461,7 +28961,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28476,7 +28976,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28556,7 +29056,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28571,7 +29071,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28651,7 +29151,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28666,7 +29166,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28769,7 +29269,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28784,7 +29284,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28870,7 +29370,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28885,7 +29385,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -28929,7 +29429,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -28944,7 +29444,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29035,7 +29535,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29050,7 +29550,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29130,7 +29630,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29145,7 +29645,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29225,7 +29725,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29240,7 +29740,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29320,7 +29820,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29335,7 +29835,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29430,7 +29930,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29445,7 +29945,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29488,7 +29988,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29503,7 +30003,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29585,7 +30085,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29600,7 +30100,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29682,7 +30182,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29697,7 +30197,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29779,7 +30279,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29794,7 +30294,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29876,7 +30376,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -29891,7 +30391,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -29991,7 +30491,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -30006,7 +30506,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -30089,7 +30589,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -30104,7 +30604,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -30186,7 +30686,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -30201,7 +30701,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -30283,7 +30783,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -30298,7 +30798,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -30380,7 +30880,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -30395,7 +30895,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -30478,7 +30978,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -30493,7 +30993,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -30588,7 +31088,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -30603,7 +31103,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -30705,7 +31205,7 @@ if i32.const 336 i32.const 608 - i32.const 1864 + i32.const 1853 i32.const 19 call $~lib/builtins/abort unreachable @@ -30720,7 +31220,7 @@ if i32.const 336 i32.const 608 - i32.const 1865 + i32.const 1854 i32.const 47 call $~lib/builtins/abort unreachable @@ -30787,73 +31287,123 @@ end end ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 0 i32.shl i32.add i32.load8_s - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 0 i32.shl i32.add i32.load8_s local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 0 i32.shl i32.add local.get $8 - i32.store8 + i32.store8 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -30862,392 +31412,790 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 0 + i32.shl i32.add + local.get $11 + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 offset=1 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 0 i32.shl i32.add - local.get $5 - i32.store8 - local.get $3 - i32.const 1 + local.get $10 + i32.store8 offset=1 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.set $3 - local.get $3 - call $~lib/rt/tlsf/__alloc + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 local.set $4 + local.get $0 local.get $4 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 + i32.shl + i32.add + i32.load8_s + local.get $0 + local.get $4 i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.add + local.tee $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.get $0 + local.get $4 + i32.const 0 i32.shl i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - local.get $7 - i32.const 1 - i32.shr_s + call_indirect $0 (type $i32_i32_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + local.get $0 + local.get $1 + i32.const 0 i32.shl i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + i32.load8_s + local.set $7 + local.get $0 + local.get $1 + i32.const 0 i32.shl i32.add - i32.load - i32.const 1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 0 i32.shl - i32.xor - i32.store + i32.add + i32.load8_s + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $0 local.get $5 i32.const 0 i32.shl i32.add - local.get $9 + local.get $7 i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) local.get $0 - local.get $8 + local.get $4 i32.const 0 i32.shl i32.add - local.get $10 - i32.store8 + i32.load8_s offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add local.get $0 - i32.load8_s - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 0 i32.shl i32.add i32.load8_s i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 0 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 0 i32.shl i32.add - local.get $10 + i32.load8_s offset=1 i32.store8 + local.get $7 i32.const 1 - local.set $9 - loop $while-continue|3 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $11 + local.get $4 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $9 - i32.const 1 + i32.const 0 i32.shl - local.get $4 + i32.add + local.get $11 + i32.store8 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 + i32.const 0 i32.shl i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u + local.get $12 + i32.store8 + local.get $6 i32.const 1 - i32.and i32.add - local.tee $8 - local.get $5 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end + local.set $6 end - loop $while-continue|4 - local.get $9 - i32.const 0 - i32.gt_s - local.set $7 - local.get $7 - if - local.get $0 - i32.load8_s - local.set $10 - local.get $0 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $10 - i32.store8 - local.get $0 - local.get $11 - i32.store8 - end - local.get $9 - i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 - end - end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load8_s offset=1 - local.set $12 - local.get $0 - local.get $0 - i32.load8_s - i32.store8 offset=1 - local.get $0 - local.get $12 - i32.store8 ) - (func $~lib/typedarray/Int8Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) - block $~lib/typedarray/SORT<~lib/typedarray/Int8Array,i8>|inlined.0 (result i32) - local.get $0 - local.set $3 + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 128 + i32.le_s + if local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int8Array#get:length - local.set $4 - local.get $4 i32.const 1 i32.le_s if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Int8Array,i8>|inlined.0 + return end - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq - if - local.get $5 + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_s + local.set $3 + local.get $0 + i32.load8_s offset=1 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load8_s offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 offset=1 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_s + local.set $5 + local.get $0 i32.load8_s offset=1 - local.set $6 + local.set $4 local.get $5 - i32.load8_s - local.set $7 - local.get $6 - local.get $7 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store8 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 0 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 i32.lt_s if + local.get $11 + local.tee $17 local.get $5 - local.get $7 - i32.store8 offset=1 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 local.get $5 - local.get $6 - i32.store8 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Int8Array,i8>|inlined.0 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 end - local.get $5 - local.set $8 + end + local.get $14 + local.set $4 + loop $for-loop|4 local.get $4 - local.set $7 - local.get $2 - local.set $6 i32.const 0 - drop - local.get $7 - i32.const 256 - i32.lt_s + i32.ne + local.set $18 + local.get $18 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 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 end - local.get $3 end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Int8Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -31269,73 +32217,123 @@ i32.lt_s i32.sub ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 0 i32.shl i32.add i32.load8_u - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 0 i32.shl i32.add i32.load8_u local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 0 i32.shl i32.add local.get $8 - i32.store8 + i32.store8 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -31344,392 +32342,790 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 0 + i32.shl i32.add + local.get $11 + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 0 + i32.shl + i32.add + local.get $8 + i32.store8 offset=1 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 0 i32.shl i32.add - local.get $5 - i32.store8 - local.get $3 - i32.const 1 + local.get $10 + i32.store8 offset=1 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.set $3 - local.get $3 - call $~lib/rt/tlsf/__alloc + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 local.set $4 + local.get $0 local.get $4 i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 + i32.shl + i32.add + i32.load8_u + local.get $0 + local.get $4 i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.add + local.tee $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $0 + local.get $4 + i32.const 0 i32.shl i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - local.get $7 - i32.const 1 - i32.shr_s + call_indirect $0 (type $i32_i32_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + local.get $0 + local.get $1 + i32.const 0 i32.shl i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + i32.load8_u + local.set $7 + local.get $0 + local.get $1 + i32.const 0 i32.shl i32.add - i32.load - i32.const 1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 0 i32.shl - i32.xor - i32.store + i32.add + i32.load8_u + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $0 local.get $5 i32.const 0 i32.shl i32.add - local.get $9 + local.get $7 i32.store8 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) local.get $0 - local.get $8 + local.get $4 i32.const 0 i32.shl i32.add - local.get $10 - i32.store8 + i32.load8_u offset=1 + local.get $0 + local.get $4 + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 0 + i32.shl + i32.add local.get $0 - i32.load8_u - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 0 i32.shl i32.add i32.load8_u i32.store8 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 0 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 0 i32.shl i32.add - local.get $10 + i32.load8_u offset=1 i32.store8 + local.get $7 i32.const 1 - local.set $9 - loop $while-continue|3 - local.get $9 - i32.const 1 - i32.shl - local.get $4 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $11 + local.get $4 + local.get $6 + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 + i32.const 0 i32.shl i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u + local.get $11 + i32.store8 + local.get $7 i32.const 1 - i32.and - i32.add - local.tee $8 - local.get $5 - i32.lt_s + i32.sub local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end - end - loop $while-continue|4 + else + local.get $0 local.get $9 i32.const 0 - i32.gt_s - local.set $7 - local.get $7 - if - local.get $0 - i32.load8_u - local.set $10 - local.get $0 - local.get $9 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 0 - i32.shl - i32.add - local.get $10 - i32.store8 - local.get $0 - local.get $11 - i32.store8 - end - local.get $9 - i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 - end + i32.shl + i32.add + local.get $12 + i32.store8 + local.get $6 + i32.const 1 + i32.add + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load8_u offset=1 - local.set $12 - local.get $0 - local.get $0 - i32.load8_u - i32.store8 offset=1 - local.get $0 - local.get $12 - i32.store8 ) - (func $~lib/typedarray/Uint8Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) - block $~lib/typedarray/SORT<~lib/typedarray/Uint8Array,u8>|inlined.0 (result i32) - local.get $0 - local.set $3 + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 128 + i32.le_s + if local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint8Array#get:length - local.set $4 - local.get $4 i32.const 1 i32.le_s if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint8Array,u8>|inlined.0 + return end - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq - if - local.get $5 + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load8_u + local.set $3 + local.get $0 + i32.load8_u offset=1 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load8_u offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store8 offset=1 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store8 offset=2 + end + local.get $0 + i32.load8_u + local.set $5 + local.get $0 i32.load8_u offset=1 - local.set $6 + local.set $4 local.get $5 - i32.load8_u - local.set $7 - local.get $6 - local.get $7 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store8 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store8 offset=1 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 0 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 i32.lt_s if + local.get $11 + local.tee $17 local.get $5 - local.get $7 - i32.store8 offset=1 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 local.get $5 - local.get $6 - i32.store8 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint8Array,u8>|inlined.0 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 end - local.get $5 - local.set $8 + end + local.get $14 + local.set $4 + loop $for-loop|4 local.get $4 - local.set $7 - local.get $2 - local.set $6 i32.const 0 - drop - local.get $7 - i32.const 256 - i32.lt_s + i32.ne + local.set $18 + local.get $18 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 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 end - local.get $3 end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Uint8Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -31766,85 +33162,13 @@ i32.sub ) (func $~lib/typedarray/Uint8ClampedArray#sort (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/Uint8ClampedArray,u8>|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $4 - local.get $4 - i32.const 1 - i32.le_s - if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint8ClampedArray,u8>|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.load8_u offset=1 - local.set $6 - local.get $5 - i32.load8_u - local.set $7 - local.get $6 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $7 - i32.store8 offset=1 - local.get $5 - local.get $6 - i32.store8 - end - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0 - end - local.get $5 - local.set $8 - local.get $4 - local.set $7 - local.get $2 - local.set $6 - i32.const 0 - drop - 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 - local.get $3 - end + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|1 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -31880,73 +33204,123 @@ i32.lt_u i32.sub ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 1 i32.shl i32.add i32.load16_s - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 1 i32.shl i32.add i32.load16_s local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 1 i32.shl i32.add local.get $8 - i32.store16 + i32.store16 offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -31955,392 +33329,790 @@ end end local.get $0 - local.get $6 + local.get $12 i32.const 1 + i32.shl i32.add + local.get $11 + i32.store16 offset=4 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 1 i32.shl i32.add - local.get $5 - i32.store16 - local.get $3 - i32.const 1 + local.get $10 + i32.store16 offset=2 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 1 + i32.shl i32.add - i32.const 5 - i32.shr_u - i32.const 2 + i32.load16_s + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 i32.shl - local.set $3 + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 i32.const 1 - i32.and + i32.shl + i32.add + i32.load16_s offset=2 + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 + i32.const 1 i32.shl i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - local.get $7 - i32.const 1 - i32.shr_s + call_indirect $0 (type $i32_i32_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + local.get $0 + local.get $1 + i32.const 1 i32.shl i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + i32.load16_s + local.set $7 + local.get $0 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load - i32.const 1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 1 i32.shl - i32.xor - i32.store + i32.add + i32.load16_s + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $0 local.get $5 i32.const 1 i32.shl i32.add - local.get $9 + local.get $7 i32.store16 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) local.get $0 - local.get $8 + local.get $4 i32.const 1 i32.shl i32.add - local.get $10 - i32.store16 + i32.load16_s offset=2 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add local.get $0 - i32.load16_s - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 1 i32.shl i32.add i32.load16_s i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 1 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.shl i32.add - local.get $10 + i32.load16_s offset=2 i32.store16 + local.get $7 i32.const 1 - local.set $9 - loop $while-continue|3 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $11 + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $9 i32.const 1 i32.shl - local.get $4 + i32.add + local.get $11 + i32.store16 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u + local.get $12 + i32.store16 + local.get $6 i32.const 1 - i32.and i32.add - local.tee $8 - local.get $5 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $9 - i32.const 0 - i32.gt_s - local.set $7 - local.get $7 - if - local.get $0 - i32.load16_s - local.set $10 - local.get $0 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $10 - i32.store16 - local.get $0 - local.get $11 - i32.store16 - end - local.get $9 - i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 - end + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load16_s offset=2 - local.set $12 - local.get $0 - local.get $0 - i32.load16_s - i32.store16 offset=2 - local.get $0 - local.get $12 - i32.store16 ) - (func $~lib/typedarray/Int16Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) - block $~lib/typedarray/SORT<~lib/typedarray/Int16Array,i16>|inlined.0 (result i32) - local.get $0 - local.set $3 + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 128 + i32.le_s + if local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int16Array#get:length - local.set $4 - local.get $4 i32.const 1 i32.le_s if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Int16Array,i16>|inlined.0 + return end - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq - if - local.get $5 + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_s + local.set $3 + local.get $0 + i32.load16_s offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store16 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load16_s offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store16 offset=2 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_s + local.set $5 + local.get $0 i32.load16_s offset=2 - local.set $6 + local.set $4 local.get $5 - i32.load16_s - local.set $7 - local.get $6 - local.get $7 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store16 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store16 offset=2 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 i32.lt_s if + local.get $11 + local.tee $17 local.get $5 - local.get $7 - i32.store16 offset=2 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 local.get $5 - local.get $6 - i32.store16 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Int16Array,i16>|inlined.0 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 end - local.get $5 - local.set $8 + end + local.get $14 + local.set $4 + loop $for-loop|4 local.get $4 - local.set $7 - local.get $2 - local.set $6 i32.const 0 - drop - local.get $7 - i32.const 256 - i32.lt_s + i32.ne + local.set $18 + local.get $18 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 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 end - local.get $3 end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Int16Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -32362,73 +34134,123 @@ i32.lt_s i32.sub ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 1 i32.shl i32.add i32.load16_u - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 1 i32.shl i32.add i32.load16_u local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 1 i32.shl i32.add local.get $8 - i32.store16 + i32.store16 offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -32437,392 +34259,790 @@ end end local.get $0 - local.get $6 + local.get $12 i32.const 1 + i32.shl i32.add + local.get $11 + i32.store16 offset=4 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 1 + i32.shl + i32.add + local.get $8 + i32.store16 offset=2 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 1 i32.shl i32.add - local.get $5 - i32.store16 - local.get $3 - i32.const 1 + local.get $10 + i32.store16 offset=2 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.set $3 - local.get $3 - call $~lib/rt/tlsf/__alloc + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 local.set $4 + local.get $0 local.get $4 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 + i32.shl + i32.add + i32.load16_u + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 i32.const 1 - i32.and + i32.shl + i32.add + i32.load16_u offset=2 + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 + i32.const 1 i32.shl i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - local.get $7 - i32.const 1 - i32.shr_s + call_indirect $0 (type $i32_i32_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + local.get $0 + local.get $1 + i32.const 1 i32.shl i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + i32.load16_u + local.set $7 + local.get $0 + local.get $1 + i32.const 1 i32.shl i32.add - i32.load - i32.const 1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 1 i32.shl - i32.xor - i32.store + i32.add + i32.load16_u + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $0 local.get $5 i32.const 1 i32.shl i32.add - local.get $9 + local.get $7 i32.store16 + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) local.get $0 - local.get $8 + local.get $4 i32.const 1 i32.shl i32.add - local.get $10 - i32.store16 + i32.load16_u offset=2 + local.get $0 + local.get $4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add local.get $0 - i32.load16_u - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 1 i32.shl i32.add i32.load16_u i32.store16 + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 1 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 1 i32.shl i32.add - local.get $10 + i32.load16_u offset=2 i32.store16 + local.get $7 i32.const 1 - local.set $9 - loop $while-continue|3 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $11 + local.get $4 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $9 i32.const 1 i32.shl - local.get $4 + i32.add + local.get $11 + i32.store16 + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 + i32.const 1 i32.shl i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u + local.get $12 + i32.store16 + local.get $6 i32.const 1 - i32.and i32.add - local.tee $8 - local.get $5 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $9 - i32.const 0 - i32.gt_s - local.set $7 - local.get $7 - if - local.get $0 - i32.load16_u - local.set $10 - local.get $0 - local.get $9 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 1 - i32.shl - i32.add - local.get $10 - i32.store16 - local.get $0 - local.get $11 - i32.store16 - end - local.get $9 - i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 - end + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load16_u offset=2 - local.set $12 - local.get $0 - local.get $0 - i32.load16_u - i32.store16 offset=2 - local.get $0 - local.get $12 - i32.store16 ) - (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) - block $~lib/typedarray/SORT<~lib/typedarray/Uint16Array,u16>|inlined.0 (result i32) - local.get $0 - local.set $3 + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 128 + i32.le_s + if local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint16Array#get:length - local.set $4 - local.get $4 i32.const 1 i32.le_s if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint16Array,u16>|inlined.0 + return end - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq - if - local.get $5 + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load16_u + local.set $3 + local.get $0 + i32.load16_u offset=2 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store16 + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load16_u offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store16 offset=2 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store16 offset=4 + end + local.get $0 + i32.load16_u + local.set $5 + local.get $0 i32.load16_u offset=2 - local.set $6 + local.set $4 local.get $5 - i32.load16_u - local.set $7 - local.get $6 - local.get $7 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $2 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s - if - local.get $5 - local.get $7 - i32.store16 offset=2 - local.get $5 - local.get $6 - i32.store16 - end + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint16Array,u16>|inlined.0 + select + i32.store16 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store16 offset=2 + return end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 local.get $5 - local.set $8 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 + if + local.get $8 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 + end + end + local.get $1 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 + local.get $1 + i32.const 1 + i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 local.get $4 - local.set $7 - local.get $2 - local.set $6 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 i32.const 0 - drop - local.get $7 - i32.const 256 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 i32.lt_s + local.set $4 + local.get $4 if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end local.get $8 - local.get $7 - local.get $6 - call $~lib/util/sort/insertionSort - else + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if local.get $8 - local.get $7 - local.get $6 - call $~lib/util/sort/weakHeapSort + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 end - local.get $3 end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Uint16Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint16Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -32858,73 +35078,123 @@ i32.lt_u i32.sub ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 2 i32.shl i32.add i32.load - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 2 i32.shl i32.add i32.load local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 2 i32.shl i32.add local.get $8 - i32.store + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -32933,474 +35203,922 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 2 + i32.shl i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 2 i32.shl i32.add - local.get $5 - i32.store - local.get $3 - i32.const 1 + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl i32.add - i32.const 5 - i32.shr_u + i32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 i32.const 2 i32.shl - local.set $3 + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $7 - i32.const 1 - i32.shr_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $4 + i32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 local.get $5 - i32.const 5 - i32.shr_u i32.const 2 i32.shl i32.add i32.load + i32.store + local.get $1 i32.const 1 + i32.add + local.set $1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 2 i32.shl - i32.xor + i32.add + local.get $7 i32.store - local.get $0 local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 i32.const 2 i32.shl i32.add - local.get $9 - i32.store + i32.load offset=4 local.get $0 - local.get $8 + local.get $4 i32.const 2 i32.shl i32.add - local.get $10 - i32.store + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - i32.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 2 i32.shl i32.add i32.load i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 2 i32.shl i32.add - local.get $10 + i32.load offset=4 i32.store + local.get $7 i32.const 1 - local.set $9 - loop $while-continue|3 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $9 - i32.const 1 + i32.const 2 i32.shl - local.get $4 + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 local.get $9 - i32.const 5 - i32.shr_u i32.const 2 i32.shl i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u + local.get $12 + i32.store + local.get $6 i32.const 1 - i32.and i32.add - local.tee $8 - local.get $5 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $9 - i32.const 0 - i32.gt_s - local.set $7 - local.get $7 - if - local.get $0 - i32.load - local.set $10 - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store - local.get $0 - local.get $11 - i32.store - end - local.get $9 - i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 - end + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load offset=4 - local.set $12 - local.get $0 - local.get $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $12 - i32.store ) - (func $~lib/typedarray/Int32Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) - block $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0 (result i32) - local.get $0 - local.set $3 + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 128 + i32.le_s + if 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 - br $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0 + return end - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq - if - local.get $5 + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $3 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $5 + local.get $0 i32.load offset=4 - local.set $6 + local.set $4 local.get $5 - i32.load - local.set $7 - local.get $6 - local.get $7 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $2 i32.load call_indirect $0 (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 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i32.store + local.get $0 + local.get $5 + local.get $4 local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Int32Array,i32>|inlined.0 + select + i32.store offset=4 + return end - local.get $5 - local.set $8 - local.get $4 - local.set $7 - local.get $2 - local.set $6 + local.get $0 i32.const 0 - drop - local.get $7 - i32.const 256 - i32.lt_s + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 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 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 end - local.get $3 end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) local.get $1 - local.get $0 - i32.gt_s + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $1 - local.get $0 - i32.lt_s + i32.const 1 i32.sub + local.set $11 + local.get $0 + i32.const 0 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 + i32.lt_s + local.set $4 + local.get $4 + if + local.get $12 + i32.const 1 + i32.add + local.set $5 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) + (func $~lib/typedarray/Int32Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.gt_s + local.get $1 + local.get $0 + i32.lt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 2 i32.shl i32.add i32.load - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 2 i32.shl i32.add i32.load local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 2 i32.shl i32.add local.get $8 - i32.store + i32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -33409,478 +36127,926 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 2 + i32.shl i32.add + local.get $11 + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 2 i32.shl i32.add - local.get $5 - i32.store - local.get $3 - i32.const 1 + local.get $10 + i32.store offset=4 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl i32.add - i32.const 5 - i32.shr_u + i32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 i32.const 2 i32.shl - local.set $3 + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u i32.const 2 i32.shl i32.add i32.load - local.get $7 - i32.const 1 - i32.shr_s + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u + local.get $0 + local.get $1 i32.const 2 i32.shl i32.add - local.get $4 + i32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 local.get $5 - i32.const 5 - i32.shr_u i32.const 2 i32.shl i32.add i32.load + i32.store + local.get $1 i32.const 1 + i32.add + local.set $1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 2 i32.shl - i32.xor + i32.add + local.get $7 i32.store - local.get $0 local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 i32.const 2 i32.shl i32.add - local.get $9 - i32.store + i32.load offset=4 local.get $0 - local.get $8 + local.get $4 i32.const 2 i32.shl i32.add - local.get $10 - i32.store + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $2 i32.const 1 i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - i32.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 2 i32.shl i32.add i32.load i32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 i32.const 2 i32.shl i32.add - local.get $10 + i32.load offset=4 i32.store + local.get $7 i32.const 1 - local.set $9 - loop $while-continue|3 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 local.get $9 - i32.const 1 + i32.const 2 i32.shl - local.get $4 + i32.add + local.get $11 + i32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 local.get $9 - i32.const 5 - i32.shr_u i32.const 2 i32.shl i32.add - i32.load - local.get $9 - i32.const 31 - i32.and - i32.shr_u + local.get $12 + i32.store + local.get $6 i32.const 1 - i32.and i32.add - local.tee $8 - local.get $5 - i32.lt_s - local.set $7 - local.get $7 - if - local.get $8 - local.set $9 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $9 - i32.const 0 - i32.gt_s - local.set $7 - local.get $7 - if - local.get $0 - i32.load - local.set $10 - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $10 - local.get $11 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i32_i32_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $9 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - local.get $9 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store - local.get $0 - local.get $11 - i32.store - end - local.get $9 - i32.const 1 - i32.shr_s - local.set $9 - br $while-continue|4 - end + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 + i32.add + local.set $9 br $for-loop|2 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i32.load offset=4 - local.set $12 - local.get $0 - local.get $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $12 - i32.store ) - (func $~lib/typedarray/Uint32Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $~lib/util/sort/SORT (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) - block $~lib/typedarray/SORT<~lib/typedarray/Uint32Array,u32>|inlined.0 (result i32) - local.get $0 - local.set $3 + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + local.get $1 + i32.const 128 + i32.le_s + if local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint32Array#get:length - local.set $4 - local.get $4 i32.const 1 i32.le_s if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint32Array,u32>|inlined.0 + return end - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq - if - local.get $5 + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i32.load + local.set $3 + local.get $0 + i32.load offset=4 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store + local.get $3 + local.get $4 + local.get $5 + select + local.set $3 + local.get $0 + i32.load offset=8 + local.set $4 + local.get $3 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i32_i32_=>_i32) + i32.const 0 + i32.gt_s + local.set $5 + local.get $0 + local.get $4 + local.get $3 + local.get $5 + select + i32.store offset=4 + local.get $0 + local.get $3 + local.get $4 + local.get $5 + select + i32.store offset=8 + end + local.get $0 + i32.load + local.set $5 + local.get $0 i32.load offset=4 - local.set $6 + local.set $4 local.get $5 - i32.load - local.set $7 - local.get $6 - local.get $7 + local.get $4 i32.const 2 global.set $~argumentsLength local.get $2 i32.load call_indirect $0 (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 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint32Array,u32>|inlined.0 + select + i32.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i32.store offset=4 + return end - local.get $5 - local.set $8 - local.get $4 - local.set $7 - local.get $2 - local.set $6 + local.get $0 i32.const 0 - drop - local.get $7 - i32.const 256 - i32.lt_s + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $5 + i32.const 31 + local.get $5 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $5 + loop $for-loop|1 + local.get $5 + local.get $6 + i32.lt_u + local.set $3 + local.get $3 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 + local.get $5 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $5 + i32.const 1 + i32.add + local.set $5 + br $for-loop|1 end - local.get $3 end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $0 local.get $1 - i32.gt_u - local.get $0 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $10 local.get $1 - i32.lt_u + i32.const 1 i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.gt_u - local.get $1 + local.set $11 local.get $0 - i32.lt_u - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i32) i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $12 + local.get $12 + i32.const 1 + i32.add + local.set $13 + local.get $13 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $4 + i32.const 32 + i32.const 1 + i32.sub + local.tee $5 + local.get $4 + local.get $5 + i32.lt_s + select + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $13 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $14 + i32.const 0 + local.set $15 + loop $while-continue|2 + local.get $12 + local.get $11 i32.lt_s local.set $4 local.get $4 if - local.get $0 - local.get $3 - i32.const 3 - i32.shl + local.get $12 + i32.const 1 i32.add - i64.load local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 + local.get $0 + local.get $5 + local.get $11 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $3 + local.get $3 + local.get $5 + i32.sub + i32.const 1 + i32.add + local.set $16 + local.get $16 + i32.const 32 + i32.lt_s + if + local.get $11 + local.tee $17 + local.get $5 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $18 + local.get $17 + local.get $18 + i32.lt_s + select + local.set $3 + local.get $0 + local.get $5 + local.get $3 + local.get $16 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $11 + local.get $15 + local.get $5 + local.get $3 + call $~lib/util/sort/nodePower + local.set $17 + local.get $14 + local.set $18 + loop $for-loop|3 + local.get $18 + local.get $17 + i32.gt_u + local.set $19 + local.get $19 + if + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $20 + local.get $20 + i32.const -1 + i32.ne + if + local.get $0 + local.get $20 + local.get $9 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $20 + local.set $15 + local.get $8 + local.get $18 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $18 + i32.const 1 + i32.sub + local.set $18 + br $for-loop|3 + end + end + local.get $8 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $15 + i32.store + local.get $9 + local.get $17 + i32.const 2 + i32.shl + i32.add + local.get $12 + i32.store + local.get $5 + local.set $15 + local.get $3 + local.set $12 + local.get $17 + local.set $14 + br $while-continue|2 + end + end + local.get $14 + local.set $4 + loop $for-loop|4 + local.get $4 + i32.const 0 + i32.ne + local.set $18 + local.get $18 + if + local.get $8 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $19 + local.get $19 + i32.const -1 + i32.ne + if + local.get $0 + local.get $19 + local.get $9 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $11 + local.get $10 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $4 + i32.const 1 + i32.sub + local.set $4 + br $for-loop|4 + end + end + local.get $10 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Uint32Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint32Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $0 + local.get $1 + i32.gt_u + local.get $0 + local.get $1 + i32.lt_u + i32.sub + ) + (func $std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>~anonymous|0 (param $0 i32) (param $1 i32) (result i32) + local.get $1 + local.get $0 + i32.gt_u + local.get $1 + local.get $0 + i32.lt_u + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 + if + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 3 i32.shl i32.add i64.load local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 3 i32.shl i32.add local.get $8 - i64.store + i64.store offset=16 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -33889,876 +37055,1722 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 3 + i32.shl i32.add + local.get $11 + i64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 3 i32.shl i32.add - local.get $5 - i64.store - local.get $3 - i32.const 1 + local.get $10 + i64.store offset=8 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) + (local $7 i64) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl i32.add - i32.const 5 - i32.shr_u - i32.const 2 + i64.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 i32.shl - local.set $3 + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 + i32.const 3 i32.shl i32.add + i64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - local.get $7 - i32.const 1 - i32.shr_s + call_indirect $0 (type $i64_i64_=>_i32) i32.const 31 - i32.and i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|0 end - local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $0 + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 - local.get $9 - local.get $10 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 i32.lt_s + local.set $6 + local.get $6 if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + local.get $0 + local.get $1 + i32.const 3 i32.shl i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 + i64.load + local.set $7 + local.get $0 + local.get $1 + i32.const 3 i32.shl i32.add - i32.load - i32.const 1 + local.get $0 local.get $5 - i32.const 31 - i32.and + i32.const 3 i32.shl - i32.xor - i32.store + i32.add + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 local.get $0 local.get $5 i32.const 3 i32.shl i32.add - local.get $9 + local.get $7 i64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) local.get $0 - local.get $8 + local.get $4 i32.const 3 i32.shl i32.add - local.get $10 - i64.store + i64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 end - local.get $5 - i32.const 1 - i32.sub local.set $5 - br $for-loop|0 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end end end - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 if - local.get $0 - i64.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 + local.get $4 + local.get $6 + i32.const 1 + i32.sub i32.const 3 i32.shl i32.add - i64.load - i64.store local.get $0 - local.get $5 + local.get $6 + i32.const 1 + i32.sub i32.const 3 i32.shl i32.add - local.get $10 + i64.load i64.store - i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 - i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - 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 - local.set $11 - local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end - end - loop $while-continue|4 - local.get $8 - i32.const 0 - i32.gt_s - local.set $11 - local.get $11 - if - local.get $0 - i64.load - local.set $10 - local.get $0 - local.get $8 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $9 - local.get $10 - local.get $9 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - 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 3 - i32.shl - i32.add - local.get $10 - i64.store - local.get $0 - local.get $9 - i64.store - end - local.get $8 - i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 - end - end - local.get $5 + local.get $6 i32.const 1 i32.sub - local.set $5 - br $for-loop|2 + local.set $6 + br $for-loop|0 end end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - i64.load offset=8 - local.set $12 - local.get $0 - local.get $0 - i64.load - i64.store offset=8 - local.get $0 - local.get $12 - i64.store - ) - (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Int64Array,i64>|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Int64Array#get:length - local.set $4 - local.get $4 - i32.const 1 - i32.le_s - if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Int64Array,i64>|inlined.0 - end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq - if - local.get $5 - i64.load offset=8 - local.set $6 - local.get $5 - i64.load - local.set $7 - local.get $6 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $5 - local.get $7 - i64.store offset=8 - local.get $5 - local.get $6 - i64.store - end - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Int64Array,i64>|inlined.0 - end - local.get $5 - local.set $10 - local.get $4 + i32.lt_s local.set $9 - local.get $2 - local.set $8 - i32.const 0 - drop 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 $9 + local.get $4 local.get $8 - call $~lib/util/sort/weakHeapSort - end - local.get $3 - end - ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) - local.get $0 - local.get $1 - i64.gt_s - local.get $0 - local.get $1 - i64.lt_s - i32.sub - ) - (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) - local.get $1 - local.get $0 - i64.gt_s - local.get $1 - local.get $0 - i64.lt_s - i32.sub - ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i32) - i32.const 0 - local.set $3 - loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 - if - local.get $0 - local.get $3 + local.get $7 + i32.sub i32.const 3 i32.shl i32.add - i64.load - local.set $5 - local.get $3 - i32.const 1 - i32.sub - local.set $6 - block $while-break|1 - loop $while-continue|1 - local.get $6 - i32.const 0 - i32.ge_s - local.set $7 - local.get $7 - if - local.get $0 - local.get $6 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $8 - local.get $5 - local.get $8 - i32.const 2 - global.set $~argumentsLength - local.get $2 - i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.lt_s - if - local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add - i32.const 3 - i32.shl - i32.add - local.get $8 - i64.store - else - br $while-break|1 - end - br $while-continue|1 - end - end - end local.get $0 - local.get $6 - i32.const 1 - i32.add + local.get $7 i32.const 3 i32.shl i32.add - local.get $5 + i64.load offset=8 i64.store - local.get $3 + local.get $7 i32.const 1 i32.add - local.set $3 - br $for-loop|0 + local.set $7 + br $for-loop|1 end end - ) - (func $~lib/util/sort/weakHeapSort (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 i64) - (local $10 i64) - (local $11 i32) - (local $12 i64) - local.get $1 - i32.const 31 - i32.add - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - local.set $3 - local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 - i32.const 0 - local.get $3 - call $~lib/memory/memory.fill local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 if - local.get $5 - local.set $7 - loop $while-continue|1 - local.get $7 - i32.const 1 - i32.and - local.get $4 - local.get $7 - i32.const 6 - i32.shr_u - i32.const 2 - i32.shl - i32.add - i32.load - local.get $7 - i32.const 1 - i32.shr_s - i32.const 31 - i32.and - i32.shr_u - i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end - end + local.get $4 local.get $7 - i32.const 1 - i32.shr_s - local.set $8 - local.get $0 - local.get $8 i32.const 3 i32.shl i32.add i64.load - local.set $9 - local.get $0 - local.get $5 + local.set $11 + local.get $4 + local.get $6 i32.const 3 i32.shl i32.add i64.load - local.set $10 - local.get $9 - local.get $10 + local.set $12 + local.get $11 + local.get $12 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $5 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 i32.lt_s if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - 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 + local.get $9 i32.const 3 i32.shl i32.add - local.get $9 + local.get $11 i64.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else local.get $0 - local.get $8 + local.get $9 i32.const 3 i32.shl i32.add - local.get $10 + local.get $12 i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 - br $for-loop|0 + i32.add + local.set $9 + br $for-loop|2 end end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 - local.get $6 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s if - local.get $0 - i64.load - local.set $10 - local.get $0 - local.get $0 - local.get $5 - i32.const 3 - i32.shl - i32.add - i64.load - i64.store - local.get $0 - local.get $5 - i32.const 3 + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $4 + local.get $0 + i64.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + i64.load offset=16 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store offset=8 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $5 + local.get $0 + i64.load offset=8 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i64.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 i32.shl i32.add - local.get $10 - i64.store + i32.const -1 + i32.store + local.get $3 i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 - i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 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.sub + local.tee $20 + local.get $19 + local.get $20 i32.lt_s - local.set $11 - local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort end - loop $while-continue|4 - local.get $8 - i32.const 0 - i32.gt_s - local.set $11 - local.get $11 + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 if - local.get $0 - i64.load - local.set $10 - local.get $0 local.get $8 - i32.const 3 + local.get $20 + i32.const 2 i32.shl i32.add - i64.load - local.set $9 - local.get $10 - local.get $9 - i32.const 2 - global.set $~argumentsLength - local.get $2 i32.load - call_indirect $0 (type $i64_i64_=>_i32) - i32.const 0 - i32.lt_s + local.set $22 + local.get $22 + i32.const -1 + i32.ne if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u + local.get $0 + local.get $22 + local.get $9 + local.get $20 i32.const 2 i32.shl i32.add i32.load i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 local.get $8 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $8 - i32.const 3 + local.get $20 + i32.const 2 i32.shl i32.add - local.get $10 - i64.store - local.get $0 - local.get $9 - i64.store + i32.const -1 + i32.store end - local.get $8 + local.get $20 i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 + i32.sub + local.set $20 + br $for-loop|3 end end - local.get $5 + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store + local.get $3 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 + end + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 + if + local.get $8 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 i32.const 1 i32.sub - local.set $5 - br $for-loop|2 + local.set $10 + br $for-loop|4 end end - local.get $4 + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Int64Array#sort (param $0 i32) (param $1 i32) (result i32) local.get $0 - i64.load offset=8 - local.set $12 + i32.load offset=4 local.get $0 + call $~lib/typedarray/Int64Array#get:length + local.get $1 + call $~lib/util/sort/SORT local.get $0 - i64.load - i64.store offset=8 + ) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) local.get $0 - local.get $12 - i64.store + local.get $1 + i64.gt_s + local.get $0 + local.get $1 + i64.lt_s + i32.sub ) - (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) + (func $std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>~anonymous|0 (param $0 i64) (param $1 i64) (result i32) + local.get $1 + local.get $0 + i64.gt_s + local.get $1 + local.get $0 + i64.lt_s + i32.sub + ) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) - (local $6 i64) - (local $7 i64) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Uint64Array,u64>|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Uint64Array#get:length - local.set $4 - local.get $4 - i32.const 1 + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $2 i32.le_s + local.set $7 + local.get $7 if - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint64Array,u64>|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 - i64.load offset=8 - local.set $6 - local.get $5 + local.get $0 + local.get $6 + i32.const 3 + i32.shl + i32.add i64.load - local.set $7 + local.set $8 + local.get $0 local.get $6 - local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $i64_i64_=>_i32) i32.const 0 - i32.lt_s + i32.le_s if - local.get $5 - local.get $7 - i64.store offset=8 - local.get $5 - local.get $6 - i64.store + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 + i32.const 1 + i32.sub + local.set $12 + block $while-break|1 + loop $while-continue|1 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $8 + local.get $11 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store offset=16 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|1 + end + br $while-continue|1 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $8 + i64.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 + i32.const 3 + i32.shl + i32.add + local.get $10 + i64.store offset=8 + local.get $6 + i32.const 2 + i32.add + local.set $6 + br $for-loop|0 + end + end + ) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i64) + local.get $1 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $7 + local.get $0 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 3 + i32.shl + i32.add + local.get $7 + i64.store + local.get $5 + i32.const 1 + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $0 + local.get $4 + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|2 + end + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i64) + (local $12 i64) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $6 + i32.const 1 + i32.sub + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 3 + i32.shl + i32.add + local.get $0 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + i64.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $11 + local.get $4 + local.get $6 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $12 + local.get $11 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $5 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.lt_s + if + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $11 + i64.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else + local.get $0 + local.get $9 + i32.const 3 + i32.shl + i32.add + local.get $12 + i64.store + local.get $6 + i32.const 1 + i32.add + local.set $6 + end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|2 + end + end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) + local.get $1 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s + if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + i64.load + local.set $4 + local.get $0 + i64.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + i64.load offset=16 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store offset=8 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i64.store offset=16 + end + local.get $0 + i64.load + local.set $5 + local.get $0 + i64.load offset=8 + local.set $4 + local.get $5 + local.get $4 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $i64_i64_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + i64.store + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + i64.store offset=8 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 3 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 + i32.add + i32.const 1 + i32.sub + local.tee $20 + local.get $19 + local.get $20 + i32.lt_s + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 + if + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $22 + local.get $22 + i32.const -1 + i32.ne + if + local.get $0 + local.get $22 + local.get $9 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 + local.get $8 + local.get $20 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $20 + i32.const 1 + i32.sub + local.set $20 + br $for-loop|3 + end end + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Uint64Array,u64>|inlined.0 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 end - local.get $5 - local.set $10 - local.get $4 - local.set $9 - local.get $2 - local.set $8 + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 i32.const 0 - drop - local.get $9 - i32.const 256 - i32.lt_s + i32.ne + local.set $20 + local.get $20 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 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $21 + local.get $21 + i32.const -1 + i32.ne + if + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + end + local.get $10 + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 end - local.get $3 end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Uint64Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Uint64Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 i64) (param $1 i64) (result i32) local.get $0 @@ -34778,73 +38790,123 @@ i64.lt_u i32.sub ) - (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 f32) + (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (local $5 i32) (local $6 i32) (local $7 i32) (local $8 f32) - (local $9 i32) + (local $9 f32) + (local $10 f32) + (local $11 f32) + (local $12 i32) + (local $13 i32) i32.const 0 - local.set $3 + i32.const 1 + i32.ge_s + drop + local.get $2 + local.get $1 + i32.sub + i32.const 1 + i32.add + local.set $5 + local.get $1 + local.get $5 + i32.const 1 + i32.and + local.get $3 + local.get $5 + local.get $3 + i32.sub + i32.const 1 + i32.and + i32.sub + local.get $3 + i32.const 0 + i32.eq + select + i32.add + local.set $6 loop $for-loop|0 - local.get $3 - local.get $1 - i32.lt_s - local.set $4 - local.get $4 + local.get $6 + local.get $2 + i32.le_s + local.set $7 + local.get $7 if local.get $0 - local.get $3 + local.get $6 i32.const 2 i32.shl i32.add f32.load - local.set $5 - local.get $3 + local.set $8 + local.get $0 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.set $9 + local.get $9 + local.set $10 + local.get $8 + local.set $11 + local.get $8 + local.get $9 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.le_s + if + local.get $8 + local.set $10 + local.get $9 + local.set $11 + end + local.get $6 i32.const 1 i32.sub - local.set $6 + local.set $12 block $while-break|1 loop $while-continue|1 - local.get $6 - i32.const 0 + local.get $12 + local.get $1 i32.ge_s - local.set $7 - local.get $7 + local.set $13 + local.get $13 if local.get $0 - local.get $6 + local.get $12 i32.const 2 i32.shl i32.add f32.load local.set $8 - local.get $5 local.get $8 + local.get $11 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $4 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 - i32.lt_s + i32.gt_s if local.get $0 - local.get $6 - local.tee $9 - i32.const 1 - i32.sub - local.set $6 - local.get $9 - i32.const 1 - i32.add + local.get $12 i32.const 2 i32.shl i32.add local.get $8 - f32.store + f32.store offset=8 + local.get $12 + i32.const 1 + i32.sub + local.set $12 else br $while-break|1 end @@ -34853,394 +38915,792 @@ end end local.get $0 - local.get $6 - i32.const 1 + local.get $12 + i32.const 2 + i32.shl i32.add + local.get $11 + f32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $12 + local.get $1 + i32.ge_s + local.set $13 + local.get $13 + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $8 + local.get $8 + local.get $10 + i32.const 2 + global.set $~argumentsLength + local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + if + local.get $0 + local.get $12 + i32.const 2 + i32.shl + i32.add + local.get $8 + f32.store offset=4 + local.get $12 + i32.const 1 + i32.sub + local.set $12 + else + br $while-break|2 + end + br $while-continue|2 + end + end + end + local.get $0 + local.get $12 i32.const 2 i32.shl i32.add - local.get $5 - f32.store - local.get $3 - i32.const 1 + local.get $10 + f32.store offset=4 + local.get $6 + i32.const 2 i32.add - local.set $3 + local.set $6 br $for-loop|0 end end ) - (func $~lib/util/sort/weakHeapSort (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) + (func $~lib/util/sort/extendRunRight (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 f32) - (local $10 f32) - (local $11 i32) - (local $12 f32) + (local $7 f32) local.get $1 - i32.const 31 + local.get $2 + i32.eq + if + local.get $1 + return + end + local.get $1 + local.set $4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl i32.add - i32.const 5 - i32.shr_u + f32.load + local.get $0 + local.get $4 + i32.const 1 + i32.add + local.tee $4 i32.const 2 i32.shl - local.set $3 + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength local.get $3 - call $~lib/rt/tlsf/__alloc - local.set $4 - local.get $4 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 - local.get $3 - call $~lib/memory/memory.fill - local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 0 - i32.gt_s - local.set $6 - local.get $6 - if + i32.gt_s + if + loop $while-continue|0 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + local.set $5 local.get $5 - local.set $7 - loop $while-continue|1 + if + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $while-continue|0 + end + end + local.get $4 + local.set $5 + loop $while-continue|1 + local.get $1 + local.get $5 + i32.lt_s + local.set $6 + local.get $6 + if + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $7 + local.get $0 + local.get $1 + i32.const 2 + i32.shl + i32.add + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + local.get $0 + local.get $5 + i32.const 2 + i32.shl + i32.add local.get $7 + f32.store + local.get $5 i32.const 1 - i32.and + i32.sub + local.set $5 + br $while-continue|1 + end + end + else + loop $while-continue|2 + local.get $4 + local.get $2 + i32.lt_s + if (result i32) + local.get $0 + local.get $4 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $0 local.get $4 - local.get $7 - i32.const 6 - i32.shr_u i32.const 2 i32.shl i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $3 i32.load - local.get $7 - i32.const 1 - i32.shr_s - i32.const 31 - i32.and - i32.shr_u + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.ge_s + else + i32.const 0 + end + local.set $5 + local.get $5 + if + local.get $4 i32.const 1 - i32.and - i32.eq - local.set $8 - local.get $8 - if - local.get $7 - i32.const 1 - i32.shr_s - local.set $7 - br $while-continue|1 - end + i32.add + local.set $4 + br $while-continue|2 end - local.get $7 + end + end + local.get $4 + ) + (func $~lib/util/sort/mergeRuns (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (param $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f32) + (local $12 f32) + local.get $2 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + local.get $2 + i32.add + local.set $8 + local.get $2 + i32.const 1 + i32.add + local.set $6 + loop $for-loop|0 + local.get $6 + local.get $1 + i32.gt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $6 i32.const 1 - i32.shr_s - local.set $8 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $8 + local.get $6 + i32.const 1 + i32.sub i32.const 2 i32.shl i32.add f32.load - local.set $9 + f32.store + local.get $6 + i32.const 1 + i32.sub + local.set $6 + br $for-loop|0 + end + end + local.get $2 + local.set $7 + loop $for-loop|1 + local.get $7 + local.get $3 + i32.lt_s + local.set $9 + local.get $9 + if + local.get $4 + local.get $8 + local.get $7 + i32.sub + i32.const 2 + i32.shl + i32.add local.get $0 - local.get $5 + local.get $7 + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + f32.store + local.get $7 + i32.const 1 + i32.add + local.set $7 + br $for-loop|1 + end + end + local.get $1 + local.set $9 + loop $for-loop|2 + local.get $9 + local.get $3 + i32.le_s + local.set $10 + local.get $10 + if + local.get $4 + local.get $7 i32.const 2 i32.shl i32.add f32.load - local.set $10 - local.get $9 - local.get $10 + local.set $11 + local.get $4 + local.get $6 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $12 + local.get $11 + local.get $12 i32.const 2 global.set $~argumentsLength - local.get $2 + local.get $5 i32.load call_indirect $0 (type $f32_f32_=>_i32) i32.const 0 i32.lt_s if - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $5 - i32.const 5 - i32.shr_u - 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 + local.get $9 i32.const 2 i32.shl i32.add - local.get $9 + local.get $11 f32.store + local.get $7 + i32.const 1 + i32.sub + local.set $7 + else local.get $0 - local.get $8 + local.get $9 i32.const 2 i32.shl i32.add - local.get $10 + local.get $12 f32.store + local.get $6 + i32.const 1 + i32.add + local.set $6 end - local.get $5 + local.get $9 i32.const 1 - i32.sub - local.set $5 - br $for-loop|0 + i32.add + local.set $9 + br $for-loop|2 end end + ) + (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 f32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i32) + (local $20 i32) + (local $21 i32) + (local $22 i32) local.get $1 - i32.const 1 - i32.sub - local.set $5 - loop $for-loop|2 - local.get $5 - i32.const 2 - i32.ge_s - local.set $6 - local.get $6 + i32.const 128 + i32.le_s + if + local.get $1 + i32.const 1 + i32.le_s if + return + end + i32.const 0 + i32.const 1 + i32.lt_s + drop + block $break|0 + block $case1|0 + block $case0|0 + local.get $1 + local.set $3 + local.get $3 + i32.const 3 + i32.eq + br_if $case0|0 + local.get $3 + i32.const 2 + i32.eq + br_if $case1|0 + br $break|0 + end + local.get $0 + f32.load + local.set $4 + local.get $0 + f32.load offset=4 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store + local.get $4 + local.get $5 + local.get $3 + select + local.set $4 + local.get $0 + f32.load offset=8 + local.set $5 + local.get $4 + local.get $5 + i32.const 2 + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $5 + local.get $4 + local.get $3 + select + f32.store offset=4 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select + f32.store offset=8 + end local.get $0 f32.load - local.set $10 - local.get $0 + local.set $5 local.get $0 + f32.load offset=4 + local.set $4 local.get $5 + local.get $4 i32.const 2 - i32.shl - i32.add - f32.load + global.set $~argumentsLength + local.get $2 + i32.load + call_indirect $0 (type $f32_f32_=>_i32) + i32.const 0 + i32.gt_s + local.set $3 + local.get $0 + local.get $4 + local.get $5 + local.get $3 + select f32.store local.get $0 local.get $5 + local.get $4 + local.get $3 + select + f32.store offset=4 + return + end + local.get $0 + i32.const 0 + local.get $1 + i32.const 1 + i32.sub + i32.const 0 + local.get $2 + call $~lib/util/sort/insertionSort + return + end + local.get $1 + local.set $3 + i32.const 31 + local.get $3 + i32.clz + i32.sub + i32.const 2 + i32.add + local.set $6 + local.get $6 + i32.const 2 + i32.shl + local.set $7 + local.get $7 + i32.const 1 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $8 + local.get $8 + local.get $7 + i32.add + local.set $9 + i32.const 0 + local.set $3 + loop $for-loop|1 + local.get $3 + local.get $6 + i32.lt_u + local.set $10 + local.get $10 + if + local.get $8 + local.get $3 i32.const 2 i32.shl i32.add - local.get $10 - f32.store + i32.const -1 + i32.store + local.get $3 i32.const 1 - local.set $8 - loop $while-continue|3 - local.get $8 - i32.const 1 - i32.shl - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl + i32.add + local.set $3 + br $for-loop|1 + end + end + local.get $1 + i32.const 2 + i32.shl + call $~lib/rt/tlsf/__alloc + local.set $11 + local.get $1 + i32.const 1 + i32.sub + local.set $12 + local.get $0 + i32.const 0 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $13 + local.get $13 + i32.const 1 + i32.add + local.set $14 + local.get $14 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $10 + i32.const 32 + i32.const 1 + i32.sub + local.tee $3 + local.get $10 + local.get $3 + i32.lt_s + select + local.set $13 + local.get $0 + i32.const 0 + local.get $13 + local.get $14 + local.get $2 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.set $15 + i32.const 0 + local.set $16 + loop $while-continue|2 + local.get $13 + local.get $12 + i32.lt_s + local.set $10 + local.get $10 + if + local.get $13 + i32.const 1 + i32.add + local.set $3 + local.get $0 + local.get $3 + local.get $12 + local.get $2 + call $~lib/util/sort/extendRunRight + local.set $17 + local.get $17 + local.get $3 + i32.sub + i32.const 1 + i32.add + local.set $18 + local.get $18 + i32.const 32 + i32.lt_s + if + local.get $12 + local.tee $19 + local.get $3 + i32.const 32 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.sub + local.tee $20 + local.get $19 + local.get $20 i32.lt_s - local.set $11 - local.get $11 - if - local.get $7 - local.set $8 - br $while-continue|3 - end + select + local.set $17 + local.get $0 + local.get $3 + local.get $17 + local.get $18 + local.get $2 + call $~lib/util/sort/insertionSort end - loop $while-continue|4 - local.get $8 - i32.const 0 - i32.gt_s - local.set $11 - local.get $11 + i32.const 0 + local.get $12 + local.get $16 + local.get $3 + local.get $17 + call $~lib/util/sort/nodePower + local.set $19 + local.get $15 + local.set $20 + loop $for-loop|3 + local.get $20 + local.get $19 + i32.gt_u + local.set $21 + local.get $21 if - local.get $0 - f32.load - local.set $10 - local.get $0 local.get $8 + local.get $20 i32.const 2 i32.shl i32.add - f32.load - local.set $9 - local.get $10 - local.get $9 - i32.const 2 - global.set $~argumentsLength - local.get $2 i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s + local.set $22 + local.get $22 + i32.const -1 + i32.ne if - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u - i32.const 2 - i32.shl - i32.add - local.get $4 - local.get $8 - i32.const 5 - i32.shr_u + local.get $0 + local.get $22 + local.get $9 + local.get $20 i32.const 2 i32.shl i32.add i32.load i32.const 1 + i32.add + local.get $13 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns + local.get $22 + local.set $16 local.get $8 - i32.const 31 - i32.and - i32.shl - i32.xor - i32.store - local.get $0 - local.get $8 + local.get $20 i32.const 2 i32.shl i32.add - local.get $10 - f32.store - local.get $0 - local.get $9 - f32.store + i32.const -1 + i32.store end - local.get $8 + local.get $20 i32.const 1 - i32.shr_s - local.set $8 - br $while-continue|4 + i32.sub + local.set $20 + br $for-loop|3 end end - local.get $5 - i32.const 1 - i32.sub - local.set $5 - br $for-loop|2 - end - end - local.get $4 - call $~lib/rt/tlsf/__free - local.get $0 - f32.load offset=4 - local.set $12 - local.get $0 - local.get $0 - f32.load - f32.store offset=4 - local.get $0 - local.get $12 - f32.store - ) - (func $~lib/typedarray/Float32Array#sort (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 f32) - (local $7 f32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - block $~lib/typedarray/SORT<~lib/typedarray/Float32Array,f32>|inlined.0 (result i32) - local.get $0 - local.set $3 - local.get $1 - local.set $2 - local.get $3 - call $~lib/typedarray/Float32Array#get:length - local.set $4 - local.get $4 - i32.const 1 - i32.le_s - if + local.get $8 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $16 + i32.store + local.get $9 + local.get $19 + i32.const 2 + i32.shl + i32.add + local.get $13 + i32.store local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Float32Array,f32>|inlined.0 + local.set $16 + local.get $17 + local.set $13 + local.get $19 + local.set $15 + br $while-continue|2 end - local.get $3 - i32.load offset=4 - local.set $5 - local.get $4 - i32.const 2 - i32.eq + end + local.get $15 + local.set $10 + loop $for-loop|4 + local.get $10 + i32.const 0 + i32.ne + local.set $20 + local.get $20 if - local.get $5 - f32.load offset=4 - local.set $6 - local.get $5 - f32.load - local.set $7 - local.get $6 - local.get $7 + local.get $8 + local.get $10 i32.const 2 - global.set $~argumentsLength - local.get $2 + i32.shl + i32.add i32.load - call_indirect $0 (type $f32_f32_=>_i32) - i32.const 0 - i32.lt_s + local.set $21 + local.get $21 + i32.const -1 + i32.ne if - local.get $5 - local.get $7 - f32.store offset=4 - local.get $5 - local.get $6 - f32.store + local.get $0 + local.get $21 + local.get $9 + local.get $10 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $12 + local.get $11 + local.get $2 + call $~lib/util/sort/mergeRuns end - local.get $3 - br $~lib/typedarray/SORT<~lib/typedarray/Float32Array,f32>|inlined.0 - end - local.get $5 - local.set $10 - local.get $4 - local.set $9 - local.get $2 - local.set $8 - i32.const 0 - drop - 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 $9 - local.get $8 - call $~lib/util/sort/weakHeapSort + i32.const 1 + i32.sub + local.set $10 + br $for-loop|4 end - local.get $3 end + local.get $11 + call $~lib/rt/tlsf/__free + local.get $8 + call $~lib/rt/tlsf/__free + ) + (func $~lib/typedarray/Float32Array#sort (param $0 i32) (param $1 i32) (result i32) + local.get $0 + i32.load offset=4 + local.get $0 + call $~lib/typedarray/Float32Array#get:length + local.get $1 + call $~lib/util/sort/SORT + local.get $0 ) (func $~lib/util/sort/COMPARATOR~anonymous|0 (param $0 f32) (param $1 f32) (result i32) (local $2 i32) @@ -63690,7 +68150,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -63709,7 +68169,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -63721,7 +68181,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -63739,7 +68199,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -63908,7 +68368,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -63927,7 +68387,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -63939,7 +68399,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -63957,7 +68417,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -64027,7 +68487,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -64046,7 +68506,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -64058,7 +68518,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -64076,7 +68536,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -64146,7 +68606,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -64165,7 +68625,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -64177,7 +68637,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -64195,7 +68655,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -64265,7 +68725,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -64284,7 +68744,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -64296,7 +68756,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -64314,7 +68774,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -64384,7 +68844,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -64403,7 +68863,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -64415,7 +68875,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -64433,7 +68893,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -64503,7 +68963,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -64522,7 +68982,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -64534,7 +68994,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -64552,7 +69012,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -64622,7 +69082,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -64641,7 +69101,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -64653,7 +69113,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -64671,7 +69131,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -64741,7 +69201,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -64760,7 +69220,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -64772,7 +69232,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -64790,7 +69250,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -64860,7 +69320,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -64879,7 +69339,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -64891,7 +69351,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -64909,7 +69369,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable @@ -64979,7 +69439,7 @@ if i32.const 336 i32.const 608 - i32.const 1826 + i32.const 1815 i32.const 5 call $~lib/builtins/abort unreachable @@ -64998,7 +69458,7 @@ if i32.const 32 i32.const 608 - i32.const 1831 + i32.const 1820 i32.const 9 call $~lib/builtins/abort unreachable @@ -65010,7 +69470,7 @@ else i32.const 32 i32.const 608 - i32.const 1835 + i32.const 1824 i32.const 7 call $~lib/builtins/abort unreachable @@ -65028,7 +69488,7 @@ if i32.const 32 i32.const 608 - i32.const 1840 + i32.const 1829 i32.const 7 call $~lib/builtins/abort unreachable