diff --git a/std/assembly/array.ts b/std/assembly/array.ts index 371834c8..670305c1 100644 --- a/std/assembly/array.ts +++ b/std/assembly/array.ts @@ -7,12 +7,26 @@ import { storeUnsafe } from "./internal/arraybuffer"; +import { + allocateUnsafe as allocateUnsafeString, + freeUnsafe as freeUnsafeString, + copyUnsafe as copyUnsafeString +} from "./internal/string"; + import { defaultComparator, insertionSort, weakHeapSort } from "./internal/array"; +import { + itoa, + dtoa, + itoa_stream, + dtoa_stream, + MAX_DOUBLE_LENGTH +} from "./internal/number"; + export class Array { /* @internal */ buffer_: ArrayBuffer; @@ -118,16 +132,9 @@ export class Array { return this; } + @inline includes(searchElement: T, fromIndex: i32 = 0): bool { - var length = this.length_; - if (length == 0 || fromIndex >= length) return false; - if (fromIndex < 0) fromIndex = max(length + fromIndex, 0); - var buffer = this.buffer_; - while (fromIndex < length) { - if (loadUnsafe(buffer, fromIndex) == searchElement) return true; - ++fromIndex; - } - return false; + return this.indexOf(searchElement, fromIndex) >= 0; } indexOf(searchElement: T, fromIndex: i32 = 0): i32 { @@ -356,6 +363,169 @@ export class Array { } } + join(separator: string = ","): string { + var lastIndex = this.length_ - 1; + if (lastIndex < 0) return ""; + var result = ""; + var value: T; + var buffer = this.buffer_; + var sepLen = separator.length; + var hasSeparator = sepLen != 0; + if (value instanceof bool) { + if (!lastIndex) { + return select("true", "false", loadUnsafe(buffer, 0)); + } + let valueLen = 5; // max possible length of element len("false") + let estLen = (valueLen + sepLen) * lastIndex + valueLen; + let result = allocateUnsafeString(estLen); + let offset = 0; + for (let i = 0; i < lastIndex; ++i) { + value = loadUnsafe(buffer, i); + valueLen = 4 + (!value); + copyUnsafeString(result, offset, select("true", "false", value), 0, valueLen); + offset += valueLen; + if (hasSeparator) { + copyUnsafeString(result, offset, changetype(separator), 0, sepLen); + offset += sepLen; + } + } + value = loadUnsafe(buffer, lastIndex); + valueLen = 4 + (!value); + copyUnsafeString(result, offset, select("true", "false", value), 0, valueLen); + offset += valueLen; + + let out = result; + if (estLen > offset) { + out = result.substring(0, offset); + freeUnsafeString(result); + } + return out; + } else if (isInteger()) { + if (!lastIndex) { + return changetype(itoa(loadUnsafe(buffer, 0))); + } + const valueLen = (sizeof() <= 4 ? 10 : 20) + isSigned(); + let estLen = (valueLen + sepLen) * lastIndex + valueLen; + let result = allocateUnsafeString(estLen); + let offset = 0; + for (let i = 0; i < lastIndex; ++i) { + value = loadUnsafe(buffer, i); + offset += itoa_stream(changetype(result), offset, value); + if (hasSeparator) { + copyUnsafeString(result, offset, separator, 0, sepLen); + offset += sepLen; + } + } + value = loadUnsafe(buffer, lastIndex); + offset += itoa_stream(changetype(result), offset, value); + let out = result; + if (estLen > offset) { + out = result.substring(0, offset); + freeUnsafeString(result); + } + return out; + } else if (isFloat()) { + if (!lastIndex) { + return changetype(dtoa(loadUnsafe(buffer, 0))); + } + const valueLen = MAX_DOUBLE_LENGTH; + let estLen = (valueLen + sepLen) * lastIndex + valueLen; + let result = allocateUnsafeString(estLen); + let offset = 0; + for (let i = 0; i < lastIndex; ++i) { + value = loadUnsafe(buffer, i); + offset += dtoa_stream(changetype(result), offset, value); + if (hasSeparator) { + copyUnsafeString(result, offset, separator, 0, sepLen); + offset += sepLen; + } + } + value = loadUnsafe(buffer, lastIndex); + offset += dtoa_stream(changetype(result), offset, value); + let out = result; + if (estLen > offset) { + out = result.substring(0, offset); + freeUnsafeString(result); + } + return out; + } else if (isString()) { + if (!lastIndex) { + return loadUnsafe(buffer, 0); + } + let estLen = 0; + for (let i = 0, len = lastIndex + 1; i < len; ++i) { + estLen += loadUnsafe(buffer, i).length; + } + let offset = 0; + let result = allocateUnsafeString(estLen + sepLen * lastIndex); + for (let i = 0; i < lastIndex; ++i) { + value = loadUnsafe(buffer, i); + if (value) { + let valueLen = value.length; // tslint:disable-line:no-unsafe-any + copyUnsafeString(result, offset, value, 0, valueLen); // tslint:disable-line:no-unsafe-any + offset += valueLen; // tslint:disable-line:no-unsafe-any + } + if (hasSeparator) { + copyUnsafeString(result, offset, separator, 0, sepLen); + offset += sepLen; + } + } + value = loadUnsafe(buffer, lastIndex); + if (value) { + let valueLen = value.length; // tslint:disable-line:no-unsafe-any + copyUnsafeString(result, offset, value, 0, valueLen); // tslint:disable-line:no-unsafe-any + } + return result; + } else if (isArray()) { + if (!lastIndex) { + value = loadUnsafe(buffer, 0); + return value ? value.join(separator) : ""; // tslint:disable-line:no-unsafe-any + } + for (let i = 0; i < lastIndex; ++i) { + value = loadUnsafe(buffer, i); + if (value) result += value.join(separator); // tslint:disable-line:no-unsafe-any + if (hasSeparator) result += separator; + } + value = loadUnsafe(buffer, lastIndex); + if (value) result += value.join(separator); // tslint:disable-line:no-unsafe-any + return result; + } else if (isReference()) { // References + if (!lastIndex) return "[object Object]"; + const valueLen = 15; // max possible length of element len("[object Object]") + let estLen = (valueLen + sepLen) * lastIndex + valueLen; + let result = allocateUnsafeString(estLen); + let offset = 0; + for (let i = 0; i < lastIndex; ++i) { + value = loadUnsafe(buffer, i); + if (value) { + copyUnsafeString(result, offset, changetype("[object Object]"), 0, valueLen); + offset += valueLen; + } + if (hasSeparator) { + copyUnsafeString(result, offset, changetype(separator), 0, sepLen); + offset += sepLen; + } + } + if (loadUnsafe(buffer, lastIndex)) { + copyUnsafeString(result, offset, changetype("[object Object]"), 0, valueLen); + offset += valueLen; + } + let out = result; + if (estLen > offset) { + out = result.substring(0, offset); + freeUnsafeString(result); + } + return out; + } else { + assert(false); // Unsupported generic typename + } + } + + @inline + toString(): string { + return this.join(); + } + private __gc(): void { var buffer = this.buffer_; __gc_mark(changetype(buffer)); // tslint:disable-line diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 9865ea94..f87b15e1 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -454,8 +454,10 @@ declare class Array { unshift(element: T): i32; slice(from: i32, to?: i32): T[]; splice(start: i32, deleteCount?: i32): void; - reverse(): T[]; sort(comparator?: (a: T, b: T) => i32): this; + join(separator?: string): string; + reverse(): T[]; + toString(): string; } /** Class representing a sequence of characters. */ diff --git a/std/assembly/internal/itoa.ts b/std/assembly/internal/itoa.ts deleted file mode 100644 index 611ae543..00000000 --- a/std/assembly/internal/itoa.ts +++ /dev/null @@ -1,256 +0,0 @@ - -import { - CharCode, - allocateUnsafe as allocateUnsafeString, - HEADER_SIZE as STRING_HEADER_SIZE -} from "./string"; - -import { - loadUnsafe -} from "./arraybuffer"; - -@inline -function POWERS10(): u32[] { - const table: u32[] = [ - 1, - 10, - 100, - 1000, - 10000, - 100000, - 1000000, - 10000000, - 100000000, - 1000000000 - ]; - return table; // inlines to a constant memory offset -} - -/* - Lookup table for pairwise char codes in range [0-99] - - "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", - "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", - "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", - "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", - "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", - "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", - "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", - "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", - "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", - "90", "91", "92", "93", "94", "95", "96", "97", "98", "99" -*/ -@inline -function DIGITS(): u32[] { - const table: u32[] = [ - 0x00300030, 0x00310030, 0x00320030, 0x00330030, 0x00340030, - 0x00350030, 0x00360030, 0x00370030, 0x00380030, 0x00390030, - 0x00300031, 0x00310031, 0x00320031, 0x00330031, 0x00340031, - 0x00350031, 0x00360031, 0x00370031, 0x00380031, 0x00390031, - 0x00300032, 0x00310032, 0x00320032, 0x00330032, 0x00340032, - 0x00350032, 0x00360032, 0x00370032, 0x00380032, 0x00390032, - 0x00300033, 0x00310033, 0x00320033, 0x00330033, 0x00340033, - 0x00350033, 0x00360033, 0x00370033, 0x00380033, 0x00390033, - 0x00300034, 0x00310034, 0x00320034, 0x00330034, 0x00340034, - 0x00350034, 0x00360034, 0x00370034, 0x00380034, 0x00390034, - 0x00300035, 0x00310035, 0x00320035, 0x00330035, 0x00340035, - 0x00350035, 0x00360035, 0x00370035, 0x00380035, 0x00390035, - 0x00300036, 0x00310036, 0x00320036, 0x00330036, 0x00340036, - 0x00350036, 0x00360036, 0x00370036, 0x00380036, 0x00390036, - 0x00300037, 0x00310037, 0x00320037, 0x00330037, 0x00340037, - 0x00350037, 0x00360037, 0x00370037, 0x00380037, 0x00390037, - 0x00300038, 0x00310038, 0x00320038, 0x00330038, 0x00340038, - 0x00350038, 0x00360038, 0x00370038, 0x00380038, 0x00390038, - 0x00300039, 0x00310039, 0x00320039, 0x00330039, 0x00340039, - 0x00350039, 0x00360039, 0x00370039, 0x00380039, 0x00390039 - ]; - return table; // inlines to a constant memory offset -} - -// Count number of decimals for u32 values -// In our case input value always non-zero so we can simplify some parts -function decimalCountU32(value: u32): i32 { - var l: usize = 32 - clz(value); // log2 - var t = l * 1233 >>> 12; // log10 - - var lutbuf = POWERS10().buffer_; - var power = loadUnsafe(lutbuf, t); - t -= (value < power); - return t + 1; -} - -// Count number of decimals for u64 values -// In our case input value always greater than 2^32-1 so we can skip some parts -function decimalCountU64(value: u64): i32 { - var l: usize = 64 - clz(value); // log2 - var t = l * 1233 >>> 12; // log10 - - var lutbuf = POWERS10().buffer_; - var power = loadUnsafe(lutbuf, t - 10); - t -= (value < 10000000000 * power); - return t + 1; -} - -function utoa32_lut(buffer: usize, num: u32, offset: usize): void { - var lutbuf = DIGITS().buffer_; - - while (num >= 10000) { - // in most VMs i32/u32 div and modulo by constant can be shared and simplificate - let t = num / 10000; - let r = num % 10000; - num = t; - - let d1 = r / 100; - let d2 = r % 100; - - let digits1 = loadUnsafe(lutbuf, d1); - let digits2 = loadUnsafe(lutbuf, d2); - - offset -= 4; - store(buffer + (offset << 1), digits1 | (digits2 << 32), STRING_HEADER_SIZE); - } - - if (num >= 100) { - let t = num / 100; - let d1 = num % 100; - num = t; - offset -= 2; - let digits = loadUnsafe(lutbuf, d1); - store(buffer + (offset << 1), digits, STRING_HEADER_SIZE); - } - - if (num >= 10) { - offset -= 2; - let digits = loadUnsafe(lutbuf, num); - store(buffer + (offset << 1), digits, STRING_HEADER_SIZE); - } else { - offset -= 1; - let digit = CharCode._0 + num; - store(buffer + (offset << 1), digit, STRING_HEADER_SIZE); - } -} - -function utoa64_lut(buffer: usize, num: u64, offset: usize): void { - var lutbuf = DIGITS().buffer_; - - while (num >= 100000000) { - let t = num / 100000000; - let r = (num - t * 100000000); - num = t; - - let b = r / 10000; - let c = r % 10000; - - let b1 = b / 100; - let b2 = b % 100; - let c1 = c / 100; - let c2 = c % 100; - - let digits1 = loadUnsafe(lutbuf, c1); - let digits2 = loadUnsafe(lutbuf, c2); - - offset -= 4; - store(buffer + (offset << 1), digits1 | (digits2 << 32), STRING_HEADER_SIZE); - - digits1 = loadUnsafe(lutbuf, b1); - digits2 = loadUnsafe(lutbuf, b2); - - offset -= 4; - store(buffer + (offset << 1), digits1 | (digits2 << 32), STRING_HEADER_SIZE); - } - - utoa32_lut(buffer, num, offset); -} - -function utoa_simple(buffer: usize, num: T, offset: usize): void { - do { - let t = num / 10; - let r = (num % 10); - num = t; - offset -= 1; - store(buffer + (offset << 1), CharCode._0 + r, STRING_HEADER_SIZE); - } while (num); -} - -@inline -export function utoa32_core(buffer: usize, num: u32, offset: u32): void { - if (ASC_SHRINK_LEVEL >= 1) { - utoa_simple(buffer, num, offset); - } else { - utoa32_lut(buffer, num, offset); - } -} - -@inline -export function utoa64_core(buffer: usize, num: u64, offset: u32): void { - if (ASC_SHRINK_LEVEL >= 1) { - utoa_simple(buffer, num, offset); - } else { - utoa64_lut(buffer, num, offset); - } -} - -export function utoa32(value: u32): string { - if (!value) return "0"; - - var decimals = decimalCountU32(value); - var buffer = allocateUnsafeString(decimals); - - utoa32_core(changetype(buffer), value, decimals); - return changetype(buffer); -} - -export function itoa32(value: i32): string { - if (!value) return "0"; - - var isneg = value < 0; - if (isneg) value = -value; - - var decimals = decimalCountU32(value) + isneg; - var buffer = allocateUnsafeString(decimals); - - utoa32_core(changetype(buffer), value, decimals); - if (isneg) store(changetype(buffer), CharCode.MINUS, STRING_HEADER_SIZE); - - return changetype(buffer); -} - -export function utoa64(value: u64): string { - if (!value) return "0"; - - var buffer: String; - if (value <= u32.MAX_VALUE) { - let value32 = value; - let decimals = decimalCountU32(value32); - buffer = allocateUnsafeString(decimals); - utoa32_core(changetype(buffer), value32, decimals); - } else { - let decimals = decimalCountU64(value); - buffer = allocateUnsafeString(decimals); - utoa64_core(changetype(buffer), value, decimals); - } - - return changetype(buffer); -} - -export function itoa64(value: i64): string { - if (!value) return "0"; - - var isneg = value < 0; - if (isneg) value = -value; - - var buffer: String; - if (value <= u32.MAX_VALUE) { - let value32 = value; - let decimals = decimalCountU32(value32) + isneg; - buffer = allocateUnsafeString(decimals); - utoa32_core(changetype(buffer), value32, decimals); - } else { - let decimals = decimalCountU64(value) + isneg; - buffer = allocateUnsafeString(decimals); - utoa64_core(changetype(buffer), value, decimals); - } - if (isneg) store(changetype(buffer), CharCode.MINUS, STRING_HEADER_SIZE); - - return changetype(buffer); -} diff --git a/std/assembly/internal/number.ts b/std/assembly/internal/number.ts new file mode 100644 index 00000000..5f021c08 --- /dev/null +++ b/std/assembly/internal/number.ts @@ -0,0 +1,697 @@ + +import { + CharCode, + allocateUnsafe as allocateUnsafeString, + freeUnsafe as freeUnsafeString, + HEADER_SIZE as STRING_HEADER_SIZE +} from "./string"; + +import { + loadUnsafe +} from "./arraybuffer"; + +export const MAX_DOUBLE_LENGTH = 28; + +@inline +export function POWERS10(): u32[] { + const table: u32[] = [ + 1, + 10, + 100, + 1000, + 10000, + 100000, + 1000000, + 10000000, + 100000000, + 1000000000 + ]; + return table; // inlines to a constant memory offset +} + +/* + Lookup table for pairwise char codes in range [0-99] + + "00", "01", "02", "03", "04", "05", "06", "07", "08", "09", + "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", + "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", + "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", + "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", + "50", "51", "52", "53", "54", "55", "56", "57", "58", "59", + "60", "61", "62", "63", "64", "65", "66", "67", "68", "69", + "70", "71", "72", "73", "74", "75", "76", "77", "78", "79", + "80", "81", "82", "83", "84", "85", "86", "87", "88", "89", + "90", "91", "92", "93", "94", "95", "96", "97", "98", "99" +*/ +@inline +export function DIGITS(): u32[] { + const table: u32[] = [ + 0x00300030, 0x00310030, 0x00320030, 0x00330030, 0x00340030, + 0x00350030, 0x00360030, 0x00370030, 0x00380030, 0x00390030, + 0x00300031, 0x00310031, 0x00320031, 0x00330031, 0x00340031, + 0x00350031, 0x00360031, 0x00370031, 0x00380031, 0x00390031, + 0x00300032, 0x00310032, 0x00320032, 0x00330032, 0x00340032, + 0x00350032, 0x00360032, 0x00370032, 0x00380032, 0x00390032, + 0x00300033, 0x00310033, 0x00320033, 0x00330033, 0x00340033, + 0x00350033, 0x00360033, 0x00370033, 0x00380033, 0x00390033, + 0x00300034, 0x00310034, 0x00320034, 0x00330034, 0x00340034, + 0x00350034, 0x00360034, 0x00370034, 0x00380034, 0x00390034, + 0x00300035, 0x00310035, 0x00320035, 0x00330035, 0x00340035, + 0x00350035, 0x00360035, 0x00370035, 0x00380035, 0x00390035, + 0x00300036, 0x00310036, 0x00320036, 0x00330036, 0x00340036, + 0x00350036, 0x00360036, 0x00370036, 0x00380036, 0x00390036, + 0x00300037, 0x00310037, 0x00320037, 0x00330037, 0x00340037, + 0x00350037, 0x00360037, 0x00370037, 0x00380037, 0x00390037, + 0x00300038, 0x00310038, 0x00320038, 0x00330038, 0x00340038, + 0x00350038, 0x00360038, 0x00370038, 0x00380038, 0x00390038, + 0x00300039, 0x00310039, 0x00320039, 0x00330039, 0x00340039, + 0x00350039, 0x00360039, 0x00370039, 0x00380039, 0x00390039 + ]; + return table; // inlines to a constant memory offset +} + +@inline +function EXP_POWERS(): i16[] { + const table: i16[] = [ + -1220, -1193, -1166, -1140, -1113, -1087, -1060, -1034, -1007, -980, + -954, -927, -901, -874, -847, -821, -794, -768, -741, -715, + -688, -661, -635, -608, -582, -555, -529, -502, -475, -449, + -422, -396, -369, -343, -316, -289, -263, -236, -210, -183, + -157, -130, -103, -77, -50, -24, 3, 30, 56, 83, + 109, 136, 162, 189, 216, 242, 269, 295, 322, 348, + 375, 402, 428, 455, 481, 508, 534, 561, 588, 614, + 641, 667, 694, 720, 747, 774, 800, 827, 853, 880, + 907, 933, 960, 986, 1013, 1039, 1066 + ]; + return table; +} + +// 1e-348, 1e-340, ..., 1e340 +@inline +function FRC_POWERS(): u64[] { + const table: u64[] = [ + 0xFA8FD5A0081C0288, 0xBAAEE17FA23EBF76, 0x8B16FB203055AC76, 0xCF42894A5DCE35EA, + 0x9A6BB0AA55653B2D, 0xE61ACF033D1A45DF, 0xAB70FE17C79AC6CA, 0xFF77B1FCBEBCDC4F, + 0xBE5691EF416BD60C, 0x8DD01FAD907FFC3C, 0xD3515C2831559A83, 0x9D71AC8FADA6C9B5, + 0xEA9C227723EE8BCB, 0xAECC49914078536D, 0x823C12795DB6CE57, 0xC21094364DFB5637, + 0x9096EA6F3848984F, 0xD77485CB25823AC7, 0xA086CFCD97BF97F4, 0xEF340A98172AACE5, + 0xB23867FB2A35B28E, 0x84C8D4DFD2C63F3B, 0xC5DD44271AD3CDBA, 0x936B9FCEBB25C996, + 0xDBAC6C247D62A584, 0xA3AB66580D5FDAF6, 0xF3E2F893DEC3F126, 0xB5B5ADA8AAFF80B8, + 0x87625F056C7C4A8B, 0xC9BCFF6034C13053, 0x964E858C91BA2655, 0xDFF9772470297EBD, + 0xA6DFBD9FB8E5B88F, 0xF8A95FCF88747D94, 0xB94470938FA89BCF, 0x8A08F0F8BF0F156B, + 0xCDB02555653131B6, 0x993FE2C6D07B7FAC, 0xE45C10C42A2B3B06, 0xAA242499697392D3, + 0xFD87B5F28300CA0E, 0xBCE5086492111AEB, 0x8CBCCC096F5088CC, 0xD1B71758E219652C, + 0x9C40000000000000, 0xE8D4A51000000000, 0xAD78EBC5AC620000, 0x813F3978F8940984, + 0xC097CE7BC90715B3, 0x8F7E32CE7BEA5C70, 0xD5D238A4ABE98068, 0x9F4F2726179A2245, + 0xED63A231D4C4FB27, 0xB0DE65388CC8ADA8, 0x83C7088E1AAB65DB, 0xC45D1DF942711D9A, + 0x924D692CA61BE758, 0xDA01EE641A708DEA, 0xA26DA3999AEF774A, 0xF209787BB47D6B85, + 0xB454E4A179DD1877, 0x865B86925B9BC5C2, 0xC83553C5C8965D3D, 0x952AB45CFA97A0B3, + 0xDE469FBD99A05FE3, 0xA59BC234DB398C25, 0xF6C69A72A3989F5C, 0xB7DCBF5354E9BECE, + 0x88FCF317F22241E2, 0xCC20CE9BD35C78A5, 0x98165AF37B2153DF, 0xE2A0B5DC971F303A, + 0xA8D9D1535CE3B396, 0xFB9B7CD9A4A7443C, 0xBB764C4CA7A44410, 0x8BAB8EEFB6409C1A, + 0xD01FEF10A657842C, 0x9B10A4E5E9913129, 0xE7109BFBA19C0C9D, 0xAC2820D9623BF429, + 0x80444B5E7AA7CF85, 0xBF21E44003ACDD2D, 0x8E679C2F5E44FF8F, 0xD433179D9C8CB841, + 0x9E19DB92B4E31BA9, 0xEB96BF6EBADF77D9, 0xAF87023B9BF0EE6B + ]; + return table; +} + +// Count number of decimals for u32 values +// In our case input value always non-zero so we can simplify some parts +export function decimalCount32(value: u32): u32 { + if (ASC_SHRINK_LEVEL >= 1) { + let l: u32 = 32 - clz(value); // log2 + let t = l * 1233 >>> 12; // log10 + + let lutbuf = POWERS10().buffer_; + let power = loadUnsafe(lutbuf, t); + t -= (value < power); + return t + 1; + } else { + if (value < 100000) { + if (value < 100) { + return select(1, 2, value < 10); + } else { + let m = select(4, 5, value < 10000); + return select(3, m, value < 1000); + } + } else { + if (value < 10000000) { + return select(6, 7, value < 1000000); + } else { + let m = select(9, 10, value < 1000000000); + return select(8, m, value < 100000000); + } + } + } +} + +// Count number of decimals for u64 values +// In our case input value always greater than 2^32-1 so we can skip some parts +export function decimalCount64(value: u64): u32 { + if (ASC_SHRINK_LEVEL >= 1) { + let l: u32 = 64 - clz(value); // log2 + let t = l * 1233 >>> 12; // log10 + + let lutbuf = POWERS10().buffer_; + let power = loadUnsafe(lutbuf, t - 10); + t -= (value < 10000000000 * power); + return t + 1; + } else { + if (value < 1000000000000000) { + if (value < 1000000000000) { + return select(11, 12, value < 100000000000); + } else { + let m = select(14, 15, value < 100000000000000); + return select(13, m, value < 10000000000000); + } + } else { + if (value < 100000000000000000) { + return select(16, 17, value < 10000000000000000); + } else { + let m = select(19, 20, value < 10000000000000000000); + return select(18, m, value < 1000000000000000000); + } + } + } +} + +function utoa32_lut(buffer: usize, num: u32, offset: usize): void { + var lutbuf = DIGITS().buffer_; + + while (num >= 10000) { + // in most VMs i32/u32 div and modulo by constant can be shared and simplificate + let t = num / 10000; + let r = num % 10000; + num = t; + + let d1 = r / 100; + let d2 = r % 100; + + let digits1 = loadUnsafe(lutbuf, d1); + let digits2 = loadUnsafe(lutbuf, d2); + + offset -= 4; + store(buffer + (offset << 1), digits1 | (digits2 << 32), STRING_HEADER_SIZE); + } + + if (num >= 100) { + let t = num / 100; + let d1 = num % 100; + num = t; + offset -= 2; + let digits = loadUnsafe(lutbuf, d1); + store(buffer + (offset << 1), digits, STRING_HEADER_SIZE); + } + + if (num >= 10) { + offset -= 2; + let digits = loadUnsafe(lutbuf, num); + store(buffer + (offset << 1), digits, STRING_HEADER_SIZE); + } else { + offset -= 1; + let digit = CharCode._0 + num; + store(buffer + (offset << 1), digit, STRING_HEADER_SIZE); + } +} + +function utoa64_lut(buffer: usize, num: u64, offset: usize): void { + var lutbuf = DIGITS().buffer_; + + while (num >= 100000000) { + let t = num / 100000000; + let r = (num - t * 100000000); + num = t; + + let b = r / 10000; + let c = r % 10000; + + let b1 = b / 100; + let b2 = b % 100; + let c1 = c / 100; + let c2 = c % 100; + + let digits1 = loadUnsafe(lutbuf, c1); + let digits2 = loadUnsafe(lutbuf, c2); + + offset -= 4; + store(buffer + (offset << 1), digits1 | (digits2 << 32), STRING_HEADER_SIZE); + + digits1 = loadUnsafe(lutbuf, b1); + digits2 = loadUnsafe(lutbuf, b2); + + offset -= 4; + store(buffer + (offset << 1), digits1 | (digits2 << 32), STRING_HEADER_SIZE); + } + + utoa32_lut(buffer, num, offset); +} + +function utoa_simple(buffer: usize, num: T, offset: usize): void { + do { + let t = num / 10; + let r = (num % 10); + num = t; + offset -= 1; + store(buffer + (offset << 1), CharCode._0 + r, STRING_HEADER_SIZE); + } while (num); +} + +@inline +export function utoa32_core(buffer: usize, num: u32, offset: u32): void { + if (ASC_SHRINK_LEVEL >= 1) { + utoa_simple(buffer, num, offset); + } else { + utoa32_lut(buffer, num, offset); + } +} + +@inline +export function utoa64_core(buffer: usize, num: u64, offset: u32): void { + if (ASC_SHRINK_LEVEL >= 1) { + utoa_simple(buffer, num, offset); + } else { + utoa64_lut(buffer, num, offset); + } +} + +export function utoa32(value: u32): String { + if (!value) return "0"; + + var decimals = decimalCount32(value); + var buffer = allocateUnsafeString(decimals); + + utoa32_core(changetype(buffer), value, decimals); + return buffer; +} + +export function itoa32(value: i32): String { + if (!value) return "0"; + + var sign = value < 0; + if (sign) value = -value; + + var decimals = decimalCount32(value) + sign; + var buffer = allocateUnsafeString(decimals); + + utoa32_core(changetype(buffer), value, decimals); + if (sign) store(changetype(buffer), CharCode.MINUS, STRING_HEADER_SIZE); + + return buffer; +} + +export function utoa64(value: u64): String { + if (!value) return "0"; + + var buffer: String; + if (value <= u32.MAX_VALUE) { + let val32 = value; + let decimals = decimalCount32(val32); + buffer = allocateUnsafeString(decimals); + utoa32_core(changetype(buffer), val32, decimals); + } else { + let decimals = decimalCount64(value); + buffer = allocateUnsafeString(decimals); + utoa64_core(changetype(buffer), value, decimals); + } + return buffer; +} + +export function itoa64(value: i64): String { + if (!value) return "0"; + + var sign = value < 0; + if (sign) value = -value; + + var buffer: String; + if (value <= u32.MAX_VALUE) { + let val32 = value; + let decimals = decimalCount32(val32) + sign; + buffer = allocateUnsafeString(decimals); + utoa32_core(changetype(buffer), val32, decimals); + } else { + let decimals = decimalCount64(value) + sign; + buffer = allocateUnsafeString(decimals); + utoa64_core(changetype(buffer), value, decimals); + } + if (sign) store(changetype(buffer), CharCode.MINUS, STRING_HEADER_SIZE); + + return buffer; +} + +export function itoa(value: T): String { + if (!isInteger()) { + assert(false); // unexpecteble non-integer generic type + } else { + if (isSigned()) { + if (sizeof() <= 4) { + return itoa32(value); + } else { + return itoa64(value); + } + } else { + if (sizeof() <= 4) { + return utoa32(value); + } else { + return utoa64(value); + } + } + } +} + +var _K: i32 = 0; + +var _frc: u64 = 0; +var _exp: i32 = 0; + +var _frc_minus: u64 = 0; +var _frc_plus: u64 = 0; + +var _frc_pow: u64 = 0; +var _exp_pow: i32 = 0; + +@inline +function umul64f(u: u64, v: u64): u64 { + var u0 = u & 0xFFFFFFFF; + var v0 = v & 0xFFFFFFFF; + + var u1 = u >> 32; + var v1 = v >> 32; + + var l = u0 * v0; + var t = u1 * v0 + (l >> 32); + var w = u0 * v1 + (t & 0xFFFFFFFF); + + w += 0x7FFFFFFF; // rounding + + t >>= 32; + w >>= 32; + + return u1 * v1 + t + w; +} + +@inline +function umul64e(e1: i32, e2: i32): i32 { + return e1 + e2 + 64; // where 64 is significand size +} + +@inline +function normalizedBoundaries(f: u64, e: i32): void { + var frc = (f << 1) + 1; + var exp = e - 1; + var off = clz(frc); + frc <<= off; + exp -= off; + + var m = 1 + (f == 0x0010000000000000); + + _frc_plus = frc; + _frc_minus = ((f << m) - 1) << e - m - exp; + _exp = exp; +} + +@inline +function grisuRound(buffer: usize, len: i32, delta: u64, rest: u64, ten_kappa: u64, wp_w: u64): void { + var lastp = buffer + ((len - 1) << 1); + var digit = load(lastp, STRING_HEADER_SIZE); + while ( + rest < wp_w && + delta - rest >= ten_kappa && ( + rest + ten_kappa < wp_w || + wp_w - rest > rest + ten_kappa - wp_w + ) + ) { + --digit; + rest += ten_kappa; + } + store(lastp, digit, STRING_HEADER_SIZE); +} + +@inline +function getCachedPower(minExp: i32): void { + const c = reinterpret(0x3FD34413509F79FE); // 1 / lg(10) = 0.30102999566398114 + var dk = (-61 - minExp) * c + 347; // dk must be positive, so can do ceiling in positive + var k = dk; + k += (k != dk); // conversion with ceil + + var index = (k >> 3) + 1; + _K = 348 - (index << 3); // decimal exponent no need lookup table + var frcPowers = FRC_POWERS().buffer_; + var expPowers = EXP_POWERS().buffer_; + _frc_pow = loadUnsafe(frcPowers, index); + _exp_pow = loadUnsafe(expPowers, index); +} + +@inline +function grisu2(value: f64, buffer: usize, sign: i32): i32 { + + // frexp routine + var uv = reinterpret(value); + var exp = ((uv & 0x7FF0000000000000) >>> 52); + var sid = uv & 0x000FFFFFFFFFFFFF; + var frc = ((exp != 0) << 52) + sid; + exp = select(exp, 1, exp != 0) - (0x3FF + 52); + + normalizedBoundaries(frc, exp); + getCachedPower(_exp); + + // normalize + var off = clz(frc); + frc <<= off; + exp -= off; + + var frc_pow = _frc_pow; + var exp_pow = _exp_pow; + + var w_frc = umul64f(frc, frc_pow); + var w_exp = umul64e(exp, exp_pow); + + var wp_frc = umul64f(_frc_plus, frc_pow) - 1; + var wp_exp = umul64e(_exp, exp_pow); + + var wm_frc = umul64f(_frc_minus, frc_pow) + 1; + var delta = wp_frc - wm_frc; + + return genDigits(buffer, w_frc, w_exp, wp_frc, wp_exp, delta, sign); +} + +function genDigits(buffer: usize, w_frc: u64, w_exp: i32, mp_frc: u64, mp_exp: i32, delta: u64, sign: i32): i32 { + var one_exp = -mp_exp; + var one_frc = (1) << one_exp; + var mask = one_frc - 1; + + var wp_w_frc = mp_frc - w_frc; + var wp_w_exp = mp_exp; + + var p1 = (mp_frc >> one_exp); + var p2 = mp_frc & mask; + + var kappa = decimalCount32(p1); + var len = sign; + + var powers10 = POWERS10().buffer_; + + while (kappa > 0) { + let d: u32; + switch (kappa) { + case 10: { d = p1 / 1000000000; p1 %= 1000000000; break; } + case 9: { d = p1 / 100000000; p1 %= 100000000; break; } + case 8: { d = p1 / 10000000; p1 %= 10000000; break; } + case 7: { d = p1 / 1000000; p1 %= 1000000; break; } + case 6: { d = p1 / 100000; p1 %= 100000; break; } + case 5: { d = p1 / 10000; p1 %= 10000; break; } + case 4: { d = p1 / 1000; p1 %= 1000; break; } + case 3: { d = p1 / 100; p1 %= 100; break; } + case 2: { d = p1 / 10; p1 %= 10; break; } + case 1: { d = p1; p1 = 0; break; } + default: { d = 0; break; } + } + + if (d | len) store(buffer + (len++ << 1), CharCode._0 + d, STRING_HEADER_SIZE); + + --kappa; + let tmp = ((p1) << one_exp) + p2; + if (tmp <= delta) { + _K += kappa; + grisuRound(buffer, len, delta, tmp, loadUnsafe(powers10, kappa) << one_exp, wp_w_frc); + return len; + } + } + + while (1) { + p2 *= 10; + delta *= 10; + + let d = p2 >> one_exp; + if (d | len) store(buffer + (len++ << 1), CharCode._0 + d, STRING_HEADER_SIZE); + + p2 &= mask; + --kappa; + if (p2 < delta) { + _K += kappa; + wp_w_frc *= loadUnsafe(powers10, -kappa); + grisuRound(buffer, len, delta, p2, one_frc, wp_w_frc); + return len; + } + } + + return len; +} + +@inline +function genExponent(buffer: usize, k: i32): i32 { + var sign = k < 0; + if (sign) k = -k; + var decimals = decimalCount32(k) + 1; + utoa32_core(buffer, k, decimals); + store(buffer, select(CharCode.MINUS, CharCode.PLUS, sign), STRING_HEADER_SIZE); + return decimals; +} + +function prettify(buffer: usize, length: i32, k: i32): i32 { + if (!k) { + store(buffer + (length << 1), CharCode.DOT | (CharCode._0 << 16), STRING_HEADER_SIZE); + return length + 2; + } + + var kk = length + k; + if (length <= kk && kk <= 21) { + // 1234e7 -> 12340000000 + for (let i = length; i < kk; ++i) { + store(buffer + (i << 1), CharCode._0, STRING_HEADER_SIZE); + } + store(buffer + (kk << 1), CharCode.DOT | (CharCode._0 << 16), STRING_HEADER_SIZE); + return kk + 2; + } else if (kk > 0 && kk <= 21) { + // 1234e-2 -> 12.34 + let ptr = buffer + (kk << 1); + memory.copy( + ptr + STRING_HEADER_SIZE + 2, + ptr + STRING_HEADER_SIZE, + -k << 1 + ); + store(buffer + (kk << 1), CharCode.DOT, STRING_HEADER_SIZE); + return length + 1; + } else if (-6 < kk && kk <= 0) { + // 1234e-6 -> 0.001234 + let offset = 2 - kk; + memory.copy( + buffer + STRING_HEADER_SIZE + (offset << 1), + buffer + STRING_HEADER_SIZE, + length << 1 + ); + store(buffer, CharCode._0 | (CharCode.DOT << 16), STRING_HEADER_SIZE); + for (let i = 2; i < offset; ++i) { + store(buffer + (i << 1), CharCode._0, STRING_HEADER_SIZE); + } + return length + offset; + } else if (length == 1) { + // 1e30 + store(buffer, CharCode.e, STRING_HEADER_SIZE + 2); + length = genExponent(buffer + 4, kk - 1); + return length + 2; + } else { + let len = length << 1; + memory.copy( + buffer + STRING_HEADER_SIZE + 4, + buffer + STRING_HEADER_SIZE + 2, + len - 2 + ); + store(buffer, CharCode.DOT, STRING_HEADER_SIZE + 2); + store(buffer + len, CharCode.e, STRING_HEADER_SIZE + 2); + length += genExponent(buffer + len + 4, kk - 1); + return length + 2; + } +} + +export function dtoa_core(buffer: usize, value: f64): i32 { + var sign = (value < 0); + if (sign) { + value = -value; + store(buffer, CharCode.MINUS, STRING_HEADER_SIZE); + } + // assert(value > 0 && value <= 1.7976931348623157e308); + var len = grisu2(value, buffer, sign); + len = prettify(buffer + (sign << 1), len - sign, _K); + return len + sign; +} + +export function dtoa(value: f64): String { + if (value == 0) return "0.0"; + if (!isFinite(value)) { + if (isNaN(value)) return "NaN"; + return select("-Infinity", "Infinity", value < 0); + } + var buffer = allocateUnsafeString(MAX_DOUBLE_LENGTH); + var length = dtoa_core(changetype(buffer), value); + var result = buffer.substring(0, length); + freeUnsafeString(buffer); + return result; +} + +export function itoa_stream(buffer: usize, offset: usize, value: T): u32 { + buffer += (offset << 1); + if (!value) { + store(buffer, CharCode._0, STRING_HEADER_SIZE); + return 1; + } + var decimals: u32 = 0; + if (isSigned()) { + let sign = value < 0; + if (sign) value = -value; + if (sizeof() <= 4) { + decimals = decimalCount32(value) + sign; + utoa32_core(buffer, value, decimals); + } else { + if (value <= u32.MAX_VALUE) { + let val32 = value; + decimals = decimalCount32(val32) + sign; + utoa32_core(buffer, val32, decimals); + } else { + decimals = decimalCount64(value) + sign; + utoa64_core(buffer, value, decimals); + } + } + if (sign) store(buffer, CharCode.MINUS, STRING_HEADER_SIZE); + } else { + if (sizeof() <= 4) { + decimals = decimalCount32(value); + utoa32_core(buffer, value, decimals); + } else { + if (value <= u32.MAX_VALUE) { + let val32 = value; + decimals = decimalCount32(val32); + utoa32_core(buffer, val32, decimals); + } else { + decimals = decimalCount64(value); + utoa64_core(buffer, value, decimals); + } + } + } + return decimals; +} + +export function dtoa_stream(buffer: usize, offset: usize, value: f64): u32 { + buffer += (offset << 1); + if (value == 0.0) { + store(buffer, CharCode._0, STRING_HEADER_SIZE + 0); + store(buffer, CharCode.DOT, STRING_HEADER_SIZE + 2); + store(buffer, CharCode._0, STRING_HEADER_SIZE + 4); + return 3; + } + if (!isFinite(value)) { + if (isNaN(value)) { + store(buffer, CharCode.N, STRING_HEADER_SIZE + 0); + store(buffer, CharCode.a, STRING_HEADER_SIZE + 2); + store(buffer, CharCode.N, STRING_HEADER_SIZE + 4); + return 3; + } else { + let sign = (value < 0); + let len = 8 + sign; + let source = changetype(select("-Infinity", "Infinity", sign)); + memory.copy(buffer + STRING_HEADER_SIZE, source, len << 1); + return len; + } + } + return dtoa_core(buffer, value); +} diff --git a/std/assembly/internal/string.ts b/std/assembly/internal/string.ts index ee1ad803..000431a3 100644 --- a/std/assembly/internal/string.ts +++ b/std/assembly/internal/string.ts @@ -22,10 +22,18 @@ export function allocateUnsafe(length: i32): String { return changetype(buffer); } +@inline +export function freeUnsafe(buffer: String): void { + if (!isManaged()) { + assert(buffer); + memory.free(changetype(buffer)); + } +} + export function copyUnsafe(dest: String, destOffset: usize, src: String, srcOffset: usize, len: usize): void { memory.copy( changetype(dest) + (destOffset << 1) + HEADER_SIZE, - changetype(src) + (srcOffset << 1) + HEADER_SIZE, + changetype(src) + (srcOffset << 1) + HEADER_SIZE, len << 1 ); } @@ -118,12 +126,14 @@ export const enum CharCode { A = 0x41, B = 0x42, E = 0x45, + N = 0x4E, O = 0x4F, X = 0x58, Z = 0x5a, a = 0x61, b = 0x62, e = 0x65, + n = 0x6E, o = 0x6F, x = 0x78, z = 0x7A @@ -131,15 +141,15 @@ export const enum CharCode { export function isWhiteSpaceOrLineTerminator(c: u16): bool { switch (c) { + case 9: // case 10: // case 13: // - case 8232: // - case 8233: // - case 9: // case 11: // case 12: // case 32: // case 160: // + case 8232: // + case 8233: // case 65279: return true; // default: return false; } diff --git a/std/portable/index.d.ts b/std/portable/index.d.ts index f2e592b0..c4213123 100644 --- a/std/portable/index.d.ts +++ b/std/portable/index.d.ts @@ -265,10 +265,10 @@ declare class Array { unshift(element: T): i32; slice(from?: i32, to?: i32): T[]; splice(start: i32, deleteCount?: i32): void; - reverse(): T[]; sort(comparator?: (a: T, b: T) => i32): this; - - join(delim: string): string; + join(separator?: string): string; + reverse(): T[]; + toString(): string; } declare class Uint8Array extends Array {} diff --git a/tests/compiler/std/array-literal.untouched.wat b/tests/compiler/std/array-literal.untouched.wat index fee97183..d69acc9b 100644 --- a/tests/compiler/std/array-literal.untouched.wat +++ b/tests/compiler/std/array-literal.untouched.wat @@ -637,7 +637,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 136) - (i32.const 23) + (i32.const 37) (i32.const 39) ) (unreachable) @@ -737,7 +737,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 136) - (i32.const 23) + (i32.const 37) (i32.const 39) ) (unreachable) diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index e408fdff..97416bb5 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -17,6 +17,13 @@ (type $FFi (func (param f64 f64) (result i32))) (type $iiF (func (param i32 i32) (result f64))) (type $Fi (func (param f64) (result i32))) + (type $iiiiiv (func (param i32 i32 i32 i32 i32))) + (type $iFi (func (param i32 f64) (result i32))) + (type $iIiIiIii (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $iiFi (func (param i32 i32 f64) (result i32))) + (type $Ii (func (param i64) (result i32))) + (type $iIiv (func (param i32 i64 i32))) + (type $iiIi (func (param i32 i32 i64) (result i32))) (type $v (func)) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) @@ -25,11 +32,16 @@ (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$v (func)) (type $FUNCSIG$i (func (result i32))) - (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (import "JSMath" "random" (func $~lib/math/JSMath.random (result f64))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) + (global $~lib/internal/number/_K (mut i32) (i32.const 0)) + (global $~lib/internal/number/_exp (mut i32) (i32.const 0)) + (global $~lib/internal/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/internal/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/internal/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/internal/number/_exp_pow (mut i32) (i32.const 0)) (global $std/array/arr (mut i32) (i32.const 0)) (global $std/array/arr8 (mut i32) (i32.const 120)) (global $~argc (mut i32) (i32.const 0)) @@ -65,6 +77,10 @@ (global $std/array/randomStringsActual (mut i32) (i32.const 1536)) (global $std/array/randomStringsExpected (mut i32) (i32.const 1608)) (global $std/array/randomStrings400 (mut i32) (i32.const 0)) + (global $std/array/refArr (mut i32) (i32.const 0)) + (global $std/array/subarr32 (mut i32) (i32.const 5816)) + (global $std/array/subarr8 (mut i32) (i32.const 5912)) + (global $std/array/subarrU32 (mut i32) (i32.const 5984)) (table 56 56 anyfunc) (elem (i32.const 0) $null $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|3 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|17 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $start~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27 $start~anonymous|28 $start~anonymous|29 $start~anonymous|29 $start~anonymous|31 $start~anonymous|32 $start~anonymous|33 $start~anonymous|29 $start~anonymous|35 $start~anonymous|29 $start~anonymous|29 $start~anonymous|31 $start~anonymous|32 $start~anonymous|33 $start~anonymous|29 $start~anonymous|35 $~lib/array/Array#sort|trampoline~anonymous|43 $~lib/array/Array#sort|trampoline~anonymous|44 $~lib/array/Array#sort|trampoline~anonymous|45 $~lib/array/Array#sort|trampoline~anonymous|46 $~lib/array/Array#sort|trampoline~anonymous|45 $~lib/array/Array#sort|trampoline~anonymous|45 $start~anonymous|49 $~lib/array/Array#sort|trampoline~anonymous|45 $start~anonymous|49 $start~anonymous|52 $start~anonymous|53 $start~anonymous|54 $start~anonymous|54) (memory $0 1) @@ -141,6 +157,113 @@ (data (i32.const 1616) "\0e\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") (data (i32.const 1648) "\17\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") (data (i32.const 1704) "\04\00\00\00n\00u\00l\00l") + (data (i32.const 1720) "\02\00\00\00\00\00\00\00\01") + (data (i32.const 1736) "\b8\06\00\00\02") + (data (i32.const 1744) "\04\00\00\00t\00r\00u\00e") + (data (i32.const 1760) "\05\00\00\00f\00a\00l\00s\00e") + (data (i32.const 1776) "\01\00\00\00,") + (data (i32.const 1784) "\02\00\00\00\00\00\00\00\01") + (data (i32.const 1800) "\f8\06\00\00\02") + (data (i32.const 1808) "\n\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") + (data (i32.const 1832) "\0c\00\00\00\00\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 1864) "(\07\00\00\03") + (data (i32.const 1872) "\01\00\00\000") + (data (i32.const 1880) "\90\01\00\00\00\00\00\000\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 2392) "X\07\00\00d") + (data (i32.const 2400) "\0c\00\00\00\00\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 2432) "`\t\00\00\03") + (data (i32.const 2440) "\05\00\00\001\00-\002\00-\003") + (data (i32.const 2456) "\0c\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 2488) "\98\t\00\00\03") + (data (i32.const 2496) "\01\00\00\00-") + (data (i32.const 2504) "\0c\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 2536) "\c8\t\00\00\03") + (data (i32.const 2544) "\08") + (data (i32.const 2555) "\80\00\00\00\80") + (data (i32.const 2560) "\f0\t\00\00\02") + (data (i32.const 2568) "\02\00\00\00_\00_") + (data (i32.const 2576) "\08") + (data (i32.const 2587) "\80\00\00\00\80") + (data (i32.const 2592) "\10\n\00\00\02") + (data (i32.const 2600) "\18\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 2656) "0") + (data (i32.const 2678) "\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 2720) "`\n\00\00\06") + (data (i32.const 2728) "\02\00\00\00,\00 ") + (data (i32.const 2736) "\03\00\00\000\00.\000") + (data (i32.const 2752) "\03\00\00\00N\00a\00N") + (data (i32.const 2768) "\t\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 2792) "\08\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 2816) "\b8\02\00\00\00\00\00\00\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#includes (; 26 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (if - (i32.eqz - (tee_local $3 - (i32.eqz - (tee_local $4 - (i32.load offset=4 - (get_local $0) - ) - ) - ) - ) - ) - (set_local $3 - (i32.ge_s - (get_local $2) - (get_local $4) - ) - ) - ) - (if - (get_local $3) - (return - (i32.const 0) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (select - (tee_local $3 - (i32.add - (get_local $4) - (get_local $2) - ) - ) - (i32.const 0) - (i32.gt_s - (get_local $3) - (i32.const 0) - ) - ) - ) - ) - (set_local $0 - (i32.load - (get_local $0) - ) - ) - (loop $continue|0 - (if - (i32.lt_s - (get_local $2) - (get_local $4) - ) - (block - (if - (i32.eq - (i32.load offset=8 - (i32.add - (get_local $0) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - (br $continue|0) - ) - ) - ) - (i32.const 0) - ) - (func $~lib/array/Array#splice (; 27 ;) (; has Stack IR ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/array/Array#splice (; 26 ;) (; has Stack IR ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) (local $2 i32) (if @@ -3527,7 +3560,7 @@ ) ) ) - (func $~lib/array/Array#__set (; 28 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 27 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (if @@ -3554,7 +3587,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) @@ -3594,12 +3627,12 @@ (get_local $2) ) ) - (func $start~anonymous|1 (; 29 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|1 (; 28 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.eqz (get_local $0) ) ) - (func $~lib/array/Array#findIndex (; 30 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 29 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3675,19 +3708,19 @@ ) (i32.const -1) ) - (func $start~anonymous|2 (; 31 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|2 (; 30 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.eq (get_local $0) (i32.const 1) ) ) - (func $start~anonymous|3 (; 32 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|3 (; 31 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.eq (get_local $0) (i32.const 100) ) ) - (func $start~anonymous|4 (; 33 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|4 (; 32 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -3699,7 +3732,7 @@ (i32.const 100) ) ) - (func $start~anonymous|6 (; 34 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|6 (; 33 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -3710,13 +3743,13 @@ (i32.const 100) ) ) - (func $start~anonymous|7 (; 35 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|7 (; 34 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.ge_s (get_local $0) (i32.const 0) ) ) - (func $~lib/array/Array#every (; 36 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 35 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3792,13 +3825,13 @@ ) (i32.const 1) ) - (func $start~anonymous|8 (; 37 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|8 (; 36 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.le_s (get_local $0) (i32.const 0) ) ) - (func $start~anonymous|9 (; 38 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|9 (; 37 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -3810,13 +3843,13 @@ (i32.const 10) ) ) - (func $start~anonymous|10 (; 39 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|10 (; 38 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.lt_s (get_local $0) (i32.const 10) ) ) - (func $start~anonymous|11 (; 40 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|11 (; 39 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -3827,13 +3860,13 @@ (i32.const 3) ) ) - (func $start~anonymous|12 (; 41 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|12 (; 40 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.ge_s (get_local $0) (i32.const 3) ) ) - (func $~lib/array/Array#some (; 42 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 41 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3909,13 +3942,13 @@ ) (i32.const 0) ) - (func $start~anonymous|13 (; 43 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|13 (; 42 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.le_s (get_local $0) (i32.const -1) ) ) - (func $start~anonymous|14 (; 44 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|14 (; 43 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -3927,13 +3960,13 @@ (i32.const 10) ) ) - (func $start~anonymous|15 (; 45 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|15 (; 44 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.gt_s (get_local $0) (i32.const 10) ) ) - (func $start~anonymous|16 (; 46 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|16 (; 45 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -3944,7 +3977,7 @@ (i32.const 3) ) ) - (func $start~anonymous|17 (; 47 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start~anonymous|17 (; 46 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (set_global $std/array/i (i32.add (get_global $std/array/i) @@ -3952,7 +3985,7 @@ ) ) ) - (func $~lib/array/Array#forEach (; 48 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 47 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4017,7 +4050,7 @@ ) ) ) - (func $start~anonymous|18 (; 49 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start~anonymous|18 (; 48 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -4031,7 +4064,7 @@ ) ) ) - (func $start~anonymous|20 (; 50 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start~anonymous|20 (; 49 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -4044,12 +4077,12 @@ ) ) ) - (func $start~anonymous|21 (; 51 ;) (; has Stack IR ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start~anonymous|21 (; 50 ;) (; has Stack IR ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) (f32.convert_s/i32 (get_local $0) ) ) - (func $~lib/array/Array#map (; 52 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#map (; 51 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4133,7 +4166,7 @@ ) (get_local $5) ) - (func $~lib/array/Array#__get (; 53 ;) (; has Stack IR ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 52 ;) (; has Stack IR ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) (if (result f32) (i32.lt_u (get_local $1) @@ -4160,7 +4193,7 @@ (unreachable) ) ) - (func $start~anonymous|22 (; 54 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|22 (; 53 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -4175,7 +4208,7 @@ ) (get_local $0) ) - (func $~lib/array/Array#map (; 55 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 54 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4260,7 +4293,7 @@ ) (get_local $6) ) - (func $start~anonymous|23 (; 56 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|23 (; 55 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (set_global $std/array/i (i32.add (get_global $std/array/i) @@ -4269,7 +4302,7 @@ ) (get_local $0) ) - (func $start~anonymous|24 (; 57 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|24 (; 56 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -4283,13 +4316,13 @@ ) (get_local $0) ) - (func $start~anonymous|25 (; 58 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|25 (; 57 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.ge_s (get_local $0) (i32.const 2) ) ) - (func $~lib/array/Array#filter (; 59 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 58 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4375,7 +4408,7 @@ ) (get_local $4) ) - (func $start~anonymous|26 (; 60 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|26 (; 59 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -4393,7 +4426,7 @@ (i32.const 2) ) ) - (func $start~anonymous|27 (; 61 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|27 (; 60 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (set_global $std/array/i (i32.add (get_global $std/array/i) @@ -4405,7 +4438,7 @@ (i32.const 2) ) ) - (func $start~anonymous|28 (; 62 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|28 (; 61 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -4422,13 +4455,13 @@ (i32.const 2) ) ) - (func $start~anonymous|29 (; 63 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|29 (; 62 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (i32.add (get_local $0) (get_local $1) ) ) - (func $~lib/array/Array#reduce (; 64 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 63 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4497,7 +4530,7 @@ ) (get_local $2) ) - (func $start~anonymous|31 (; 65 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|31 (; 64 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (if (result i32) (i32.and (get_local $0) @@ -4510,7 +4543,7 @@ ) ) ) - (func $start~anonymous|32 (; 66 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|32 (; 65 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (if (result i32) (i32.and (get_local $0) @@ -4523,7 +4556,7 @@ ) ) ) - (func $start~anonymous|33 (; 67 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|33 (; 66 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $3) @@ -4535,7 +4568,7 @@ (get_local $1) ) ) - (func $start~anonymous|35 (; 68 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|35 (; 67 ;) (; has Stack IR ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $3) @@ -4546,7 +4579,7 @@ (get_local $1) ) ) - (func $~lib/array/Array#reduceRight (; 69 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 68 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (set_local $4 @@ -4601,7 +4634,7 @@ ) (get_local $2) ) - (func $~lib/math/murmurHash3 (; 70 ;) (; has Stack IR ;) (type $II) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 69 ;) (; has Stack IR ;) (type $II) (param $0 i64) (result i64) (i64.xor (tee_local $0 (i64.mul @@ -4632,7 +4665,7 @@ ) ) ) - (func $~lib/math/NativeMath.seedRandom (; 71 ;) (; has Stack IR ;) (type $Iv) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 70 ;) (; has Stack IR ;) (type $Iv) (param $0 i64) (if (i64.eqz (get_local $0) @@ -4661,7 +4694,7 @@ ) ) ) - (func $~lib/internal/array/insertionSort (; 72 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/insertionSort (; 71 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -4773,10 +4806,10 @@ ) ) ) - (func $~lib/allocator/arena/__memory_free (; 73 ;) (; has Stack IR ;) (type $FUNCSIG$v) + (func $~lib/allocator/arena/__memory_free (; 72 ;) (; has Stack IR ;) (type $FUNCSIG$v) (nop) ) - (func $~lib/internal/array/weakHeapSort (; 74 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/weakHeapSort (; 73 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5161,7 +5194,7 @@ (get_local $6) ) ) - (func $~lib/array/Array#sort (; 75 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 74 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -5174,7 +5207,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -5266,7 +5299,7 @@ ) (get_local $0) ) - (func $~lib/array/Array#sort|trampoline~anonymous|43 (; 76 ;) (; has Stack IR ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|43 (; 75 ;) (; has Stack IR ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) (i32.sub @@ -5310,7 +5343,7 @@ ) ) ) - (func $~lib/array/Array#sort|trampoline (; 77 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 76 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (block $1of1 (block $0of1 @@ -5330,13 +5363,13 @@ (get_local $1) ) ) - (func $~lib/builtins/isNaN (; 78 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 77 ;) (; has Stack IR ;) (type $fi) (param $0 f32) (result i32) (f32.ne (get_local $0) (get_local $0) ) ) - (func $std/array/isArraysEqual (; 79 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/isArraysEqual (; 78 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (if @@ -5415,7 +5448,7 @@ ) (i32.const 1) ) - (func $~lib/internal/array/insertionSort (; 80 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/insertionSort (; 79 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -5527,7 +5560,7 @@ ) ) ) - (func $~lib/internal/array/weakHeapSort (; 81 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/weakHeapSort (; 80 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5912,7 +5945,7 @@ (get_local $6) ) ) - (func $~lib/array/Array#sort (; 82 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 81 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -5925,7 +5958,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -6017,7 +6050,7 @@ ) (get_local $0) ) - (func $~lib/array/Array#sort|trampoline~anonymous|44 (; 83 ;) (; has Stack IR ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|44 (; 82 ;) (; has Stack IR ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) (i32.sub @@ -6061,7 +6094,7 @@ ) ) ) - (func $~lib/array/Array#sort|trampoline (; 84 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 83 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (block $1of1 (block $0of1 @@ -6081,7 +6114,7 @@ (get_local $1) ) ) - (func $~lib/array/Array#__get (; 85 ;) (; has Stack IR ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 84 ;) (; has Stack IR ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) (if (result f64) (i32.lt_u (get_local $1) @@ -6108,13 +6141,13 @@ (unreachable) ) ) - (func $~lib/builtins/isNaN (; 86 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 85 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) (f64.ne (get_local $0) (get_local $0) ) ) - (func $std/array/isArraysEqual (; 87 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/isArraysEqual (; 86 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (if @@ -6193,7 +6226,7 @@ ) (i32.const 1) ) - (func $~lib/internal/array/insertionSort (; 88 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/insertionSort (; 87 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6308,7 +6341,7 @@ ) ) ) - (func $~lib/internal/array/weakHeapSort (; 89 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/array/weakHeapSort (; 88 ;) (; has Stack IR ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6693,7 +6726,7 @@ (get_local $1) ) ) - (func $~lib/array/Array#sort (; 90 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 89 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6705,7 +6738,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -6797,13 +6830,13 @@ ) (get_local $0) ) - (func $~lib/array/Array#sort|trampoline~anonymous|45 (; 91 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|45 (; 90 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $0) (get_local $1) ) ) - (func $~lib/array/Array#sort|trampoline (; 92 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 91 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (block $1of1 (block $0of1 @@ -6823,7 +6856,7 @@ (get_local $1) ) ) - (func $~lib/array/Array#sort|trampoline~anonymous|46 (; 93 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|46 (; 92 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (i32.gt_u (get_local $0) @@ -6835,7 +6868,7 @@ ) ) ) - (func $~lib/array/Array#sort|trampoline (; 94 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 93 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (block $1of1 (block $0of1 @@ -6855,7 +6888,7 @@ (get_local $1) ) ) - (func $std/array/createReverseOrderedArray (; 95 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 94 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (set_local $1 (call $~lib/array/Array#constructor @@ -6899,7 +6932,7 @@ ) (get_local $1) ) - (func $~lib/math/NativeMath.random (; 96 ;) (; has Stack IR ;) (type $F) (result f64) + (func $~lib/math/NativeMath.random (; 95 ;) (; has Stack IR ;) (type $F) (result f64) (local $0 i64) (local $1 i64) (if @@ -6968,7 +7001,7 @@ (f64.const 1) ) ) - (func $std/array/createRandomOrderedArray (; 97 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 96 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (set_local $0 (call $~lib/array/Array#constructor @@ -7010,7 +7043,7 @@ ) (get_local $0) ) - (func $std/array/isSorted (; 98 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 97 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (block $break|0 @@ -7067,7 +7100,7 @@ ) (i32.const 1) ) - (func $std/array/assertSorted (; 99 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 98 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (if (i32.eqz (call $std/array/isSorted @@ -7089,19 +7122,19 @@ ) ) ) - (func $std/array/assertSortedDefault (; 100 ;) (; has Stack IR ;) (type $iv) (param $0 i32) + (func $std/array/assertSortedDefault (; 99 ;) (; has Stack IR ;) (type $iv) (param $0 i32) (call $std/array/assertSorted (get_local $0) (i32.const 47) ) ) - (func $start~anonymous|49 (; 101 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|49 (; 100 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $1) (get_local $0) ) ) - (func $std/array/createReverseOrderedNestedArray (; 102 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 101 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (set_local $1 @@ -7153,7 +7186,7 @@ ) (get_local $1) ) - (func $start~anonymous|52 (; 103 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|52 (; 102 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (call $~lib/array/Array#__get (get_local $0) @@ -7165,7 +7198,7 @@ ) ) ) - (func $~lib/array/Array>#sort (; 104 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 103 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7177,7 +7210,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -7258,7 +7291,7 @@ ) (get_local $0) ) - (func $std/array/assertSorted> (; 105 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 104 ;) (; has Stack IR ;) (type $iiv) (param $0 i32) (param $1 i32) (if (i32.eqz (call $std/array/isSorted @@ -7280,7 +7313,7 @@ ) ) ) - (func $std/array/Proxy#constructor (; 106 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $std/array/Proxy#constructor (; 105 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (i32.store (tee_local $1 @@ -7292,7 +7325,7 @@ ) (get_local $1) ) - (func $std/array/createReverseOrderedElementsArray (; 107 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 106 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (set_local $1 @@ -7336,7 +7369,7 @@ ) (get_local $1) ) - (func $start~anonymous|53 (; 108 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|53 (; 107 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (i32.load (get_local $0) @@ -7346,7 +7379,7 @@ ) ) ) - (func $~lib/internal/string/compareUnsafe (; 109 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/string/compareUnsafe (; 108 ;) (; has Stack IR ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (set_local $3 @@ -7397,7 +7430,7 @@ ) (get_local $4) ) - (func $~lib/string/String.__gt (; 110 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 109 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (if @@ -7472,7 +7505,7 @@ (i32.const 0) ) ) - (func $~lib/string/String.__lt (; 111 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 110 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (if @@ -7547,7 +7580,7 @@ (i32.const 0) ) ) - (func $start~anonymous|54 (; 112 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|54 (; 111 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (call $~lib/string/String.__gt (get_local $0) @@ -7559,7 +7592,7 @@ ) ) ) - (func $~lib/string/String.__eq (; 113 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 112 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (if (i32.eq @@ -7613,7 +7646,7 @@ ) ) ) - (func $~lib/string/String.__ne (; 114 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 113 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.eqz (call $~lib/string/String.__eq (get_local $0) @@ -7621,7 +7654,7 @@ ) ) ) - (func $std/array/isArraysEqual (; 115 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 114 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (if @@ -7684,7 +7717,7 @@ ) (i32.const 1) ) - (func $~lib/internal/string/allocateUnsafe (; 116 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/string/allocateUnsafe (; 115 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (if (tee_local $1 @@ -7730,7 +7763,7 @@ ) (get_local $1) ) - (func $~lib/string/String#charAt (; 117 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String#charAt (; 116 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (if (i32.ge_u @@ -7761,7 +7794,7 @@ ) (get_local $1) ) - (func $~lib/internal/string/copyUnsafe (; 118 ;) (; has Stack IR ;) (type $FUNCSIG$viiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/string/copyUnsafe (; 117 ;) (; has Stack IR ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (call $~lib/internal/memory/memmove (i32.add (i32.add @@ -7774,16 +7807,22 @@ (i32.const 4) ) (i32.add - (get_local $2) + (i32.add + (get_local $2) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) (i32.const 4) ) (i32.shl - (get_local $3) + (get_local $4) (i32.const 1) ) ) ) - (func $~lib/string/String#concat (; 119 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 118 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7838,17 +7877,19 @@ ) (i32.const 0) (get_local $0) + (i32.const 0) (get_local $3) ) (call $~lib/internal/string/copyUnsafe (get_local $2) (get_local $3) (get_local $1) + (i32.const 0) (get_local $4) ) (get_local $2) ) - (func $~lib/string/String.__concat (; 120 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 119 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (if (i32.eqz (get_local $0) @@ -7862,7 +7903,7 @@ (get_local $1) ) ) - (func $std/array/createRandomString (; 121 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 120 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (set_local $1 @@ -7906,7 +7947,7 @@ ) (get_local $1) ) - (func $std/array/createRandomStringArray (; 122 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (func $std/array/createRandomStringArray (; 121 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) (local $0 i32) (local $1 i32) (set_local $1 @@ -7947,9 +7988,5393 @@ ) (get_local $1) ) - (func $start (; 123 ;) (; has Stack IR ;) (type $v) + (func $~lib/string/String#substring (; 122 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (if + (i32.eqz + (get_local $0) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1616) + (i32.const 264) + (i32.const 4) + ) + (unreachable) + ) + ) + (set_local $1 + (select + (tee_local $2 + (select + (get_local $1) + (i32.const 0) + (i32.gt_s + (get_local $1) + (i32.const 0) + ) + ) + ) + (tee_local $3 + (i32.load + (get_local $0) + ) + ) + (i32.lt_s + (get_local $2) + (get_local $3) + ) + ) + ) + (set_local $4 + (select + (tee_local $2 + (select + (i32.const 0) + (get_local $3) + (i32.lt_s + (i32.const 0) + (get_local $3) + ) + ) + ) + (get_local $1) + (i32.lt_s + (get_local $2) + (get_local $1) + ) + ) + ) + (if + (i32.eqz + (tee_local $3 + (i32.sub + (tee_local $1 + (select + (get_local $2) + (get_local $1) + (i32.gt_s + (get_local $2) + (get_local $1) + ) + ) + ) + (get_local $4) + ) + ) + ) + (return + (i32.const 1464) + ) + ) + (if + (tee_local $2 + (i32.eqz + (get_local $4) + ) + ) + (set_local $2 + (i32.eq + (get_local $1) + (i32.load + (get_local $0) + ) + ) + ) + ) + (if + (get_local $2) + (return + (get_local $0) + ) + ) + (call $~lib/internal/string/copyUnsafe + (tee_local $2 + (call $~lib/internal/string/allocateUnsafe + (get_local $3) + ) + ) + (i32.const 0) + (get_local $0) + (get_local $4) + (get_local $3) + ) + (get_local $2) + ) + (func $~lib/array/Array#join (; 123 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (if + (i32.lt_s + (tee_local $4 + (i32.sub + (i32.load + (i32.const 1804) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $5 + (i32.load + (i32.const 1800) + ) + ) + (set_local $7 + (i32.ne + (tee_local $6 + (i32.load + (i32.const 1776) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $4) + ) + (return + (select + (i32.const 1744) + (i32.const 1760) + (i32.and + (i32.load8_u offset=8 + (get_local $5) + ) + (i32.const 1) + ) + ) + ) + ) + (set_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $8 + (i32.add + (i32.mul + (i32.add + (get_local $6) + (i32.const 5) + ) + (get_local $4) + ) + (i32.const 5) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $1) + (get_local $4) + ) + ) + (set_local $3 + (i32.add + (i32.eqz + (tee_local $9 + (i32.and + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (get_local $1) + ) + ) + (i32.const 1) + ) + ) + ) + (i32.const 4) + ) + ) + (call $~lib/internal/string/copyUnsafe + (get_local $2) + (get_local $0) + (select + (i32.const 1744) + (i32.const 1760) + (get_local $9) + ) + (i32.const 0) + (get_local $3) + ) + (set_local $0 + (i32.add + (get_local $0) + (get_local $3) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $2) + (get_local $0) + (i32.const 1776) + (i32.const 0) + (get_local $6) + ) + (set_local $0 + (i32.add + (get_local $0) + (get_local $6) + ) + ) + ) + ) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $3 + (i32.add + (i32.eqz + (tee_local $1 + (i32.and + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (get_local $4) + ) + ) + (i32.const 1) + ) + ) + ) + (i32.const 4) + ) + ) + (call $~lib/internal/string/copyUnsafe + (get_local $2) + (get_local $0) + (select + (i32.const 1744) + (i32.const 1760) + (get_local $1) + ) + (i32.const 0) + (get_local $3) + ) + (set_local $1 + (get_local $2) + ) + (if + (i32.gt_s + (get_local $8) + (tee_local $0 + (i32.add + (get_local $0) + (get_local $3) + ) + ) + ) + (block + (set_local $1 + (call $~lib/string/String#substring + (get_local $2) + (get_local $0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $1) + ) + (func $~lib/internal/number/decimalCount32 (; 124 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (if (result i32) + (i32.lt_u + (get_local $0) + (i32.const 100000) + ) + (if (result i32) + (i32.lt_u + (get_local $0) + (i32.const 100) + ) + (select + (i32.const 1) + (i32.const 2) + (i32.lt_u + (get_local $0) + (i32.const 10) + ) + ) + (select + (i32.const 3) + (select + (i32.const 4) + (i32.const 5) + (i32.lt_u + (get_local $0) + (i32.const 10000) + ) + ) + (i32.lt_u + (get_local $0) + (i32.const 1000) + ) + ) + ) + (if (result i32) + (i32.lt_u + (get_local $0) + (i32.const 10000000) + ) + (select + (i32.const 6) + (i32.const 7) + (i32.lt_u + (get_local $0) + (i32.const 1000000) + ) + ) + (select + (i32.const 8) + (select + (i32.const 9) + (i32.const 10) + (i32.lt_u + (get_local $0) + (i32.const 1000000000) + ) + ) + (i32.lt_u + (get_local $0) + (i32.const 100000000) + ) + ) + ) + ) + ) + (func $~lib/internal/number/utoa32_lut (; 125 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (set_local $3 + (i32.load + (i32.const 2392) + ) + ) + (loop $continue|0 + (if + (i32.ge_u + (get_local $1) + (i32.const 10000) + ) + (block + (set_local $4 + (i32.rem_u + (get_local $1) + (i32.const 10000) + ) + ) + (set_local $1 + (i32.div_u + (get_local $1) + (i32.const 10000) + ) + ) + (i64.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (tee_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (i32.const 1) + ) + ) + (i64.or + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (i32.div_u + (get_local $4) + (i32.const 100) + ) + (i32.const 2) + ) + ) + ) + (i64.shl + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (i32.rem_u + (get_local $4) + (i32.const 100) + ) + (i32.const 2) + ) + ) + ) + (i64.const 32) + ) + ) + ) + (br $continue|0) + ) + ) + ) + (if + (i32.ge_u + (get_local $1) + (i32.const 100) + ) + (block + (set_local $4 + (i32.rem_u + (get_local $1) + (i32.const 100) + ) + ) + (set_local $1 + (i32.div_u + (get_local $1) + (i32.const 100) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (tee_local $2 + (i32.sub + (get_local $2) + (i32.const 2) + ) + ) + (i32.const 1) + ) + ) + (i32.load offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $4) + (i32.const 2) + ) + ) + ) + ) + ) + ) + (if + (i32.ge_u + (get_local $1) + (i32.const 10) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $2) + (i32.const 2) + ) + (i32.const 1) + ) + ) + (i32.load offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $1) + (i32.const 2) + ) + ) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $2) + (i32.const 1) + ) + (i32.const 1) + ) + ) + (i32.add + (get_local $1) + (i32.const 48) + ) + ) + ) + ) + (func $~lib/internal/number/itoa32 (; 126 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (if + (i32.eqz + (get_local $0) + ) + (return + (i32.const 1872) + ) + ) + (if + (tee_local $1 + (i32.lt_s + (get_local $0) + (i32.const 0) + ) + ) + (set_local $0 + (i32.sub + (i32.const 0) + (get_local $0) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (tee_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $3 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $0) + ) + (get_local $1) + ) + ) + ) + ) + (get_local $0) + (get_local $3) + ) + (if + (get_local $1) + (i32.store16 offset=4 + (get_local $2) + (i32.const 45) + ) + ) + (get_local $2) + ) + (func $~lib/internal/number/itoa (; 127 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (call $~lib/internal/number/itoa32 + (get_local $0) + ) + ) + (func $~lib/internal/number/itoa_stream (; 128 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (i32.const 48) + ) + (return + (i32.const 1) + ) + ) + ) + (if + (tee_local $1 + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + ) + (set_local $2 + (i32.sub + (i32.const 0) + (get_local $2) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $2) + (tee_local $2 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $2) + ) + (get_local $1) + ) + ) + ) + (if + (get_local $1) + (i32.store16 offset=4 + (get_local $0) + (i32.const 45) + ) + ) + (get_local $2) + ) + (func $~lib/array/Array#join (; 129 ;) (; has Stack IR ;) (type $iii) (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) + (if + (i32.lt_s + (tee_local $4 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $7 + (i32.ne + (tee_local $6 + (i32.load + (get_local $1) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $4) + ) + (return + (call $~lib/internal/number/itoa + (i32.load offset=8 + (get_local $5) + ) + ) + ) + ) + (set_local $0 + (call $~lib/internal/string/allocateUnsafe + (tee_local $8 + (i32.add + (i32.mul + (i32.add + (get_local $6) + (i32.const 11) + ) + (get_local $4) + ) + (i32.const 11) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $3) + (get_local $4) + ) + ) + (set_local $2 + (i32.add + (get_local $2) + (call $~lib/internal/number/itoa_stream + (get_local $0) + (get_local $2) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $3) + (i32.const 2) + ) + ) + ) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $0) + (get_local $2) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $2 + (i32.add + (get_local $2) + (get_local $6) + ) + ) + ) + ) + (set_local $3 + (i32.add + (get_local $3) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $3 + (get_local $0) + ) + (if + (i32.gt_s + (get_local $8) + (tee_local $2 + (i32.add + (get_local $2) + (call $~lib/internal/number/itoa_stream + (get_local $0) + (get_local $2) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $4) + (i32.const 2) + ) + ) + ) + ) + ) + ) + ) + (block + (set_local $3 + (call $~lib/string/String#substring + (get_local $0) + (get_local $2) + ) + ) + (if + (i32.eqz + (get_local $0) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $3) + ) + (func $~lib/internal/number/utoa32 (; 130 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (if + (i32.eqz + (get_local $0) + ) + (return + (i32.const 1872) + ) + ) + (call $~lib/internal/number/utoa32_lut + (tee_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $1 + (call $~lib/internal/number/decimalCount32 + (get_local $0) + ) + ) + ) + ) + (get_local $0) + (get_local $1) + ) + (get_local $2) + ) + (func $~lib/internal/number/itoa (; 131 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (call $~lib/internal/number/utoa32 + (get_local $0) + ) + ) + (func $~lib/internal/number/itoa_stream (; 132 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (i32.const 48) + ) + (return + (i32.const 1) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $2) + (tee_local $3 + (call $~lib/internal/number/decimalCount32 + (get_local $2) + ) + ) + ) + (get_local $3) + ) + (func $~lib/array/Array#join (; 133 ;) (; has Stack IR ;) (type $iii) (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) + (if + (i32.lt_s + (tee_local $4 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $7 + (i32.ne + (tee_local $6 + (i32.load + (get_local $1) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $4) + ) + (return + (call $~lib/internal/number/itoa + (i32.load offset=8 + (get_local $5) + ) + ) + ) + ) + (set_local $0 + (call $~lib/internal/string/allocateUnsafe + (tee_local $8 + (i32.add + (i32.mul + (i32.add + (get_local $6) + (i32.const 10) + ) + (get_local $4) + ) + (i32.const 10) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $3) + (get_local $4) + ) + ) + (set_local $2 + (i32.add + (get_local $2) + (call $~lib/internal/number/itoa_stream + (get_local $0) + (get_local $2) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $3) + (i32.const 2) + ) + ) + ) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $0) + (get_local $2) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $2 + (i32.add + (get_local $2) + (get_local $6) + ) + ) + ) + ) + (set_local $3 + (i32.add + (get_local $3) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $3 + (get_local $0) + ) + (if + (i32.gt_s + (get_local $8) + (tee_local $2 + (i32.add + (get_local $2) + (call $~lib/internal/number/itoa_stream + (get_local $0) + (get_local $2) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $4) + (i32.const 2) + ) + ) + ) + ) + ) + ) + ) + (block + (set_local $3 + (call $~lib/string/String#substring + (get_local $0) + (get_local $2) + ) + ) + (if + (i32.eqz + (get_local $0) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $3) + ) + (func $~lib/builtins/isFinite (; 134 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) + (f64.eq + (f64.sub + (get_local $0) + (get_local $0) + ) + (f64.const 0) + ) + ) + (func $~lib/internal/number/genDigits (; 135 ;) (; has Stack IR ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) + (local $12 i32) + (local $13 i64) + (local $14 i64) + (set_local $8 + (i64.sub + (get_local $3) + (get_local $1) + ) + ) + (set_local $1 + (i64.and + (get_local $3) + (tee_local $14 + (i64.sub + (tee_local $10 + (i64.shl + (i64.const 1) + (tee_local $13 + (i64.extend_s/i32 + (tee_local $11 + (i32.sub + (i32.const 0) + (get_local $4) + ) + ) + ) + ) + ) + ) + (i64.const 1) + ) + ) + ) + ) + (set_local $9 + (call $~lib/internal/number/decimalCount32 + (tee_local $7 + (i32.wrap/i64 + (i64.shr_u + (get_local $3) + (get_local $13) + ) + ) + ) + ) + ) + (set_local $12 + (i32.load + (i32.const 4176) + ) + ) + (loop $continue|0 + (if + (i32.gt_s + (get_local $9) + (i32.const 0) + ) + (block + (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 + (if + (i32.ne + (tee_local $2 + (get_local $9) + ) + (i32.const 10) + ) + (block + (block $tablify|0 + (br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $tablify|0 + (i32.sub + (get_local $2) + (i32.const 1) + ) + ) + ) + (br $case10|1) + ) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 1000000000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 1000000000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 100000000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 100000000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 10000000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 10000000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 1000000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 1000000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 100000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 100000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 10000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 10000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 1000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 1000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 100) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 100) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 10) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 10) + ) + ) + (br $break|1) + ) + (set_local $4 + (get_local $7) + ) + (set_local $7 + (i32.const 0) + ) + (br $break|1) + ) + (set_local $4 + (i32.const 0) + ) + ) + (if + (i32.or + (get_local $4) + (get_local $6) + ) + (block + (set_local $6 + (i32.add + (tee_local $2 + (get_local $6) + ) + (i32.const 1) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (i32.add + (i32.and + (get_local $4) + (i32.const 65535) + ) + (i32.const 48) + ) + ) + ) + ) + (set_local $9 + (i32.sub + (get_local $9) + (i32.const 1) + ) + ) + (if + (i64.le_u + (tee_local $3 + (i64.add + (i64.shl + (i64.extend_u/i32 + (get_local $7) + ) + (i64.extend_s/i32 + (get_local $11) + ) + ) + (get_local $1) + ) + ) + (get_local $5) + ) + (block + (set_global $~lib/internal/number/_K + (i32.add + (get_global $~lib/internal/number/_K) + (get_local $9) + ) + ) + (set_local $1 + (i64.shl + (i64.load32_u offset=8 + (i32.add + (get_local $12) + (i32.shl + (get_local $9) + (i32.const 2) + ) + ) + ) + (i64.extend_s/i32 + (get_local $11) + ) + ) + ) + (set_local $7 + (i32.load16_u offset=4 + (tee_local $2 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $6) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + ) + ) + (loop $continue|2 + (if + (tee_local $0 + (i64.lt_u + (get_local $3) + (get_local $8) + ) + ) + (set_local $0 + (i64.ge_u + (i64.sub + (get_local $5) + (get_local $3) + ) + (get_local $1) + ) + ) + ) + (if + (get_local $0) + (if + (i32.eqz + (tee_local $0 + (i64.lt_u + (i64.add + (get_local $3) + (get_local $1) + ) + (get_local $8) + ) + ) + ) + (set_local $0 + (i64.gt_u + (i64.sub + (get_local $8) + (get_local $3) + ) + (i64.sub + (i64.add + (get_local $3) + (get_local $1) + ) + (get_local $8) + ) + ) + ) + ) + ) + (if + (get_local $0) + (block + (set_local $7 + (i32.sub + (get_local $7) + (i32.const 1) + ) + ) + (set_local $3 + (i64.add + (get_local $3) + (get_local $1) + ) + ) + (br $continue|2) + ) + ) + ) + (i32.store16 offset=4 + (get_local $2) + (get_local $7) + ) + (return + (get_local $6) + ) + ) + ) + (br $continue|0) + ) + ) + ) + (loop $continue|3 (result i32) + (set_local $5 + (i64.mul + (get_local $5) + (i64.const 10) + ) + ) + (if + (i64.ne + (i64.or + (tee_local $3 + (i64.shr_u + (tee_local $1 + (i64.mul + (get_local $1) + (i64.const 10) + ) + ) + (i64.extend_s/i32 + (get_local $11) + ) + ) + ) + (i64.extend_s/i32 + (get_local $6) + ) + ) + (i64.const 0) + ) + (block + (set_local $6 + (i32.add + (tee_local $4 + (get_local $6) + ) + (i32.const 1) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + (i32.add + (i32.and + (i32.wrap/i64 + (get_local $3) + ) + (i32.const 65535) + ) + (i32.const 48) + ) + ) + ) + ) + (set_local $9 + (i32.sub + (get_local $9) + (i32.const 1) + ) + ) + (if (result i32) + (i64.lt_u + (tee_local $1 + (i64.and + (get_local $1) + (get_local $14) + ) + ) + (get_local $5) + ) + (block (result i32) + (set_global $~lib/internal/number/_K + (i32.add + (get_global $~lib/internal/number/_K) + (get_local $9) + ) + ) + (set_local $8 + (i64.mul + (get_local $8) + (i64.load32_u offset=8 + (i32.add + (get_local $12) + (i32.shl + (i32.sub + (i32.const 0) + (get_local $9) + ) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $7 + (i32.load16_u offset=4 + (tee_local $4 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $6) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + ) + ) + (loop $continue|4 + (if + (tee_local $2 + (i64.lt_u + (get_local $1) + (get_local $8) + ) + ) + (set_local $2 + (i64.ge_u + (i64.sub + (get_local $5) + (get_local $1) + ) + (get_local $10) + ) + ) + ) + (if + (get_local $2) + (if + (i32.eqz + (tee_local $2 + (i64.lt_u + (i64.add + (get_local $1) + (get_local $10) + ) + (get_local $8) + ) + ) + ) + (set_local $2 + (i64.gt_u + (i64.sub + (get_local $8) + (get_local $1) + ) + (i64.sub + (i64.add + (get_local $1) + (get_local $10) + ) + (get_local $8) + ) + ) + ) + ) + ) + (if + (get_local $2) + (block + (set_local $7 + (i32.sub + (get_local $7) + (i32.const 1) + ) + ) + (set_local $1 + (i64.add + (get_local $1) + (get_local $10) + ) + ) + (br $continue|4) + ) + ) + ) + (i32.store16 offset=4 + (get_local $4) + (get_local $7) + ) + (get_local $6) + ) + (br $continue|3) + ) + ) + ) + (func $~lib/internal/number/prettify (; 136 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (if + (i32.eqz + (get_local $2) + ) + (block + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (i32.const 3145774) + ) + (return + (i32.add + (get_local $1) + (i32.const 2) + ) + ) + ) + ) + (if + (tee_local $3 + (i32.le_s + (get_local $1) + (tee_local $4 + (i32.add + (get_local $1) + (get_local $2) + ) + ) + ) + ) + (set_local $3 + (i32.le_s + (get_local $4) + (i32.const 21) + ) + ) + ) + (if (result i32) + (get_local $3) + (block (result i32) + (block $break|0 + (set_local $3 + (get_local $1) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $3) + (get_local $4) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) + (i32.const 48) + ) + (set_local $3 + (i32.add + (get_local $3) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 3145774) + ) + (i32.add + (get_local $4) + (i32.const 2) + ) + ) + (block (result i32) + (if + (tee_local $3 + (i32.gt_s + (get_local $4) + (i32.const 0) + ) + ) + (set_local $3 + (i32.le_s + (get_local $4) + (i32.const 21) + ) + ) + ) + (if (result i32) + (get_local $3) + (block (result i32) + (call $~lib/internal/memory/memmove + (i32.add + (tee_local $3 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + ) + (i32.const 6) + ) + (i32.add + (get_local $3) + (i32.const 4) + ) + (i32.shl + (i32.sub + (i32.const 0) + (get_local $2) + ) + (i32.const 1) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 46) + ) + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (block (result i32) + (if + (tee_local $3 + (i32.lt_s + (i32.const -6) + (get_local $4) + ) + ) + (set_local $3 + (i32.le_s + (get_local $4) + (i32.const 0) + ) + ) + ) + (if (result i32) + (get_local $3) + (block (result i32) + (call $~lib/internal/memory/memmove + (i32.add + (i32.add + (get_local $0) + (i32.const 4) + ) + (i32.shl + (tee_local $3 + (i32.sub + (i32.const 2) + (get_local $4) + ) + ) + (i32.const 1) + ) + ) + (i32.add + (get_local $0) + (i32.const 4) + ) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (get_local $0) + (i32.const 3014704) + ) + (block $break|1 + (set_local $2 + (i32.const 2) + ) + (loop $repeat|1 + (br_if $break|1 + (i32.ge_s + (get_local $2) + (get_local $3) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (i32.const 48) + ) + (set_local $2 + (i32.add + (get_local $2) + (i32.const 1) + ) + ) + (br $repeat|1) + ) + ) + (i32.add + (get_local $1) + (get_local $3) + ) + ) + (if (result i32) + (i32.eq + (get_local $1) + (i32.const 1) + ) + (block (result i32) + (i32.store16 offset=6 + (get_local $0) + (i32.const 101) + ) + (set_local $3 + (i32.add + (get_local $0) + (i32.const 4) + ) + ) + (if + (tee_local $0 + (i32.lt_s + (tee_local $2 + (i32.sub + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 0) + ) + ) + (set_local $2 + (i32.sub + (i32.const 0) + (get_local $2) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $3) + (get_local $2) + (tee_local $2 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $2) + ) + (i32.const 1) + ) + ) + ) + (i32.store16 offset=4 + (get_local $3) + (select + (i32.const 45) + (i32.const 43) + (get_local $0) + ) + ) + (i32.add + (get_local $2) + (i32.const 2) + ) + ) + (block (result i32) + (call $~lib/internal/memory/memmove + (i32.add + (get_local $0) + (i32.const 8) + ) + (i32.add + (get_local $0) + (i32.const 6) + ) + (i32.sub + (tee_local $2 + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (i32.const 2) + ) + ) + (i32.store16 offset=6 + (get_local $0) + (i32.const 46) + ) + (i32.store16 offset=6 + (tee_local $0 + (i32.add + (get_local $0) + (get_local $2) + ) + ) + (i32.const 101) + ) + (set_local $3 + (i32.add + (get_local $0) + (i32.const 4) + ) + ) + (if + (tee_local $0 + (i32.lt_s + (tee_local $2 + (i32.sub + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 0) + ) + ) + (set_local $2 + (i32.sub + (i32.const 0) + (get_local $2) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $3) + (get_local $2) + (tee_local $2 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $2) + ) + (i32.const 1) + ) + ) + ) + (i32.store16 offset=4 + (get_local $3) + (select + (i32.const 45) + (i32.const 43) + (get_local $0) + ) + ) + (i32.add + (i32.add + (get_local $1) + (get_local $2) + ) + (i32.const 2) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (func $~lib/internal/number/dtoa_core (; 137 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i64) + (if + (tee_local $12 + (f64.lt + (get_local $1) + (f64.const 0) + ) + ) + (block + (set_local $1 + (f64.neg + (get_local $1) + ) + ) + (i32.store16 offset=4 + (get_local $0) + (i32.const 45) + ) + ) + ) + (set_local $2 + (i64.add + (i64.shl + (i64.extend_u/i32 + (tee_local $5 + (i32.ne + (tee_local $13 + (i32.wrap/i64 + (i64.shr_u + (i64.and + (tee_local $2 + (i64.reinterpret/f64 + (get_local $1) + ) + ) + (i64.const 9218868437227405312) + ) + (i64.const 52) + ) + ) + ) + (i32.const 0) + ) + ) + ) + (i64.const 52) + ) + (i64.and + (get_local $2) + (i64.const 4503599627370495) + ) + ) + ) + (set_local $5 + (i32.sub + (tee_local $13 + (i32.sub + (select + (get_local $13) + (i32.const 1) + (get_local $5) + ) + (i32.const 1075) + ) + ) + (i32.const 1) + ) + ) + (set_local $4 + (i32.wrap/i64 + (i64.clz + (tee_local $6 + (i64.add + (i64.shl + (get_local $2) + (i64.const 1) + ) + (i64.const 1) + ) + ) + ) + ) + ) + (set_global $~lib/internal/number/_frc_plus + (i64.shl + (get_local $6) + (i64.extend_s/i32 + (get_local $4) + ) + ) + ) + (set_global $~lib/internal/number/_frc_minus + (i64.shl + (i64.sub + (i64.shl + (get_local $2) + (i64.extend_s/i32 + (tee_local $14 + (i32.add + (i64.eq + (get_local $2) + (i64.const 4503599627370496) + ) + (i32.const 1) + ) + ) + ) + ) + (i64.const 1) + ) + (i64.extend_s/i32 + (i32.sub + (i32.sub + (get_local $13) + (get_local $14) + ) + (tee_local $5 + (i32.sub + (get_local $5) + (get_local $4) + ) + ) + ) + ) + ) + ) + (set_global $~lib/internal/number/_exp + (get_local $5) + ) + (set_global $~lib/internal/number/_K + (i32.sub + (i32.const 348) + (i32.shl + (tee_local $5 + (i32.add + (i32.shr_s + (i32.add + (tee_local $4 + (i32.trunc_s/f64 + (tee_local $1 + (f64.add + (f64.mul + (f64.convert_s/i32 + (i32.sub + (i32.const -61) + (get_global $~lib/internal/number/_exp) + ) + ) + (f64.const 0.30102999566398114) + ) + (f64.const 347) + ) + ) + ) + ) + (f64.ne + (f64.convert_s/i32 + (get_local $4) + ) + (get_local $1) + ) + ) + (i32.const 3) + ) + (i32.const 1) + ) + ) + (i32.const 3) + ) + ) + ) + (set_local $4 + (i32.load + (i32.const 4104) + ) + ) + (set_global $~lib/internal/number/_frc_pow + (i64.load offset=8 + (i32.add + (i32.load + (i32.const 3840) + ) + (i32.shl + (get_local $5) + (i32.const 3) + ) + ) + ) + ) + (set_global $~lib/internal/number/_exp_pow + (i32.load16_s offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $5) + (i32.const 1) + ) + ) + ) + ) + (set_local $9 + (i64.mul + (tee_local $7 + (i64.and + (tee_local $2 + (i64.shl + (get_local $2) + (i64.extend_s/i32 + (tee_local $4 + (i32.wrap/i64 + (i64.clz + (get_local $2) + ) + ) + ) + ) + ) + ) + (i64.const 4294967295) + ) + ) + (tee_local $8 + (i64.and + (tee_local $6 + (get_global $~lib/internal/number/_frc_pow) + ) + (i64.const 4294967295) + ) + ) + ) + ) + (set_local $2 + (i64.add + (i64.mul + (get_local $7) + (tee_local $10 + (i64.shr_u + (get_local $6) + (i64.const 32) + ) + ) + ) + (i64.and + (tee_local $3 + (i64.add + (i64.mul + (tee_local $11 + (i64.shr_u + (get_local $2) + (i64.const 32) + ) + ) + (get_local $8) + ) + (i64.shr_u + (get_local $9) + (i64.const 32) + ) + ) + ) + (i64.const 4294967295) + ) + ) + ) + (set_local $2 + (i64.add + (i64.add + (i64.mul + (get_local $11) + (get_local $10) + ) + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (i64.shr_u + (i64.add + (get_local $2) + (i64.const 2147483647) + ) + (i64.const 32) + ) + ) + ) + (set_local $7 + (i64.mul + (tee_local $9 + (i64.and + (tee_local $3 + (get_global $~lib/internal/number/_frc_plus) + ) + (i64.const 4294967295) + ) + ) + (tee_local $10 + (i64.and + (get_local $6) + (i64.const 4294967295) + ) + ) + ) + ) + (set_local $7 + (i64.add + (i64.mul + (get_local $9) + (tee_local $8 + (i64.shr_u + (get_local $6) + (i64.const 32) + ) + ) + ) + (i64.and + (tee_local $3 + (i64.add + (i64.mul + (tee_local $11 + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (get_local $10) + ) + (i64.shr_u + (get_local $7) + (i64.const 32) + ) + ) + ) + (i64.const 4294967295) + ) + ) + ) + (set_local $15 + (i64.add + (i64.add + (i64.mul + (get_local $11) + (get_local $8) + ) + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (i64.shr_u + (i64.add + (get_local $7) + (i64.const 2147483647) + ) + (i64.const 32) + ) + ) + ) + (set_local $9 + (i64.mul + (tee_local $7 + (i64.and + (tee_local $3 + (get_global $~lib/internal/number/_frc_minus) + ) + (i64.const 4294967295) + ) + ) + (tee_local $8 + (i64.and + (get_local $6) + (i64.const 4294967295) + ) + ) + ) + ) + (set_local $6 + (i64.add + (i64.mul + (get_local $7) + (tee_local $10 + (i64.shr_u + (get_local $6) + (i64.const 32) + ) + ) + ) + (i64.and + (tee_local $3 + (i64.add + (i64.mul + (tee_local $11 + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (get_local $8) + ) + (i64.shr_u + (get_local $9) + (i64.const 32) + ) + ) + ) + (i64.const 4294967295) + ) + ) + ) + (set_local $3 + (i64.sub + (tee_local $7 + (i64.sub + (get_local $15) + (i64.const 1) + ) + ) + (i64.add + (i64.add + (i64.add + (i64.mul + (get_local $11) + (get_local $10) + ) + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (i64.shr_u + (i64.add + (get_local $6) + (i64.const 2147483647) + ) + (i64.const 32) + ) + ) + (i64.const 1) + ) + ) + ) + (i32.add + (call $~lib/internal/number/prettify + (i32.add + (get_local $0) + (i32.shl + (get_local $12) + (i32.const 1) + ) + ) + (i32.sub + (call $~lib/internal/number/genDigits + (get_local $0) + (get_local $2) + (tee_local $5 + (i32.sub + (i32.add + (i32.sub + (get_local $13) + (get_local $4) + ) + (tee_local $4 + (get_global $~lib/internal/number/_exp_pow) + ) + ) + (i32.const -64) + ) + ) + (get_local $7) + (i32.sub + (i32.add + (get_global $~lib/internal/number/_exp) + (get_local $4) + ) + (i32.const -64) + ) + (get_local $3) + (get_local $12) + ) + (get_local $12) + ) + (get_global $~lib/internal/number/_K) + ) + (get_local $12) + ) + ) + (func $~lib/internal/number/dtoa (; 138 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (if + (f64.eq + (get_local $0) + (f64.const 0) + ) + (return + (i32.const 2736) + ) + ) + (if + (i32.eqz + (call $~lib/builtins/isFinite + (get_local $0) + ) + ) + (block + (if + (call $~lib/builtins/isNaN + (get_local $0) + ) + (return + (i32.const 2752) + ) + ) + (return + (select + (i32.const 2768) + (i32.const 2792) + (f64.lt + (get_local $0) + (f64.const 0) + ) + ) + ) + ) + ) + (set_local $2 + (call $~lib/internal/number/dtoa_core + (tee_local $1 + (call $~lib/internal/string/allocateUnsafe + (i32.const 28) + ) + ) + (get_local $0) + ) + ) + (set_local $2 + (call $~lib/string/String#substring + (get_local $1) + (get_local $2) + ) + ) + (if + (i32.eqz + (get_local $1) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + (get_local $2) + ) + (func $~lib/internal/number/dtoa_stream (; 139 ;) (; has Stack IR ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (local $3 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (f64.eq + (get_local $2) + (f64.const 0) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (i32.const 48) + ) + (i32.store16 offset=6 + (get_local $0) + (i32.const 46) + ) + (i32.store16 offset=8 + (get_local $0) + (i32.const 48) + ) + (return + (i32.const 3) + ) + ) + ) + (if + (i32.eqz + (call $~lib/builtins/isFinite + (get_local $2) + ) + ) + (if + (call $~lib/builtins/isNaN + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (i32.const 78) + ) + (i32.store16 offset=6 + (get_local $0) + (i32.const 97) + ) + (i32.store16 offset=8 + (get_local $0) + (i32.const 78) + ) + (return + (i32.const 3) + ) + ) + (block + (set_local $1 + (i32.add + (tee_local $3 + (f64.lt + (get_local $2) + (f64.const 0) + ) + ) + (i32.const 8) + ) + ) + (call $~lib/internal/memory/memmove + (i32.add + (get_local $0) + (i32.const 4) + ) + (select + (i32.const 2768) + (i32.const 2792) + (get_local $3) + ) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (return + (get_local $1) + ) + ) + ) + ) + (call $~lib/internal/number/dtoa_core + (get_local $0) + (get_local $2) + ) + ) + (func $~lib/array/Array#join (; 140 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (if + (i32.lt_s + (tee_local $3 + (i32.sub + (i32.load + (i32.const 4252) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $4 + (i32.load + (i32.const 4248) + ) + ) + (set_local $6 + (i32.ne + (tee_local $5 + (i32.load + (i32.const 2728) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (call $~lib/internal/number/dtoa + (f64.load offset=8 + (get_local $4) + ) + ) + ) + ) + (set_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $7 + (i32.add + (i32.mul + (i32.add + (get_local $5) + (i32.const 28) + ) + (get_local $3) + ) + (i32.const 28) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $1) + (get_local $3) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/dtoa_stream + (get_local $2) + (get_local $0) + (f64.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $1) + (i32.const 3) + ) + ) + ) + ) + ) + ) + (if + (get_local $6) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $2) + (get_local $0) + (i32.const 2728) + (i32.const 0) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (get_local $5) + ) + ) + ) + ) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (i32.gt_s + (get_local $7) + (tee_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/dtoa_stream + (tee_local $1 + (get_local $2) + ) + (get_local $0) + (f64.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $3) + (i32.const 3) + ) + ) + ) + ) + ) + ) + ) + (block + (set_local $1 + (call $~lib/string/String#substring + (get_local $2) + (get_local $0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $1) + ) + (func $~lib/array/Array#join (; 141 ;) (; has Stack IR ;) (type $iii) (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) + (if + (i32.lt_s + (tee_local $5 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $6 + (i32.load + (get_local $0) + ) + ) + (set_local $8 + (i32.ne + (tee_local $7 + (i32.load + (get_local $1) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $5) + ) + (return + (i32.load offset=8 + (get_local $6) + ) + ) + ) + (block $break|0 + (set_local $0 + (i32.const 0) + ) + (set_local $2 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $0) + (get_local $2) + ) + ) + (set_local $3 + (i32.add + (get_local $3) + (i32.load + (i32.load offset=8 + (i32.add + (get_local $6) + (i32.shl + (get_local $0) + (i32.const 2) + ) + ) + ) + ) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $2 + (i32.const 0) + ) + (set_local $0 + (call $~lib/internal/string/allocateUnsafe + (i32.add + (get_local $3) + (i32.mul + (get_local $7) + (get_local $5) + ) + ) + ) + ) + (block $break|1 + (set_local $3 + (i32.const 0) + ) + (loop $repeat|1 + (br_if $break|1 + (i32.ge_s + (get_local $3) + (get_local $5) + ) + ) + (if + (tee_local $4 + (i32.load offset=8 + (i32.add + (get_local $6) + (i32.shl + (get_local $3) + (i32.const 2) + ) + ) + ) + ) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $0) + (get_local $2) + (get_local $4) + (i32.const 0) + (tee_local $4 + (i32.load + (get_local $4) + ) + ) + ) + (set_local $2 + (i32.add + (get_local $2) + (get_local $4) + ) + ) + ) + ) + (if + (get_local $8) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $0) + (get_local $2) + (get_local $1) + (i32.const 0) + (get_local $7) + ) + (set_local $2 + (i32.add + (get_local $2) + (get_local $7) + ) + ) + ) + ) + (set_local $3 + (i32.add + (get_local $3) + (i32.const 1) + ) + ) + (br $repeat|1) + ) + ) + (if + (tee_local $4 + (i32.load offset=8 + (i32.add + (get_local $6) + (i32.shl + (get_local $5) + (i32.const 2) + ) + ) + ) + ) + (call $~lib/internal/string/copyUnsafe + (get_local $0) + (get_local $2) + (get_local $4) + (i32.const 0) + (i32.load + (get_local $4) + ) + ) + ) + (get_local $0) + ) + (func $std/array/Ref#constructor (; 142 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (call $~lib/memory/memory.allocate + (i32.const 0) + ) + ) + (func $~lib/array/Array#__unchecked_set (; 143 ;) (; has Stack IR ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (i32.store offset=8 + (i32.add + (i32.load + (get_local $0) + ) + (i32.shl + (get_local $1) + (i32.const 2) + ) + ) + (get_local $2) + ) + ) + (func $~lib/array/Array#join (; 144 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (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) + (if + (i32.lt_s + (tee_local $3 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.ne + (tee_local $4 + (i32.load + (i32.const 1776) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (i32.const 4432) + ) + ) + (set_local $0 + (call $~lib/internal/string/allocateUnsafe + (tee_local $7 + (i32.add + (i32.mul + (i32.add + (get_local $4) + (i32.const 15) + ) + (get_local $3) + ) + (i32.const 15) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $2) + (get_local $3) + ) + ) + (if + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 2) + ) + ) + ) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $0) + (get_local $1) + (i32.const 4432) + (i32.const 0) + (i32.const 15) + ) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 15) + ) + ) + ) + ) + (if + (get_local $6) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $0) + (get_local $1) + (i32.const 1776) + (i32.const 0) + (get_local $4) + ) + (set_local $1 + (i32.add + (get_local $1) + (get_local $4) + ) + ) + ) + ) + (set_local $2 + (i32.add + (get_local $2) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $3) + (i32.const 2) + ) + ) + ) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $0) + (get_local $1) + (i32.const 4432) + (i32.const 0) + (i32.const 15) + ) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 15) + ) + ) + ) + ) + (set_local $2 + (get_local $0) + ) + (if + (i32.gt_s + (get_local $7) + (get_local $1) + ) + (block + (set_local $2 + (call $~lib/string/String#substring + (get_local $0) + (get_local $1) + ) + ) + (if + (i32.eqz + (get_local $0) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $2) + ) + (func $~lib/internal/number/itoa (; 145 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (call $~lib/internal/number/itoa32 + (i32.shr_s + (i32.shl + (get_local $0) + (i32.const 24) + ) + (i32.const 24) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 146 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (i32.and + (get_local $2) + (i32.const 255) + ) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (i32.const 48) + ) + (return + (i32.const 1) + ) + ) + ) + (if + (tee_local $3 + (i32.lt_s + (i32.shr_s + (i32.shl + (get_local $2) + (i32.const 24) + ) + (i32.const 24) + ) + (i32.const 0) + ) + ) + (set_local $2 + (i32.sub + (i32.const 0) + (get_local $2) + ) + ) + ) + (set_local $1 + (i32.add + (call $~lib/internal/number/decimalCount32 + (tee_local $2 + (i32.shr_s + (i32.shl + (get_local $2) + (i32.const 24) + ) + (i32.const 24) + ) + ) + ) + (get_local $3) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $2) + (get_local $1) + ) + (if + (get_local $3) + (i32.store16 offset=4 + (get_local $0) + (i32.const 45) + ) + ) + (get_local $1) + ) + (func $~lib/array/Array#join (; 147 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (if + (i32.lt_s + (tee_local $3 + (i32.sub + (i32.load + (i32.const 4628) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $4 + (i32.load + (i32.const 4624) + ) + ) + (set_local $6 + (i32.ne + (tee_local $5 + (i32.load + (i32.const 1776) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (call $~lib/internal/number/itoa + (i32.load8_s offset=8 + (get_local $4) + ) + ) + ) + ) + (set_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $7 + (i32.add + (i32.mul + (i32.add + (get_local $5) + (i32.const 11) + ) + (get_local $3) + ) + (i32.const 11) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $1) + (get_local $3) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/itoa_stream + (get_local $2) + (get_local $0) + (i32.load8_s offset=8 + (i32.add + (get_local $4) + (get_local $1) + ) + ) + ) + ) + ) + (if + (get_local $6) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $2) + (get_local $0) + (i32.const 1776) + (i32.const 0) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (get_local $5) + ) + ) + ) + ) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (i32.gt_s + (get_local $7) + (tee_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/itoa_stream + (tee_local $1 + (get_local $2) + ) + (get_local $0) + (i32.load8_s offset=8 + (i32.add + (get_local $4) + (get_local $3) + ) + ) + ) + ) + ) + ) + (block + (set_local $1 + (call $~lib/string/String#substring + (get_local $2) + (get_local $0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $1) + ) + (func $~lib/internal/number/itoa (; 148 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (call $~lib/internal/number/utoa32 + (i32.and + (get_local $0) + (i32.const 65535) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 149 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (i32.and + (get_local $2) + (i32.const 65535) + ) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (i32.const 48) + ) + (return + (i32.const 1) + ) + ) + ) + (set_local $1 + (call $~lib/internal/number/decimalCount32 + (tee_local $2 + (i32.and + (get_local $2) + (i32.const 65535) + ) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $2) + (get_local $1) + ) + (get_local $1) + ) + (func $~lib/array/Array#join (; 150 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (if + (i32.lt_s + (tee_local $3 + (i32.sub + (i32.load + (i32.const 4692) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $4 + (i32.load + (i32.const 4688) + ) + ) + (set_local $6 + (i32.ne + (tee_local $5 + (i32.load + (i32.const 1776) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (call $~lib/internal/number/itoa + (i32.load16_u offset=8 + (get_local $4) + ) + ) + ) + ) + (set_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $7 + (i32.add + (i32.mul + (i32.add + (get_local $5) + (i32.const 10) + ) + (get_local $3) + ) + (i32.const 10) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $1) + (get_local $3) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/itoa_stream + (get_local $2) + (get_local $0) + (i32.load16_u offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + ) + ) + ) + (if + (get_local $6) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $2) + (get_local $0) + (i32.const 1776) + (i32.const 0) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (get_local $5) + ) + ) + ) + ) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (i32.gt_s + (get_local $7) + (tee_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/itoa_stream + (tee_local $1 + (get_local $2) + ) + (get_local $0) + (i32.load16_u offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) + ) + ) + ) + ) + ) + (block + (set_local $1 + (call $~lib/string/String#substring + (get_local $2) + (get_local $0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $1) + ) + (func $~lib/internal/number/decimalCount64 (; 151 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (if (result i32) + (i64.lt_u + (get_local $0) + (i64.const 1000000000000000) + ) + (if (result i32) + (i64.lt_u + (get_local $0) + (i64.const 1000000000000) + ) + (select + (i32.const 11) + (i32.const 12) + (i64.lt_u + (get_local $0) + (i64.const 100000000000) + ) + ) + (select + (i32.const 13) + (select + (i32.const 14) + (i32.const 15) + (i64.lt_u + (get_local $0) + (i64.const 100000000000000) + ) + ) + (i64.lt_u + (get_local $0) + (i64.const 10000000000000) + ) + ) + ) + (if (result i32) + (i64.lt_u + (get_local $0) + (i64.const 100000000000000000) + ) + (select + (i32.const 16) + (i32.const 17) + (i64.lt_u + (get_local $0) + (i64.const 10000000000000000) + ) + ) + (select + (i32.const 18) + (select + (i32.const 19) + (i32.const 20) + (i64.lt_u + (get_local $0) + (i64.const -8446744073709551616) + ) + ) + (i64.lt_u + (get_local $0) + (i64.const 1000000000000000000) + ) + ) + ) + ) + ) + (func $~lib/internal/number/utoa64_lut (; 152 ;) (; has Stack IR ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (set_local $3 + (i32.load + (i32.const 5272) + ) + ) + (loop $continue|0 + (if + (i64.ge_u + (get_local $1) + (i64.const 100000000) + ) + (block + (set_local $6 + (i32.div_u + (tee_local $5 + (i32.div_u + (tee_local $4 + (i32.wrap/i64 + (i64.sub + (get_local $1) + (i64.mul + (tee_local $1 + (i64.div_u + (get_local $1) + (i64.const 100000000) + ) + ) + (i64.const 100000000) + ) + ) + ) + ) + (i32.const 10000) + ) + ) + (i32.const 100) + ) + ) + (set_local $5 + (i32.rem_u + (get_local $5) + (i32.const 100) + ) + ) + (i64.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (tee_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (i32.const 1) + ) + ) + (i64.or + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (i32.div_u + (tee_local $4 + (i32.rem_u + (get_local $4) + (i32.const 10000) + ) + ) + (i32.const 100) + ) + (i32.const 2) + ) + ) + ) + (i64.shl + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (i32.rem_u + (get_local $4) + (i32.const 100) + ) + (i32.const 2) + ) + ) + ) + (i64.const 32) + ) + ) + ) + (i64.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (tee_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (i32.const 1) + ) + ) + (i64.or + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $6) + (i32.const 2) + ) + ) + ) + (i64.shl + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $5) + (i32.const 2) + ) + ) + ) + (i64.const 32) + ) + ) + ) + (br $continue|0) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (i32.wrap/i64 + (get_local $1) + ) + (get_local $2) + ) + ) + (func $~lib/internal/number/utoa64 (; 153 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (if + (i64.eqz + (get_local $0) + ) + (return + (i32.const 1872) + ) + ) + (if + (i64.le_u + (get_local $0) + (i64.const 4294967295) + ) + (call $~lib/internal/number/utoa32_lut + (tee_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $1 + (call $~lib/internal/number/decimalCount32 + (tee_local $3 + (i32.wrap/i64 + (get_local $0) + ) + ) + ) + ) + ) + ) + (get_local $3) + (get_local $1) + ) + (call $~lib/internal/number/utoa64_lut + (tee_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $1 + (call $~lib/internal/number/decimalCount64 + (get_local $0) + ) + ) + ) + ) + (get_local $0) + (get_local $1) + ) + ) + (get_local $2) + ) + (func $~lib/internal/number/itoa (; 154 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (call $~lib/internal/number/utoa64 + (get_local $0) + ) + ) + (func $~lib/internal/number/itoa_stream (; 155 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (local $3 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i64.eqz + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (i32.const 48) + ) + (return + (i32.const 1) + ) + ) + ) + (if + (i64.le_u + (get_local $2) + (i64.const 4294967295) + ) + (block + (set_local $1 + (call $~lib/internal/number/decimalCount32 + (tee_local $3 + (i32.wrap/i64 + (get_local $2) + ) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $3) + (get_local $1) + ) + ) + (call $~lib/internal/number/utoa64_lut + (get_local $0) + (get_local $2) + (tee_local $1 + (call $~lib/internal/number/decimalCount64 + (get_local $2) + ) + ) + ) + ) + (get_local $1) + ) + (func $~lib/array/Array#join (; 156 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (if + (i32.lt_s + (tee_local $3 + (i32.sub + (i32.load + (i32.const 5316) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $4 + (i32.load + (i32.const 5312) + ) + ) + (set_local $6 + (i32.ne + (tee_local $5 + (i32.load + (i32.const 1776) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (call $~lib/internal/number/itoa + (i64.load offset=8 + (get_local $4) + ) + ) + ) + ) + (set_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $7 + (i32.add + (i32.mul + (i32.add + (get_local $5) + (i32.const 20) + ) + (get_local $3) + ) + (i32.const 20) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $1) + (get_local $3) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/itoa_stream + (get_local $2) + (get_local $0) + (i64.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $1) + (i32.const 3) + ) + ) + ) + ) + ) + ) + (if + (get_local $6) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $2) + (get_local $0) + (i32.const 1776) + (i32.const 0) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (get_local $5) + ) + ) + ) + ) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (i32.gt_s + (get_local $7) + (tee_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/itoa_stream + (tee_local $1 + (get_local $2) + ) + (get_local $0) + (i64.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $3) + (i32.const 3) + ) + ) + ) + ) + ) + ) + ) + (block + (set_local $1 + (call $~lib/string/String#substring + (get_local $2) + (get_local $0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $1) + ) + (func $~lib/internal/number/itoa64 (; 157 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (if + (i64.eqz + (get_local $0) + ) + (return + (i32.const 1872) + ) + ) + (if + (tee_local $1 + (i64.lt_s + (get_local $0) + (i64.const 0) + ) + ) + (set_local $0 + (i64.sub + (i64.const 0) + (get_local $0) + ) + ) + ) + (if + (i64.le_u + (get_local $0) + (i64.const 4294967295) + ) + (call $~lib/internal/number/utoa32_lut + (tee_local $3 + (call $~lib/internal/string/allocateUnsafe + (tee_local $2 + (i32.add + (call $~lib/internal/number/decimalCount32 + (tee_local $4 + (i32.wrap/i64 + (get_local $0) + ) + ) + ) + (get_local $1) + ) + ) + ) + ) + (get_local $4) + (get_local $2) + ) + (call $~lib/internal/number/utoa64_lut + (tee_local $3 + (call $~lib/internal/string/allocateUnsafe + (tee_local $2 + (i32.add + (call $~lib/internal/number/decimalCount64 + (get_local $0) + ) + (get_local $1) + ) + ) + ) + ) + (get_local $0) + (get_local $2) + ) + ) + (if + (get_local $1) + (i32.store16 offset=4 + (get_local $3) + (i32.const 45) + ) + ) + (get_local $3) + ) + (func $~lib/internal/number/itoa (; 158 ;) (; has Stack IR ;) (type $Ii) (param $0 i64) (result i32) + (call $~lib/internal/number/itoa64 + (get_local $0) + ) + ) + (func $~lib/internal/number/itoa_stream (; 159 ;) (; has Stack IR ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (local $3 i32) + (local $4 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i64.eqz + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (i32.const 48) + ) + (return + (i32.const 1) + ) + ) + ) + (if + (tee_local $3 + (i64.lt_s + (get_local $2) + (i64.const 0) + ) + ) + (set_local $2 + (i64.sub + (i64.const 0) + (get_local $2) + ) + ) + ) + (if + (i64.le_u + (get_local $2) + (i64.const 4294967295) + ) + (block + (set_local $1 + (i32.add + (call $~lib/internal/number/decimalCount32 + (tee_local $4 + (i32.wrap/i64 + (get_local $2) + ) + ) + ) + (get_local $3) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $4) + (get_local $1) + ) + ) + (call $~lib/internal/number/utoa64_lut + (get_local $0) + (get_local $2) + (tee_local $1 + (i32.add + (call $~lib/internal/number/decimalCount64 + (get_local $2) + ) + (get_local $3) + ) + ) + ) + ) + (if + (get_local $3) + (i32.store16 offset=4 + (get_local $0) + (i32.const 45) + ) + ) + (get_local $1) + ) + (func $~lib/array/Array#join (; 160 ;) (; has Stack IR ;) (type $FUNCSIG$i) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (if + (i32.lt_s + (tee_local $3 + (i32.sub + (i32.load + (i32.const 5516) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $4 + (i32.load + (i32.const 5512) + ) + ) + (set_local $6 + (i32.ne + (tee_local $5 + (i32.load + (i32.const 1776) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (call $~lib/internal/number/itoa + (i64.load offset=8 + (get_local $4) + ) + ) + ) + ) + (set_local $2 + (call $~lib/internal/string/allocateUnsafe + (tee_local $7 + (i32.add + (i32.mul + (i32.add + (get_local $5) + (i32.const 21) + ) + (get_local $3) + ) + (i32.const 21) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $1) + (get_local $3) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/itoa_stream + (get_local $2) + (get_local $0) + (i64.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $1) + (i32.const 3) + ) + ) + ) + ) + ) + ) + (if + (get_local $6) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $2) + (get_local $0) + (i32.const 1776) + (i32.const 0) + (get_local $5) + ) + (set_local $0 + (i32.add + (get_local $0) + (get_local $5) + ) + ) + ) + ) + (set_local $1 + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (i32.gt_s + (get_local $7) + (tee_local $0 + (i32.add + (get_local $0) + (call $~lib/internal/number/itoa_stream + (tee_local $1 + (get_local $2) + ) + (get_local $0) + (i64.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $3) + (i32.const 3) + ) + ) + ) + ) + ) + ) + ) + (block + (set_local $1 + (call $~lib/string/String#substring + (get_local $2) + (get_local $0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $1) + ) + (func $~lib/array/Array>#join (; 161 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (if + (i32.lt_s + (tee_local $3 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $1 + (i32.const 1464) + ) + (set_local $4 + (i32.load + (get_local $0) + ) + ) + (set_local $5 + (i32.ne + (i32.load + (i32.const 1776) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (tee_local $0 + (if (result i32) + (tee_local $2 + (i32.load offset=8 + (get_local $4) + ) + ) + (call $~lib/array/Array#join + (get_local $2) + (i32.const 1776) + ) + (i32.const 1464) + ) + ) + ) + ) + (block $break|0 + (set_local $0 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $0) + (get_local $3) + ) + ) + (if + (tee_local $2 + (i32.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $0) + (i32.const 2) + ) + ) + ) + ) + (set_local $1 + (call $~lib/string/String.__concat + (get_local $1) + (call $~lib/array/Array#join + (get_local $2) + (i32.const 1776) + ) + ) + ) + ) + (if + (get_local $5) + (set_local $1 + (call $~lib/string/String.__concat + (get_local $1) + (i32.const 1776) + ) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (tee_local $2 + (i32.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $3) + (i32.const 2) + ) + ) + ) + ) + (set_local $1 + (call $~lib/string/String.__concat + (get_local $1) + (call $~lib/array/Array#join + (get_local $2) + (i32.const 1776) + ) + ) + ) + ) + (get_local $1) + ) + (func $~lib/internal/number/itoa (; 162 ;) (; has Stack IR ;) (type $ii) (param $0 i32) (result i32) + (call $~lib/internal/number/utoa32 + (i32.and + (get_local $0) + (i32.const 255) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 163 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (i32.and + (get_local $2) + (i32.const 255) + ) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (i32.const 48) + ) + (return + (i32.const 1) + ) + ) + ) + (set_local $1 + (call $~lib/internal/number/decimalCount32 + (tee_local $2 + (i32.and + (get_local $2) + (i32.const 255) + ) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $2) + (get_local $1) + ) + (get_local $1) + ) + (func $~lib/array/Array#join (; 164 ;) (; has Stack IR ;) (type $iii) (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) + (if + (i32.lt_s + (tee_local $4 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $7 + (i32.ne + (tee_local $6 + (i32.load + (get_local $1) + ) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $4) + ) + (return + (call $~lib/internal/number/itoa + (i32.load8_u offset=8 + (get_local $5) + ) + ) + ) + ) + (set_local $0 + (call $~lib/internal/string/allocateUnsafe + (tee_local $8 + (i32.add + (i32.mul + (i32.add + (get_local $6) + (i32.const 10) + ) + (get_local $4) + ) + (i32.const 10) + ) + ) + ) + ) + (block $break|0 + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $3) + (get_local $4) + ) + ) + (set_local $2 + (i32.add + (get_local $2) + (call $~lib/internal/number/itoa_stream + (get_local $0) + (get_local $2) + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (get_local $3) + ) + ) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $0) + (get_local $2) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $2 + (i32.add + (get_local $2) + (get_local $6) + ) + ) + ) + ) + (set_local $3 + (i32.add + (get_local $3) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $3 + (get_local $0) + ) + (if + (i32.gt_s + (get_local $8) + (tee_local $2 + (i32.add + (get_local $2) + (call $~lib/internal/number/itoa_stream + (get_local $0) + (get_local $2) + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (get_local $4) + ) + ) + ) + ) + ) + ) + (block + (set_local $3 + (call $~lib/string/String#substring + (get_local $0) + (get_local $2) + ) + ) + (if + (i32.eqz + (get_local $0) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + ) + ) + (get_local $3) + ) + (func $~lib/array/Array>#join (; 165 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (if + (i32.lt_s + (tee_local $3 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $1 + (i32.const 1464) + ) + (set_local $4 + (i32.load + (get_local $0) + ) + ) + (set_local $5 + (i32.ne + (i32.load + (i32.const 1776) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (tee_local $0 + (if (result i32) + (tee_local $2 + (i32.load offset=8 + (get_local $4) + ) + ) + (call $~lib/array/Array#join + (get_local $2) + (i32.const 1776) + ) + (i32.const 1464) + ) + ) + ) + ) + (block $break|0 + (set_local $0 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $0) + (get_local $3) + ) + ) + (if + (tee_local $2 + (i32.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $0) + (i32.const 2) + ) + ) + ) + ) + (set_local $1 + (call $~lib/string/String.__concat + (get_local $1) + (call $~lib/array/Array#join + (get_local $2) + (i32.const 1776) + ) + ) + ) + ) + (if + (get_local $5) + (set_local $1 + (call $~lib/string/String.__concat + (get_local $1) + (i32.const 1776) + ) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (tee_local $2 + (i32.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $3) + (i32.const 2) + ) + ) + ) + ) + (set_local $1 + (call $~lib/string/String.__concat + (get_local $1) + (call $~lib/array/Array#join + (get_local $2) + (i32.const 1776) + ) + ) + ) + ) + (get_local $1) + ) + (func $~lib/array/Array>#join (; 166 ;) (; has Stack IR ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (if + (i32.lt_s + (tee_local $4 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $2 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.ne + (i32.load + (get_local $1) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $4) + ) + (return + (tee_local $0 + (if (result i32) + (tee_local $3 + (i32.load offset=8 + (get_local $5) + ) + ) + (call $~lib/array/Array#join + (get_local $3) + (get_local $1) + ) + (i32.const 1464) + ) + ) + ) + ) + (block $break|0 + (set_local $0 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $0) + (get_local $4) + ) + ) + (if + (tee_local $3 + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $0) + (i32.const 2) + ) + ) + ) + ) + (set_local $2 + (call $~lib/string/String.__concat + (get_local $2) + (call $~lib/array/Array#join + (get_local $3) + (get_local $1) + ) + ) + ) + ) + (if + (get_local $6) + (set_local $2 + (call $~lib/string/String.__concat + (get_local $2) + (get_local $1) + ) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (tee_local $3 + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $4) + (i32.const 2) + ) + ) + ) + ) + (set_local $2 + (call $~lib/string/String.__concat + (get_local $2) + (call $~lib/array/Array#join + (get_local $3) + (get_local $1) + ) + ) + ) + ) + (get_local $2) + ) + (func $~lib/array/Array>>#join (; 167 ;) (; has Stack IR ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (if + (i32.lt_s + (tee_local $3 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $1 + (i32.const 1464) + ) + (set_local $4 + (i32.load + (get_local $0) + ) + ) + (set_local $5 + (i32.ne + (i32.load + (i32.const 1776) + ) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (tee_local $0 + (if (result i32) + (tee_local $2 + (i32.load offset=8 + (get_local $4) + ) + ) + (call $~lib/array/Array>#join + (get_local $2) + (i32.const 1776) + ) + (i32.const 1464) + ) + ) + ) + ) + (block $break|0 + (set_local $0 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $0) + (get_local $3) + ) + ) + (if + (tee_local $2 + (i32.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $0) + (i32.const 2) + ) + ) + ) + ) + (set_local $1 + (call $~lib/string/String.__concat + (get_local $1) + (call $~lib/array/Array>#join + (get_local $2) + (i32.const 1776) + ) + ) + ) + ) + (if + (get_local $5) + (set_local $1 + (call $~lib/string/String.__concat + (get_local $1) + (i32.const 1776) + ) + ) + ) + (set_local $0 + (i32.add + (get_local $0) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (tee_local $2 + (i32.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $3) + (i32.const 2) + ) + ) + ) + ) + (set_local $1 + (call $~lib/string/String.__concat + (get_local $1) + (call $~lib/array/Array>#join + (get_local $2) + (i32.const 1776) + ) + ) + ) + ) + (get_local $1) + ) + (func $start (; 168 ;) (; has Stack IR ;) (type $v) + (local $0 i32) (set_global $~lib/allocator/arena/startOffset - (i32.const 1720) + (i32.const 5992) ) (set_global $~lib/allocator/arena/offset (get_global $~lib/allocator/arena/startOffset) @@ -9335,9 +14760,12 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 44) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 44) + (i32.const 0) + ) (i32.const 0) ) ) @@ -9357,9 +14785,12 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 42) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 42) + (i32.const 0) + ) (i32.const 0) ) ) @@ -9379,9 +14810,12 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 45) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 45) + (i32.const 0) + ) (i32.const 0) ) ) @@ -9398,10 +14832,13 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const 100) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 43) + (i32.const 100) + ) + (i32.const 0) ) ) (if @@ -9417,10 +14854,13 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const -100) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 43) + (i32.const -100) + ) + (i32.const 0) ) ) (if @@ -9439,10 +14879,13 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const -2) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 43) + (i32.const -2) + ) + (i32.const 0) ) ) (if @@ -9461,10 +14904,13 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const -4) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 43) + (i32.const -4) + ) + (i32.const 0) ) ) (if @@ -9483,9 +14929,12 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 43) + (i32.const 0) + ) (i32.const 0) ) ) @@ -9505,10 +14954,13 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const 1) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 43) + (i32.const 1) + ) + (i32.const 0) ) ) (if @@ -9527,10 +14979,13 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const 2) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_global $std/array/arr) + (i32.const 43) + (i32.const 2) + ) + (i32.const 0) ) ) (if @@ -11461,8 +16916,408 @@ (get_global $std/array/randomStrings400) (i32.const 55) ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join) + (i32.const 1808) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 738) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 2432) + (i32.const 1464) + ) + (i32.const 2440) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 739) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 2536) + (i32.const 2496) + ) + (i32.const 2440) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 740) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 2592) + (i32.const 2568) + ) + (i32.const 2600) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 741) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join) + (i32.const 4256) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 742) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 4424) + (i32.const 1464) + ) + (i32.const 4344) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 743) + (i32.const 0) + ) + (unreachable) + ) + ) + (call $~lib/array/Array#__unchecked_set + (tee_local $0 + (call $~lib/array/Array#constructor + (i32.const 3) + ) + ) + (i32.const 0) + (call $std/array/Ref#constructor) + ) + (call $~lib/array/Array#__unchecked_set + (get_local $0) + (i32.const 1) + (i32.const 0) + ) + (call $~lib/array/Array#__unchecked_set + (get_local $0) + (i32.const 2) + (call $std/array/Ref#constructor) + ) + (set_global $std/array/refArr + (get_local $0) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (get_global $std/array/refArr) + ) + (i32.const 4472) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 745) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (get_global $std/array/reversed0) + (i32.const 1776) + ) + (i32.const 1464) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 749) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (get_global $std/array/reversed1) + (i32.const 1776) + ) + (i32.const 4344) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 750) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (get_global $std/array/reversed2) + (i32.const 1776) + ) + (i32.const 4544) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 751) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (get_global $std/array/reversed4) + (i32.const 1776) + ) + (i32.const 4560) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 752) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join) + (i32.const 4632) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 754) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join) + (i32.const 4696) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 755) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join) + (i32.const 5320) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 756) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join) + (i32.const 5520) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 757) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (get_global $std/array/randomStringsExpected) + (i32.const 1776) + ) + (i32.const 5608) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 758) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 5728) + (i32.const 1776) + ) + (i32.const 5736) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 759) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array>#join + (get_global $std/array/subarr32) + ) + (i32.const 5824) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 762) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array>#join + (get_global $std/array/subarr8) + ) + (i32.const 5824) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 765) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array>>#join + (get_global $std/array/subarrU32) + ) + (i32.const 4344) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 768) + (i32.const 0) + ) + (unreachable) + ) + ) ) - (func $null (; 124 ;) (; has Stack IR ;) (type $v) + (func $null (; 169 ;) (; has Stack IR ;) (type $v) (nop) ) ) diff --git a/tests/compiler/std/array.ts b/tests/compiler/std/array.ts index 87c198c3..afa8f42c 100644 --- a/tests/compiler/std/array.ts +++ b/tests/compiler/std/array.ts @@ -730,3 +730,39 @@ assert(isArraysEqual(randomStringsActual, randomStringsExpected)); var randomStrings400 = createRandomStringArray(400); assertSorted(randomStrings400, (a: string, b: string): i32 => (a > b) - (a < b)); + +// Array#join ////////////////////////////////////////////////////////////////////////////////////// + +class Ref { constructor() {} } + +assert(([true, false]).join() == "true,false"); +assert(([1,-2,-3]).join("") == "1-2-3"); +assert(([1, 2, 3]).join("-") == "1-2-3"); +assert(([i32.MIN_VALUE, i32.MIN_VALUE]).join("__") == "-2147483648__-2147483648"); +assert(([0.0, 1.0, -2.0, NaN, -Infinity, Infinity]).join(", ") == "0.0, 1.0, -2.0, NaN, -Infinity, Infinity"); +assert((["", "1", null]).join("") == "1"); +var refArr: Ref[] = [new Ref(), null, new Ref()]; +assert(refArr.join() == "[object Object],,[object Object]"); + +// Array#toString ////////////////////////////////////////////////////////////////////////////////// + +assert(reversed0.toString() == ""); +assert(reversed1.toString() == "1"); +assert(reversed2.toString() == "1,2"); +assert(reversed4.toString() == "0,1,2,3"); + +assert(([1, -1, 0]).toString() == "1,-1,0"); +assert(([1, 0xFFFF, 0]).toString() == "1,65535,0"); +assert(([1, 0xFFFFFFFFFFFFFFFF, 0]).toString() == "1,18446744073709551615,0"); +assert(([-1, -1234567890123456, 0, i64.MAX_VALUE]).toString() == "-1,-1234567890123456,0,9223372036854775807"); +assert(randomStringsExpected.toString() == ",a,a,ab,b,ba,"); +assert((["1", "2", null, "4"]).toString() == "1,2,,4"); + +var subarr32: i32[][] = [[1,2], [3,4]]; +assert(subarr32.toString() == "1,2,3,4"); + +var subarr8: u8[][] = [[1,2], [3,4]]; +assert(subarr8.toString() == "1,2,3,4"); + +var subarrU32: u32[][][] = [[[1]]]; +assert(subarrU32.toString() == "1"); diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 67b21d8b..27dd83c4 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -19,6 +19,12 @@ (type $Fi (func (param f64) (result i32))) (type $iiiiii (func (param i32 i32 i32 i32 i32) (result i32))) (type $iiiiiv (func (param i32 i32 i32 i32 i32))) + (type $iFi (func (param i32 f64) (result i32))) + (type $iIiIiIii (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $iiFi (func (param i32 i32 f64) (result i32))) + (type $Ii (func (param i64) (result i32))) + (type $iIiv (func (param i32 i64 i32))) + (type $iiIi (func (param i32 i32 i64) (result i32))) (type $v (func)) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (import "JSMath" "random" (func $~lib/math/JSMath.random (result f64))) @@ -32,6 +38,14 @@ (global $~lib/internal/arraybuffer/MAX_BLENGTH i32 (i32.const 1073741816)) (global $~lib/internal/string/HEADER_SIZE i32 (i32.const 4)) (global $~lib/internal/string/MAX_LENGTH i32 (i32.const 536870910)) + (global $~lib/internal/number/MAX_DOUBLE_LENGTH i32 (i32.const 28)) + (global $~lib/internal/number/_K (mut i32) (i32.const 0)) + (global $~lib/internal/number/_frc (mut i64) (i64.const 0)) + (global $~lib/internal/number/_exp (mut i32) (i32.const 0)) + (global $~lib/internal/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/internal/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/internal/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/internal/number/_exp_pow (mut i32) (i32.const 0)) (global $std/array/arr (mut i32) (i32.const 0)) (global $std/array/arr8 (mut i32) (i32.const 120)) (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) @@ -71,7 +85,42 @@ (global $std/array/randomStringsActual (mut i32) (i32.const 1536)) (global $std/array/randomStringsExpected (mut i32) (i32.const 1608)) (global $std/array/randomStrings400 (mut i32) (i32.const 0)) - (global $HEAP_BASE i32 (i32.const 1716)) + (global $ASC_SHRINK_LEVEL i32 (i32.const 0)) + (global $~lib/internal/string/CharCode.PLUS i32 (i32.const 43)) + (global $~lib/internal/string/CharCode.MINUS i32 (i32.const 45)) + (global $~lib/internal/string/CharCode.DOT i32 (i32.const 46)) + (global $~lib/internal/string/CharCode._0 i32 (i32.const 48)) + (global $~lib/internal/string/CharCode._1 i32 (i32.const 49)) + (global $~lib/internal/string/CharCode._2 i32 (i32.const 50)) + (global $~lib/internal/string/CharCode._3 i32 (i32.const 51)) + (global $~lib/internal/string/CharCode._4 i32 (i32.const 52)) + (global $~lib/internal/string/CharCode._5 i32 (i32.const 53)) + (global $~lib/internal/string/CharCode._6 i32 (i32.const 54)) + (global $~lib/internal/string/CharCode._7 i32 (i32.const 55)) + (global $~lib/internal/string/CharCode._8 i32 (i32.const 56)) + (global $~lib/internal/string/CharCode._9 i32 (i32.const 57)) + (global $~lib/internal/string/CharCode.A i32 (i32.const 65)) + (global $~lib/internal/string/CharCode.B i32 (i32.const 66)) + (global $~lib/internal/string/CharCode.E i32 (i32.const 69)) + (global $~lib/internal/string/CharCode.N i32 (i32.const 78)) + (global $~lib/internal/string/CharCode.O i32 (i32.const 79)) + (global $~lib/internal/string/CharCode.X i32 (i32.const 88)) + (global $~lib/internal/string/CharCode.Z i32 (i32.const 90)) + (global $~lib/internal/string/CharCode.a i32 (i32.const 97)) + (global $~lib/internal/string/CharCode.b i32 (i32.const 98)) + (global $~lib/internal/string/CharCode.e i32 (i32.const 101)) + (global $~lib/internal/string/CharCode.n i32 (i32.const 110)) + (global $~lib/internal/string/CharCode.o i32 (i32.const 111)) + (global $~lib/internal/string/CharCode.x i32 (i32.const 120)) + (global $~lib/internal/string/CharCode.z i32 (i32.const 122)) + (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) + (global $std/array/refArr (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/subarr32 (mut i32) (i32.const 5816)) + (global $std/array/subarr8 (mut i32) (i32.const 5912)) + (global $std/array/subarrU32 (mut i32) (i32.const 5984)) + (global $HEAP_BASE i32 (i32.const 5992)) (table 56 56 anyfunc) (elem (i32.const 0) $null $start~anonymous|1 $start~anonymous|2 $start~anonymous|3 $start~anonymous|4 $start~anonymous|5 $start~anonymous|6 $start~anonymous|7 $start~anonymous|8 $start~anonymous|9 $start~anonymous|10 $start~anonymous|11 $start~anonymous|12 $start~anonymous|13 $start~anonymous|14 $start~anonymous|15 $start~anonymous|16 $start~anonymous|17 $start~anonymous|18 $start~anonymous|19 $start~anonymous|20 $start~anonymous|21 $start~anonymous|22 $start~anonymous|23 $start~anonymous|24 $start~anonymous|25 $start~anonymous|26 $start~anonymous|27 $start~anonymous|28 $start~anonymous|29 $start~anonymous|30 $start~anonymous|31 $start~anonymous|32 $start~anonymous|33 $start~anonymous|34 $start~anonymous|35 $start~anonymous|36 $start~anonymous|37 $start~anonymous|38 $start~anonymous|39 $start~anonymous|40 $start~anonymous|41 $start~anonymous|42 $~lib/array/Array#sort|trampoline~anonymous|43 $~lib/array/Array#sort|trampoline~anonymous|44 $~lib/array/Array#sort|trampoline~anonymous|45 $~lib/array/Array#sort|trampoline~anonymous|46 $std/array/assertSortedDefault~anonymous|47 $start~anonymous|48 $start~anonymous|49 $start~anonymous|50 $start~anonymous|51 $start~anonymous|52 $start~anonymous|53 $start~anonymous|54 $start~anonymous|55) (memory $0 1) @@ -142,6 +191,107 @@ (data (i32.const 1616) "\0e\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") (data (i32.const 1648) "\17\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") (data (i32.const 1704) "\04\00\00\00n\00u\00l\00l\00") + (data (i32.const 1720) "\02\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 1736) "\b8\06\00\00\02\00\00\00") + (data (i32.const 1744) "\04\00\00\00t\00r\00u\00e\00") + (data (i32.const 1760) "\05\00\00\00f\00a\00l\00s\00e\00") + (data (i32.const 1776) "\01\00\00\00,\00") + (data (i32.const 1784) "\02\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 1800) "\f8\06\00\00\02\00\00\00") + (data (i32.const 1808) "\n\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00") + (data (i32.const 1832) "\0c\00\00\00\00\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1864) "(\07\00\00\03\00\00\00") + (data (i32.const 1872) "\01\00\00\000\00") + (data (i32.const 1880) "\90\01\00\00\00\00\00\000\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\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\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2392) "X\07\00\00d\00\00\00") + (data (i32.const 2400) "\0c\00\00\00\00\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2432) "`\t\00\00\03\00\00\00") + (data (i32.const 2440) "\05\00\00\001\00-\002\00-\003\00") + (data (i32.const 2456) "\0c\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 2488) "\98\t\00\00\03\00\00\00") + (data (i32.const 2496) "\01\00\00\00-\00") + (data (i32.const 2504) "\0c\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 2536) "\c8\t\00\00\03\00\00\00") + (data (i32.const 2544) "\08\00\00\00\00\00\00\00\00\00\00\80\00\00\00\80") + (data (i32.const 2560) "\f0\t\00\00\02\00\00\00") + (data (i32.const 2568) "\02\00\00\00_\00_\00") + (data (i32.const 2576) "\08\00\00\00\00\00\00\00\00\00\00\80\00\00\00\80") + (data (i32.const 2592) "\10\n\00\00\02\00\00\00") + (data (i32.const 2600) "\18\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") + (data (i32.const 2656) "0\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\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") + (data (i32.const 2720) "`\n\00\00\06\00\00\00") + (data (i32.const 2728) "\02\00\00\00,\00 \00") + (data (i32.const 2736) "\03\00\00\000\00.\000\00") + (data (i32.const 2752) "\03\00\00\00N\00a\00N\00") + (data (i32.const 2768) "\t\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 2792) "\08\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 2816) "\b8\02\00\00\00\00\00\00\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#includes (; 27 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (set_local $3 - (i32.load offset=4 - (get_local $0) - ) - ) - (if - (if (result i32) - (tee_local $4 - (i32.eq - (get_local $3) - (i32.const 0) - ) - ) - (get_local $4) - (i32.ge_s - (get_local $2) - (get_local $3) - ) - ) - (return - (i32.const 0) - ) - ) - (if - (i32.lt_s - (get_local $2) - (i32.const 0) - ) - (set_local $2 - (select - (tee_local $4 - (i32.add - (get_local $3) - (get_local $2) - ) - ) - (tee_local $5 - (i32.const 0) - ) - (i32.gt_s - (get_local $4) - (get_local $5) - ) - ) - ) - ) - (set_local $6 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (loop $continue|0 - (if - (i32.lt_s - (get_local $2) - (get_local $3) - ) - (block - (block - (if - (i32.eq - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.8 (result i32) - (i32.load offset=8 - (i32.add - (get_local $6) - (i32.shl - (get_local $2) - (i32.const 2) - ) - ) - ) - ) - (get_local $1) - ) - (return - (i32.const 1) - ) - ) - (set_local $2 - (i32.add - (get_local $2) - (i32.const 1) - ) - ) - ) - (br $continue|0) - ) - ) - ) - ) - (i32.const 0) - ) - (func $~lib/array/Array#splice (; 28 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#splice (; 27 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4378,7 +4430,7 @@ ) ) ) - (func $~lib/array/Array#__set (; 29 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 28 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (set_local $3 @@ -4409,7 +4461,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) @@ -4453,13 +4505,13 @@ ) ) ) - (func $start~anonymous|1 (; 30 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|1 (; 29 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.eq (get_local $0) (i32.const 0) ) ) - (func $~lib/array/Array#findIndex (; 31 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 30 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4507,7 +4559,7 @@ (i32.const 3) ) (call_indirect (type $iiii) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.10 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.8 (result i32) (i32.load offset=8 (i32.add (get_local $2) @@ -4540,19 +4592,19 @@ ) (i32.const -1) ) - (func $start~anonymous|2 (; 32 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|2 (; 31 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.eq (get_local $0) (i32.const 1) ) ) - (func $start~anonymous|3 (; 33 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|3 (; 32 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.eq (get_local $0) (i32.const 100) ) ) - (func $start~anonymous|4 (; 34 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|4 (; 33 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -4564,13 +4616,13 @@ (i32.const 100) ) ) - (func $start~anonymous|5 (; 35 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|5 (; 34 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.eq (get_local $0) (i32.const 100) ) ) - (func $start~anonymous|6 (; 36 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|6 (; 35 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -4581,13 +4633,13 @@ (i32.const 100) ) ) - (func $start~anonymous|7 (; 37 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|7 (; 36 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.ge_s (get_local $0) (i32.const 0) ) ) - (func $~lib/array/Array#every (; 38 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 37 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4636,7 +4688,7 @@ (i32.const 3) ) (call_indirect (type $iiii) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.12 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.10 (result i32) (i32.load offset=8 (i32.add (get_local $2) @@ -4670,13 +4722,13 @@ ) (i32.const 1) ) - (func $start~anonymous|8 (; 39 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|8 (; 38 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.le_s (get_local $0) (i32.const 0) ) ) - (func $start~anonymous|9 (; 40 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|9 (; 39 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -4688,13 +4740,13 @@ (i32.const 10) ) ) - (func $start~anonymous|10 (; 41 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|10 (; 40 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.lt_s (get_local $0) (i32.const 10) ) ) - (func $start~anonymous|11 (; 42 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|11 (; 41 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -4705,13 +4757,13 @@ (i32.const 3) ) ) - (func $start~anonymous|12 (; 43 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|12 (; 42 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.ge_s (get_local $0) (i32.const 3) ) ) - (func $~lib/array/Array#some (; 44 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 43 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4759,7 +4811,7 @@ (i32.const 3) ) (call_indirect (type $iiii) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.14 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.12 (result i32) (i32.load offset=8 (i32.add (get_local $2) @@ -4792,13 +4844,13 @@ ) (i32.const 0) ) - (func $start~anonymous|13 (; 45 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|13 (; 44 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.le_s (get_local $0) (i32.const -1) ) ) - (func $start~anonymous|14 (; 46 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|14 (; 45 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -4810,13 +4862,13 @@ (i32.const 10) ) ) - (func $start~anonymous|15 (; 47 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|15 (; 46 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.gt_s (get_local $0) (i32.const 10) ) ) - (func $start~anonymous|16 (; 48 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|16 (; 47 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -4827,7 +4879,7 @@ (i32.const 3) ) ) - (func $start~anonymous|17 (; 49 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start~anonymous|17 (; 48 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (set_global $std/array/i (i32.add (get_global $std/array/i) @@ -4835,7 +4887,7 @@ ) ) ) - (func $~lib/array/Array#forEach (; 50 ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 49 ;) (type $iiv) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4881,7 +4933,7 @@ (i32.const 3) ) (call_indirect (type $iiiv) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.15 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.13 (result i32) (i32.load offset=8 (i32.add (get_local $2) @@ -4907,7 +4959,7 @@ ) ) ) - (func $start~anonymous|18 (; 51 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start~anonymous|18 (; 50 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -4921,7 +4973,7 @@ ) ) ) - (func $start~anonymous|19 (; 52 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start~anonymous|19 (; 51 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (set_global $std/array/i (i32.add (get_global $std/array/i) @@ -4929,7 +4981,7 @@ ) ) ) - (func $start~anonymous|20 (; 53 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start~anonymous|20 (; 52 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -4942,12 +4994,12 @@ ) ) ) - (func $start~anonymous|21 (; 54 ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start~anonymous|21 (; 53 ;) (type $iiif) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) (f32.convert_s/i32 (get_local $0) ) ) - (func $~lib/array/Array#constructor (; 55 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 54 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4961,7 +5013,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 23) + (i32.const 37) (i32.const 39) ) (unreachable) @@ -5027,7 +5079,7 @@ ) (get_local $0) ) - (func $~lib/array/Array#map (; 56 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 55 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5087,7 +5139,7 @@ (i32.const 3) ) (call_indirect (type $iiif) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.16 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.14 (result i32) (i32.load offset=8 (i32.add (get_local $2) @@ -5126,7 +5178,7 @@ ) (get_local $4) ) - (func $~lib/array/Array#__get (; 57 ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 56 ;) (type $iif) (param $0 i32) (param $1 i32) (result f32) (local $2 i32) (set_local $2 (i32.load @@ -5157,7 +5209,7 @@ (unreachable) ) ) - (func $start~anonymous|22 (; 58 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|22 (; 57 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -5172,7 +5224,7 @@ ) (get_local $0) ) - (func $~lib/array/Array#map (; 59 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 58 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5231,7 +5283,7 @@ (i32.const 3) ) (call_indirect (type $iiii) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.17 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.15 (result i32) (i32.load offset=8 (i32.add (get_local $2) @@ -5270,7 +5322,7 @@ ) (get_local $4) ) - (func $start~anonymous|23 (; 60 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|23 (; 59 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (set_global $std/array/i (i32.add (get_global $std/array/i) @@ -5279,7 +5331,7 @@ ) (get_local $0) ) - (func $start~anonymous|24 (; 61 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|24 (; 60 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -5293,13 +5345,13 @@ ) (get_local $0) ) - (func $start~anonymous|25 (; 62 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|25 (; 61 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (i32.ge_s (get_local $0) (i32.const 2) ) ) - (func $~lib/array/Array#filter (; 63 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 62 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5347,7 +5399,7 @@ ) (block (set_local $6 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.18 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.16 (result i32) (i32.load offset=8 (i32.add (get_local $2) @@ -5393,7 +5445,7 @@ ) (get_local $4) ) - (func $start~anonymous|26 (; 64 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|26 (; 63 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $2) @@ -5411,7 +5463,7 @@ (i32.const 2) ) ) - (func $start~anonymous|27 (; 65 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|27 (; 64 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (set_global $std/array/i (i32.add (get_global $std/array/i) @@ -5423,7 +5475,7 @@ (i32.const 2) ) ) - (func $start~anonymous|28 (; 66 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start~anonymous|28 (; 65 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $2) @@ -5440,13 +5492,13 @@ (i32.const 2) ) ) - (func $start~anonymous|29 (; 67 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|29 (; 66 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (i32.add (get_local $0) (get_local $1) ) ) - (func $~lib/array/Array#reduce (; 68 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 67 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5491,6 +5543,218 @@ ) ) ) + (set_local $3 + (block (result i32) + (set_global $~argc + (i32.const 4) + ) + (call_indirect (type $iiiii) + (get_local $3) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.17 (result i32) + (i32.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $5) + (i32.const 2) + ) + ) + ) + ) + (get_local $5) + (get_local $0) + (get_local $1) + ) + ) + ) + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (get_local $3) + ) + (func $start~anonymous|30 (; 68 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (i32.add + (get_local $0) + (get_local $1) + ) + ) + (func $start~anonymous|31 (; 69 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (if (result i32) + (i32.and + (get_local $0) + (i32.const 1) + ) + (get_local $0) + (i32.gt_s + (get_local $1) + (i32.const 2) + ) + ) + ) + (func $~lib/array/Array#reduce (; 70 ;) (type $iiii) (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) + (set_local $3 + (get_local $2) + ) + (set_local $4 + (i32.load + (get_local $0) + ) + ) + (block $break|0 + (block + (set_local $5 + (i32.const 0) + ) + (set_local $6 + (i32.load offset=4 + (get_local $0) + ) + ) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (if (result i32) + (tee_local $7 + (i32.lt_s + (get_local $5) + (get_local $6) + ) + ) + (i32.lt_s + (get_local $5) + (i32.load offset=4 + (get_local $0) + ) + ) + (get_local $7) + ) + ) + ) + (set_local $3 + (block (result i32) + (set_global $~argc + (i32.const 4) + ) + (call_indirect (type $iiiii) + (get_local $3) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.18 (result i32) + (i32.load offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $5) + (i32.const 2) + ) + ) + ) + ) + (get_local $5) + (get_local $0) + (get_local $1) + ) + ) + ) + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (get_local $3) + ) + (func $start~anonymous|32 (; 71 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (if (result i32) + (i32.and + (get_local $0) + (i32.const 1) + ) + (get_local $0) + (i32.gt_s + (get_local $1) + (i32.const 100) + ) + ) + ) + (func $start~anonymous|33 (; 72 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (drop + (call $~lib/array/Array#push + (get_local $3) + (i32.const 1) + ) + ) + (i32.add + (get_local $0) + (get_local $1) + ) + ) + (func $start~anonymous|34 (; 73 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (i32.add + (get_local $0) + (get_local $1) + ) + ) + (func $start~anonymous|35 (; 74 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (drop + (call $~lib/array/Array#pop + (get_local $3) + ) + ) + (i32.add + (get_local $0) + (get_local $1) + ) + ) + (func $start~anonymous|36 (; 75 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (i32.add + (get_local $0) + (get_local $1) + ) + ) + (func $~lib/array/Array#reduceRight (; 76 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (set_local $3 + (get_local $2) + ) + (set_local $4 + (i32.load + (get_local $0) + ) + ) + (block $break|0 + (set_local $5 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.ge_s + (get_local $5) + (i32.const 0) + ) + ) + ) (set_local $3 (block (result i32) (set_global $~argc @@ -5516,7 +5780,7 @@ ) ) (set_local $5 - (i32.add + (i32.sub (get_local $5) (i32.const 1) ) @@ -5526,13 +5790,13 @@ ) (get_local $3) ) - (func $start~anonymous|30 (; 69 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|37 (; 77 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (i32.add (get_local $0) (get_local $1) ) ) - (func $start~anonymous|31 (; 70 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|38 (; 78 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (if (result i32) (i32.and (get_local $0) @@ -5545,12 +5809,10 @@ ) ) ) - (func $~lib/array/Array#reduce (; 71 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 79 ;) (type $iiii) (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) (set_local $3 (get_local $2) ) @@ -5560,33 +5822,20 @@ ) ) (block $break|0 - (block - (set_local $5 - (i32.const 0) - ) - (set_local $6 + (set_local $5 + (i32.sub (i32.load offset=4 (get_local $0) ) + (i32.const 1) ) ) (loop $repeat|0 (br_if $break|0 (i32.eqz - (if (result i32) - (tee_local $7 - (i32.lt_s - (get_local $5) - (get_local $6) - ) - ) - (i32.lt_s - (get_local $5) - (i32.load offset=4 - (get_local $0) - ) - ) - (get_local $7) + (i32.ge_s + (get_local $5) + (i32.const 0) ) ) ) @@ -5615,7 +5864,7 @@ ) ) (set_local $5 - (i32.add + (i32.sub (get_local $5) (i32.const 1) ) @@ -5625,7 +5874,7 @@ ) (get_local $3) ) - (func $start~anonymous|32 (; 72 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|39 (; 80 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (if (result i32) (i32.and (get_local $0) @@ -5638,7 +5887,7 @@ ) ) ) - (func $start~anonymous|33 (; 73 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|40 (; 81 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (drop (call $~lib/array/Array#push (get_local $3) @@ -5650,13 +5899,13 @@ (get_local $1) ) ) - (func $start~anonymous|34 (; 74 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|41 (; 82 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (i32.add (get_local $0) (get_local $1) ) ) - (func $start~anonymous|35 (; 75 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start~anonymous|42 (; 83 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (drop (call $~lib/array/Array#pop (get_local $3) @@ -5667,204 +5916,7 @@ (get_local $1) ) ) - (func $start~anonymous|36 (; 76 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (func $~lib/array/Array#reduceRight (; 77 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $5 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - ) - ) - (set_local $3 - (block (result i32) - (set_global $~argc - (i32.const 4) - ) - (call_indirect (type $iiiii) - (get_local $3) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.21 (result i32) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - (get_local $5) - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $5 - (i32.sub - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $3) - ) - (func $start~anonymous|37 (; 78 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (func $start~anonymous|38 (; 79 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (if (result i32) - (i32.and - (get_local $0) - (i32.const 1) - ) - (get_local $0) - (i32.gt_s - (get_local $1) - (i32.const 2) - ) - ) - ) - (func $~lib/array/Array#reduceRight (; 80 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (set_local $3 - (get_local $2) - ) - (set_local $4 - (i32.load - (get_local $0) - ) - ) - (block $break|0 - (set_local $5 - (i32.sub - (i32.load offset=4 - (get_local $0) - ) - (i32.const 1) - ) - ) - (loop $repeat|0 - (br_if $break|0 - (i32.eqz - (i32.ge_s - (get_local $5) - (i32.const 0) - ) - ) - ) - (set_local $3 - (block (result i32) - (set_global $~argc - (i32.const 4) - ) - (call_indirect (type $iiiii) - (get_local $3) - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.22 (result i32) - (i32.load offset=8 - (i32.add - (get_local $4) - (i32.shl - (get_local $5) - (i32.const 2) - ) - ) - ) - ) - (get_local $5) - (get_local $0) - (get_local $1) - ) - ) - ) - (set_local $5 - (i32.sub - (get_local $5) - (i32.const 1) - ) - ) - (br $repeat|0) - ) - ) - (get_local $3) - ) - (func $start~anonymous|39 (; 81 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (if (result i32) - (i32.and - (get_local $0) - (i32.const 1) - ) - (get_local $0) - (i32.gt_s - (get_local $1) - (i32.const 100) - ) - ) - ) - (func $start~anonymous|40 (; 82 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (drop - (call $~lib/array/Array#push - (get_local $3) - (i32.const 1) - ) - ) - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (func $start~anonymous|41 (; 83 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (func $start~anonymous|42 (; 84 ;) (type $iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (drop - (call $~lib/array/Array#pop - (get_local $3) - ) - ) - (i32.add - (get_local $0) - (get_local $1) - ) - ) - (func $~lib/math/murmurHash3 (; 85 ;) (type $II) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 84 ;) (type $II) (param $0 i64) (result i64) (set_local $0 (i64.xor (get_local $0) @@ -5906,7 +5958,7 @@ ) (get_local $0) ) - (func $~lib/math/NativeMath.seedRandom (; 86 ;) (type $Iv) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 85 ;) (type $Iv) (param $0 i64) (if (i64.eqz (get_local $0) @@ -5935,7 +5987,7 @@ ) ) ) - (func $~lib/internal/array/insertionSort (; 87 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/insertionSort (; 86 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 f32) (local $6 i32) @@ -6088,10 +6140,10 @@ ) ) ) - (func $~lib/allocator/arena/__memory_free (; 88 ;) (type $iv) (param $0 i32) + (func $~lib/allocator/arena/__memory_free (; 87 ;) (type $iv) (param $0 i32) (nop) ) - (func $~lib/internal/array/weakHeapSort (; 89 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/weakHeapSort (; 88 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -6689,7 +6741,7 @@ ) ) ) - (func $~lib/array/Array#sort (; 90 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 89 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6703,7 +6755,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -6840,7 +6892,7 @@ (get_local $0) ) ) - (func $~lib/array/Array#sort|trampoline~anonymous|43 (; 91 ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|43 (; 90 ;) (type $ffi) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) (set_local $2 @@ -6888,7 +6940,7 @@ ) ) ) - (func $~lib/array/Array#sort|trampoline (; 92 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 91 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (block $1of1 (block $0of1 (block $outOfRange @@ -6911,13 +6963,13 @@ (get_local $1) ) ) - (func $~lib/builtins/isNaN (; 93 ;) (type $fi) (param $0 f32) (result i32) + (func $~lib/builtins/isNaN (; 92 ;) (type $fi) (param $0 f32) (result i32) (f32.ne (get_local $0) (get_local $0) ) ) - (func $std/array/isArraysEqual (; 94 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 93 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (if (i32.eqz @@ -7015,7 +7067,7 @@ ) (i32.const 1) ) - (func $~lib/internal/array/insertionSort (; 95 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/insertionSort (; 94 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 f64) (local $6 i32) @@ -7168,7 +7220,7 @@ ) ) ) - (func $~lib/internal/array/weakHeapSort (; 96 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/weakHeapSort (; 95 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -7766,7 +7818,7 @@ ) ) ) - (func $~lib/array/Array#sort (; 97 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 96 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7780,7 +7832,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -7917,7 +7969,7 @@ (get_local $0) ) ) - (func $~lib/array/Array#sort|trampoline~anonymous|44 (; 98 ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|44 (; 97 ;) (type $FFi) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) (set_local $2 @@ -7965,7 +8017,7 @@ ) ) ) - (func $~lib/array/Array#sort|trampoline (; 99 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 98 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (block $1of1 (block $0of1 (block $outOfRange @@ -7988,7 +8040,7 @@ (get_local $1) ) ) - (func $~lib/array/Array#__get (; 100 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 99 ;) (type $iiF) (param $0 i32) (param $1 i32) (result f64) (local $2 i32) (set_local $2 (i32.load @@ -8019,13 +8071,13 @@ (unreachable) ) ) - (func $~lib/builtins/isNaN (; 101 ;) (type $Fi) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 100 ;) (type $Fi) (param $0 f64) (result i32) (f64.ne (get_local $0) (get_local $0) ) ) - (func $std/array/isArraysEqual (; 102 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 101 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (if (i32.eqz @@ -8123,7 +8175,7 @@ ) (i32.const 1) ) - (func $~lib/internal/array/insertionSort (; 103 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/insertionSort (; 102 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -8276,7 +8328,7 @@ ) ) ) - (func $~lib/internal/array/weakHeapSort (; 104 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/weakHeapSort (; 103 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -8874,7 +8926,7 @@ ) ) ) - (func $~lib/array/Array#sort (; 105 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 104 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8888,7 +8940,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -8920,7 +8972,7 @@ ) (block (set_local $4 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.23 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.21 (result i32) (set_local $4 (i32.const 1) ) @@ -8936,7 +8988,7 @@ ) ) (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.24 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.22 (result i32) (set_local $5 (i32.const 0) ) @@ -9025,13 +9077,13 @@ (get_local $0) ) ) - (func $~lib/array/Array#sort|trampoline~anonymous|45 (; 106 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|45 (; 105 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $0) (get_local $1) ) ) - (func $~lib/array/Array#sort|trampoline (; 107 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 106 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (block $1of1 (block $0of1 (block $outOfRange @@ -9054,7 +9106,7 @@ (get_local $1) ) ) - (func $std/array/isArraysEqual (; 108 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 107 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (if (i32.eqz @@ -9131,7 +9183,7 @@ ) (i32.const 1) ) - (func $~lib/internal/array/insertionSort (; 109 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/insertionSort (; 108 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -9284,7 +9336,7 @@ ) ) ) - (func $~lib/internal/array/weakHeapSort (; 110 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/weakHeapSort (; 109 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -9882,7 +9934,7 @@ ) ) ) - (func $~lib/array/Array#sort (; 111 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 110 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9896,7 +9948,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -10033,7 +10085,7 @@ (get_local $0) ) ) - (func $~lib/array/Array#sort|trampoline~anonymous|46 (; 112 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline~anonymous|46 (; 111 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (i32.gt_u (get_local $0) @@ -10045,7 +10097,7 @@ ) ) ) - (func $~lib/array/Array#sort|trampoline (; 113 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 112 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (block $1of1 (block $0of1 (block $outOfRange @@ -10068,7 +10120,7 @@ (get_local $1) ) ) - (func $std/array/createReverseOrderedArray (; 114 ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 113 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (set_local $1 @@ -10120,7 +10172,7 @@ ) (get_local $1) ) - (func $~lib/math/NativeMath.random (; 115 ;) (type $F) (result f64) + (func $~lib/math/NativeMath.random (; 114 ;) (type $F) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -10202,7 +10254,7 @@ (f64.const 1) ) ) - (func $std/array/createRandomOrderedArray (; 116 ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 115 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (set_local $1 @@ -10255,13 +10307,13 @@ ) (get_local $1) ) - (func $std/array/assertSortedDefault~anonymous|47 (; 117 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/assertSortedDefault~anonymous|47 (; 116 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $0) (get_local $1) ) ) - (func $std/array/isSorted (; 118 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 117 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (block $break|0 @@ -10324,7 +10376,7 @@ ) (i32.const 1) ) - (func $std/array/assertSorted (; 119 ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 118 ;) (type $iiv) (param $0 i32) (param $1 i32) (if (i32.eqz (call $std/array/isSorted @@ -10346,7 +10398,7 @@ ) ) ) - (func $std/array/assertSortedDefault (; 120 ;) (type $iv) (param $0 i32) + (func $std/array/assertSortedDefault (; 119 ;) (type $iv) (param $0 i32) (call $std/array/assertSorted (get_local $0) (block $~lib/internal/array/defaultComparator|inlined.1 (result i32) @@ -10356,31 +10408,31 @@ ) ) ) - (func $start~anonymous|48 (; 121 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|48 (; 120 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $0) (get_local $1) ) ) - (func $start~anonymous|49 (; 122 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|49 (; 121 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $1) (get_local $0) ) ) - (func $start~anonymous|50 (; 123 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|50 (; 122 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $0) (get_local $1) ) ) - (func $start~anonymous|51 (; 124 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|51 (; 123 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (get_local $1) (get_local $0) ) ) - (func $~lib/array/Array>#constructor (; 125 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#constructor (; 124 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10394,7 +10446,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 23) + (i32.const 37) (i32.const 39) ) (unreachable) @@ -10460,7 +10512,7 @@ ) (get_local $0) ) - (func $~lib/array/Array>#__set (; 126 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 125 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (set_local $3 @@ -10491,7 +10543,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) @@ -10535,7 +10587,7 @@ ) ) ) - (func $~lib/array/Array>#__get (; 127 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (; 126 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (set_local $2 (i32.load @@ -10566,7 +10618,7 @@ (unreachable) ) ) - (func $std/array/createReverseOrderedNestedArray (; 128 ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 127 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (set_local $1 @@ -10631,7 +10683,7 @@ ) (get_local $1) ) - (func $start~anonymous|52 (; 129 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|52 (; 128 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (call $~lib/array/Array#__get (get_local $0) @@ -10643,7 +10695,7 @@ ) ) ) - (func $~lib/internal/array/insertionSort> (; 130 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/insertionSort> (; 129 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -10796,7 +10848,7 @@ ) ) ) - (func $~lib/array/Array>#sort (; 131 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 130 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10810,7 +10862,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -10935,7 +10987,7 @@ (get_local $0) ) ) - (func $std/array/isSorted> (; 132 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted> (; 131 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (block $break|0 @@ -10998,7 +11050,7 @@ ) (i32.const 1) ) - (func $std/array/assertSorted> (; 133 ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 132 ;) (type $iiv) (param $0 i32) (param $1 i32) (if (i32.eqz (call $std/array/isSorted> @@ -11020,7 +11072,7 @@ ) ) ) - (func $~lib/array/Array>#constructor (; 134 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#constructor (; 133 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11034,7 +11086,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 23) + (i32.const 37) (i32.const 39) ) (unreachable) @@ -11100,7 +11152,7 @@ ) (get_local $0) ) - (func $std/array/Proxy#constructor (; 135 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Proxy#constructor (; 134 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (tee_local $0 (if (result i32) @@ -11123,7 +11175,7 @@ ) ) ) - (func $~lib/array/Array>#__set (; 136 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 135 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (set_local $3 @@ -11154,7 +11206,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) @@ -11198,7 +11250,7 @@ ) ) ) - (func $std/array/createReverseOrderedElementsArray (; 137 ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 136 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (set_local $1 @@ -11253,7 +11305,7 @@ ) (get_local $1) ) - (func $start~anonymous|53 (; 138 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|53 (; 137 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (i32.load (get_local $0) @@ -11263,7 +11315,7 @@ ) ) ) - (func $~lib/internal/array/insertionSort> (; 139 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/insertionSort> (; 138 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -11416,7 +11468,7 @@ ) ) ) - (func $~lib/array/Array>#sort (; 140 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 139 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11430,7 +11482,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -11555,7 +11607,7 @@ (get_local $0) ) ) - (func $~lib/array/Array>#__get (; 141 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (; 140 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (set_local $2 (i32.load @@ -11586,7 +11638,7 @@ (unreachable) ) ) - (func $std/array/isSorted> (; 142 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted> (; 141 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (block $break|0 @@ -11649,7 +11701,7 @@ ) (i32.const 1) ) - (func $std/array/assertSorted> (; 143 ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 142 ;) (type $iiv) (param $0 i32) (param $1 i32) (if (i32.eqz (call $std/array/isSorted> @@ -11671,7 +11723,7 @@ ) ) ) - (func $~lib/internal/string/compareUnsafe (; 144 ;) (type $iiiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/internal/string/compareUnsafe (; 143 ;) (type $iiiiii) (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) @@ -11743,7 +11795,7 @@ ) (get_local $5) ) - (func $~lib/string/String.__gt (; 145 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 144 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11827,7 +11879,7 @@ (i32.const 0) ) ) - (func $~lib/string/String.__lt (; 146 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 145 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11911,7 +11963,7 @@ (i32.const 0) ) ) - (func $start~anonymous|54 (; 147 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|54 (; 146 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (call $~lib/string/String.__gt (get_local $0) @@ -11923,7 +11975,7 @@ ) ) ) - (func $~lib/internal/array/insertionSort (; 148 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (func $~lib/internal/array/insertionSort (; 147 ;) (type $iiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -12076,7 +12128,7 @@ ) ) ) - (func $~lib/array/Array#sort (; 149 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 148 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12090,7 +12142,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 330) + (i32.const 337) (i32.const 4) ) (unreachable) @@ -12215,7 +12267,7 @@ (get_local $0) ) ) - (func $~lib/array/Array#__get (; 150 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 149 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (set_local $2 (i32.load @@ -12246,7 +12298,7 @@ (unreachable) ) ) - (func $std/array/isSorted (; 151 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 150 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (block $break|0 @@ -12309,7 +12361,7 @@ ) (i32.const 1) ) - (func $std/array/assertSorted (; 152 ;) (type $iiv) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 151 ;) (type $iiv) (param $0 i32) (param $1 i32) (if (i32.eqz (call $std/array/isSorted @@ -12331,7 +12383,7 @@ ) ) ) - (func $~lib/string/String.__eq (; 153 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 152 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (if @@ -12387,7 +12439,7 @@ ) ) ) - (func $~lib/string/String.__ne (; 154 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 153 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.eqz (call $~lib/string/String.__eq (get_local $0) @@ -12395,7 +12447,7 @@ ) ) ) - (func $std/array/isArraysEqual (; 155 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 154 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (if (i32.eqz @@ -12472,7 +12524,7 @@ ) (i32.const 1) ) - (func $~lib/array/Array#constructor (; 156 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 155 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12486,7 +12538,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 23) + (i32.const 37) (i32.const 39) ) (unreachable) @@ -12552,7 +12604,7 @@ ) (get_local $0) ) - (func $~lib/internal/string/allocateUnsafe (; 157 ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/string/allocateUnsafe (; 156 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (if @@ -12605,7 +12657,7 @@ ) (get_local $2) ) - (func $~lib/string/String#charAt (; 158 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#charAt (; 157 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (if (i32.eqz @@ -12654,7 +12706,7 @@ ) (get_local $2) ) - (func $~lib/internal/string/copyUnsafe (; 159 ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) + (func $~lib/internal/string/copyUnsafe (; 158 ;) (type $iiiiiv) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -12696,7 +12748,7 @@ ) ) ) - (func $~lib/string/String#concat (; 160 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 159 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12773,7 +12825,7 @@ ) (get_local $5) ) - (func $~lib/string/String.__concat (; 161 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 160 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (if (i32.eqz (get_local $0) @@ -12787,7 +12839,7 @@ (get_local $1) ) ) - (func $std/array/createRandomString (; 162 ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 161 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -12843,7 +12895,7 @@ ) (get_local $1) ) - (func $~lib/array/Array#__set (; 163 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 162 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (set_local $3 @@ -12874,7 +12926,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 8) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) @@ -12918,7 +12970,7 @@ ) ) ) - (func $std/array/createRandomStringArray (; 164 ;) (type $ii) (param $0 i32) (result i32) + (func $std/array/createRandomStringArray (; 163 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (set_local $1 @@ -12967,7 +13019,7 @@ ) (get_local $1) ) - (func $start~anonymous|55 (; 165 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $start~anonymous|55 (; 164 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (i32.sub (call $~lib/string/String.__gt (get_local $0) @@ -12979,8 +13031,6933 @@ ) ) ) - (func $start (; 166 ;) (type $v) + (func $~lib/string/String#substring (; 165 ;) (type $iiii) (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) + (if + (i32.eqz + (i32.ne + (get_local $0) + (i32.const 0) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1616) + (i32.const 264) + (i32.const 4) + ) + (unreachable) + ) + ) + (set_local $3 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (select + (tee_local $4 + (select + (tee_local $4 + (get_local $1) + ) + (tee_local $5 + (i32.const 0) + ) + (i32.gt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (tee_local $5 + (get_local $3) + ) + (i32.lt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (set_local $7 + (select + (tee_local $4 + (select + (tee_local $4 + (get_local $2) + ) + (tee_local $5 + (i32.const 0) + ) + (i32.gt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (tee_local $5 + (get_local $3) + ) + (i32.lt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (set_local $8 + (select + (tee_local $4 + (get_local $6) + ) + (tee_local $5 + (get_local $7) + ) + (i32.lt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (set_local $9 + (select + (tee_local $4 + (get_local $6) + ) + (tee_local $5 + (get_local $7) + ) + (i32.gt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (set_local $3 + (i32.sub + (get_local $9) + (get_local $8) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (i32.const 1464) + ) + ) + (if + (if (result i32) + (tee_local $4 + (i32.eqz + (get_local $8) + ) + ) + (i32.eq + (get_local $9) + (i32.load + (get_local $0) + ) + ) + (get_local $4) + ) + (return + (get_local $0) + ) + ) + (set_local $10 + (call $~lib/internal/string/allocateUnsafe + (get_local $3) + ) + ) + (call $~lib/internal/string/copyUnsafe + (get_local $10) + (i32.const 0) + (get_local $0) + (get_local $8) + (get_local $3) + ) + (get_local $10) + ) + (func $~lib/array/Array#join (; 166 ;) (type $iii) (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (select + (i32.const 1744) + (i32.const 1760) + (i32.and + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 0) + ) + ) + ) + ) + (i32.const 1) + ) + ) + ) + ) + (set_local $8 + (i32.const 5) + ) + (set_local $9 + (i32.add + (i32.mul + (i32.add + (get_local $8) + (get_local $6) + ) + (get_local $2) + ) + (get_local $8) + ) + ) + (set_local $10 + (call $~lib/internal/string/allocateUnsafe + (get_local $9) + ) + ) + (set_local $11 + (i32.const 0) + ) + (block $break|0 + (set_local $12 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $12) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $12) + (i32.const 0) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.const 4) + (i32.eqz + (i32.and + (get_local $4) + (i32.const 1) + ) + ) + ) + ) + (call $~lib/internal/string/copyUnsafe + (get_local $10) + (get_local $11) + (select + (i32.const 1744) + (i32.const 1760) + (i32.and + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 0) + (get_local $8) + ) + (set_local $11 + (i32.add + (get_local $11) + (get_local $8) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $10) + (get_local $11) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $11 + (i32.add + (get_local $11) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $12 + (i32.add + (get_local $12) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 0) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.const 4) + (i32.eqz + (i32.and + (get_local $4) + (i32.const 1) + ) + ) + ) + ) + (call $~lib/internal/string/copyUnsafe + (get_local $10) + (get_local $11) + (select + (i32.const 1744) + (i32.const 1760) + (i32.and + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 0) + (get_local $8) + ) + (set_local $11 + (i32.add + (get_local $11) + (get_local $8) + ) + ) + (set_local $12 + (get_local $10) + ) + (if + (i32.gt_s + (get_local $9) + (get_local $11) + ) + (block + (set_local $12 + (call $~lib/string/String#substring + (get_local $10) + (i32.const 0) + (get_local $11) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.0 + (block + (if + (i32.eqz + (get_local $10) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.4 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $10) + ) + (br $~lib/memory/memory.free|inlined.4) + ) + ) + ) + ) + ) + ) + (return + (get_local $12) + ) + ) + (func $~lib/internal/number/decimalCount32 (; 167 ;) (type $ii) (param $0 i32) (result i32) + (local $1 i32) + (if + (i32.lt_u + (get_local $0) + (i32.const 100000) + ) + (block + (if + (i32.lt_u + (get_local $0) + (i32.const 100) + ) + (return + (select + (i32.const 1) + (i32.const 2) + (i32.lt_u + (get_local $0) + (i32.const 10) + ) + ) + ) + (block + (set_local $1 + (select + (i32.const 4) + (i32.const 5) + (i32.lt_u + (get_local $0) + (i32.const 10000) + ) + ) + ) + (return + (select + (i32.const 3) + (get_local $1) + (i32.lt_u + (get_local $0) + (i32.const 1000) + ) + ) + ) + ) + ) + (unreachable) + ) + (block + (if + (i32.lt_u + (get_local $0) + (i32.const 10000000) + ) + (return + (select + (i32.const 6) + (i32.const 7) + (i32.lt_u + (get_local $0) + (i32.const 1000000) + ) + ) + ) + (block + (set_local $1 + (select + (i32.const 9) + (i32.const 10) + (i32.lt_u + (get_local $0) + (i32.const 1000000000) + ) + ) + ) + (return + (select + (i32.const 8) + (get_local $1) + (i32.lt_u + (get_local $0) + (i32.const 100000000) + ) + ) + ) + ) + ) + (unreachable) + ) + ) + (unreachable) + ) + (func $~lib/internal/number/utoa32_lut (; 168 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (set_local $3 + (i32.load + (block $~lib/internal/number/DIGITS|inlined.0 (result i32) + (i32.const 2392) + ) + ) + ) + (block $break|0 + (loop $continue|0 + (if + (i32.ge_u + (get_local $1) + (i32.const 10000) + ) + (block + (block + (set_local $4 + (i32.div_u + (get_local $1) + (i32.const 10000) + ) + ) + (set_local $5 + (i32.rem_u + (get_local $1) + (i32.const 10000) + ) + ) + (set_local $1 + (get_local $4) + ) + (set_local $6 + (i32.div_u + (get_local $5) + (i32.const 100) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $5) + (i32.const 100) + ) + ) + (set_local $8 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $6) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $9 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $7) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (i64.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (i64.or + (get_local $8) + (i64.shl + (get_local $9) + (i64.const 32) + ) + ) + ) + ) + (br $continue|0) + ) + ) + ) + ) + (if + (i32.ge_u + (get_local $1) + (i32.const 100) + ) + (block + (set_local $7 + (i32.div_u + (get_local $1) + (i32.const 100) + ) + ) + (set_local $6 + (i32.rem_u + (get_local $1) + (i32.const 100) + ) + ) + (set_local $1 + (get_local $7) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 2) + ) + ) + (set_local $5 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) + (i32.load offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $6) + (i32.const 2) + ) + ) + ) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (get_local $5) + ) + ) + ) + (if + (i32.ge_u + (get_local $1) + (i32.const 10) + ) + (block + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 2) + ) + ) + (set_local $5 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i32) + (i32.load offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $1) + (i32.const 2) + ) + ) + ) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (get_local $5) + ) + ) + (block + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 1) + ) + ) + (set_local $5 + (i32.add + (get_global $~lib/internal/string/CharCode._0) + (get_local $1) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (get_local $5) + ) + ) + ) + ) + (func $~lib/internal/number/itoa32 (; 169 ;) (type $ii) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (if + (i32.eqz + (get_local $0) + ) + (return + (i32.const 1872) + ) + ) + (set_local $1 + (i32.lt_s + (get_local $0) + (i32.const 0) + ) + ) + (if + (get_local $1) + (set_local $0 + (i32.sub + (i32.const 0) + (get_local $0) + ) + ) + ) + (set_local $2 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $0) + ) + (get_local $1) + ) + ) + (set_local $3 + (call $~lib/internal/string/allocateUnsafe + (get_local $2) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.0 + (call $~lib/internal/number/utoa32_lut + (get_local $3) + (get_local $0) + (get_local $2) + ) + ) + (if + (get_local $1) + (i32.store16 offset=4 + (get_local $3) + (get_global $~lib/internal/string/CharCode.MINUS) + ) + ) + (get_local $3) + ) + (func $~lib/internal/number/itoa (; 170 ;) (type $ii) (param $0 i32) (result i32) + (return + (call $~lib/internal/number/itoa32 + (get_local $0) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 171 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode._0) + ) + (return + (i32.const 1) + ) + ) + ) + (set_local $3 + (i32.const 0) + ) + (set_local $4 + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + ) + (if + (get_local $4) + (set_local $2 + (i32.sub + (i32.const 0) + (get_local $2) + ) + ) + ) + (set_local $3 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $2) + ) + (get_local $4) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.1 + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $2) + (get_local $3) + ) + ) + (if + (get_local $4) + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode.MINUS) + ) + ) + (get_local $3) + ) + (func $~lib/array/Array#join (; 172 ;) (type $iii) (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (call $~lib/internal/number/itoa + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.23 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.mul + (i32.add + (i32.const 11) + (get_local $6) + ) + (get_local $2) + ) + (i32.const 11) + ) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (get_local $8) + ) + ) + (set_local $10 + (i32.const 0) + ) + (block $break|0 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.24 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.25 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (set_local $11 + (get_local $9) + ) + (if + (i32.gt_s + (get_local $8) + (get_local $10) + ) + (block + (set_local $11 + (call $~lib/string/String#substring + (get_local $9) + (i32.const 0) + (get_local $10) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.1 + (block + (if + (i32.eqz + (get_local $9) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.5 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $9) + ) + (br $~lib/memory/memory.free|inlined.5) + ) + ) + ) + ) + ) + ) + (return + (get_local $11) + ) + ) + (func $~lib/internal/number/utoa32 (; 173 ;) (type $ii) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (if + (i32.eqz + (get_local $0) + ) + (return + (i32.const 1872) + ) + ) + (set_local $1 + (call $~lib/internal/number/decimalCount32 + (get_local $0) + ) + ) + (set_local $2 + (call $~lib/internal/string/allocateUnsafe + (get_local $1) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.2 + (call $~lib/internal/number/utoa32_lut + (get_local $2) + (get_local $0) + (get_local $1) + ) + ) + (get_local $2) + ) + (func $~lib/internal/number/itoa (; 174 ;) (type $ii) (param $0 i32) (result i32) + (return + (call $~lib/internal/number/utoa32 + (get_local $0) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 175 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode._0) + ) + (return + (i32.const 1) + ) + ) + ) + (set_local $3 + (i32.const 0) + ) + (set_local $3 + (call $~lib/internal/number/decimalCount32 + (get_local $2) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.3 + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $2) + (get_local $3) + ) + ) + (get_local $3) + ) + (func $~lib/array/Array#join (; 176 ;) (type $iii) (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (call $~lib/internal/number/itoa + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.mul + (i32.add + (i32.const 10) + (get_local $6) + ) + (get_local $2) + ) + (i32.const 10) + ) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (get_local $8) + ) + ) + (set_local $10 + (i32.const 0) + ) + (block $break|0 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.7 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (set_local $11 + (get_local $9) + ) + (if + (i32.gt_s + (get_local $8) + (get_local $10) + ) + (block + (set_local $11 + (call $~lib/string/String#substring + (get_local $9) + (i32.const 0) + (get_local $10) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.2 + (block + (if + (i32.eqz + (get_local $9) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.6 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $9) + ) + (br $~lib/memory/memory.free|inlined.6) + ) + ) + ) + ) + ) + ) + (return + (get_local $11) + ) + ) + (func $~lib/builtins/isFinite (; 177 ;) (type $Fi) (param $0 f64) (result i32) + (f64.eq + (f64.sub + (get_local $0) + (get_local $0) + ) + (f64.const 0) + ) + ) + (func $~lib/internal/number/genDigits (; 178 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i64) + (local $20 i64) + (local $21 i32) + (local $22 i32) + (set_local $7 + (i32.sub + (i32.const 0) + (get_local $4) + ) + ) + (set_local $8 + (i64.shl + (i64.const 1) + (i64.extend_s/i32 + (get_local $7) + ) + ) + ) + (set_local $9 + (i64.sub + (get_local $8) + (i64.const 1) + ) + ) + (set_local $10 + (i64.sub + (get_local $3) + (get_local $1) + ) + ) + (set_local $11 + (get_local $4) + ) + (set_local $12 + (i32.wrap/i64 + (i64.shr_u + (get_local $3) + (i64.extend_s/i32 + (get_local $7) + ) + ) + ) + ) + (set_local $13 + (i64.and + (get_local $3) + (get_local $9) + ) + ) + (set_local $14 + (call $~lib/internal/number/decimalCount32 + (get_local $12) + ) + ) + (set_local $15 + (get_local $6) + ) + (set_local $16 + (i32.load + (block $~lib/internal/number/POWERS10|inlined.0 (result i32) + (i32.const 4176) + ) + ) + ) + (block $break|0 + (loop $continue|0 + (if + (i32.gt_s + (get_local $14) + (i32.const 0) + ) + (block + (block + (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 + (set_local $18 + (get_local $14) + ) + (br_if $case0|1 + (i32.eq + (get_local $18) + (i32.const 10) + ) + ) + (br_if $case1|1 + (i32.eq + (get_local $18) + (i32.const 9) + ) + ) + (br_if $case2|1 + (i32.eq + (get_local $18) + (i32.const 8) + ) + ) + (br_if $case3|1 + (i32.eq + (get_local $18) + (i32.const 7) + ) + ) + (br_if $case4|1 + (i32.eq + (get_local $18) + (i32.const 6) + ) + ) + (br_if $case5|1 + (i32.eq + (get_local $18) + (i32.const 5) + ) + ) + (br_if $case6|1 + (i32.eq + (get_local $18) + (i32.const 4) + ) + ) + (br_if $case7|1 + (i32.eq + (get_local $18) + (i32.const 3) + ) + ) + (br_if $case8|1 + (i32.eq + (get_local $18) + (i32.const 2) + ) + ) + (br_if $case9|1 + (i32.eq + (get_local $18) + (i32.const 1) + ) + ) + (br $case10|1) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 1000000000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 1000000000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 100000000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 100000000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 10000000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 10000000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 1000000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 1000000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 100000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 100000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 10000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 10000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 1000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 1000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 100) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 100) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 10) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 10) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (get_local $12) + ) + (set_local $12 + (i32.const 0) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.const 0) + ) + (br $break|1) + ) + ) + (if + (i32.or + (get_local $17) + (get_local $15) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (block (result i32) + (set_local $18 + (get_local $15) + ) + (set_local $15 + (i32.add + (get_local $18) + (i32.const 1) + ) + ) + (get_local $18) + ) + (i32.const 1) + ) + ) + (i32.add + (get_global $~lib/internal/string/CharCode._0) + (i32.and + (get_local $17) + (i32.const 65535) + ) + ) + ) + ) + (set_local $14 + (i32.sub + (get_local $14) + (i32.const 1) + ) + ) + (set_local $19 + (i64.add + (i64.shl + (i64.extend_u/i32 + (get_local $12) + ) + (i64.extend_s/i32 + (get_local $7) + ) + ) + (get_local $13) + ) + ) + (if + (i64.le_u + (get_local $19) + (get_local $5) + ) + (block + (set_global $~lib/internal/number/_K + (i32.add + (get_global $~lib/internal/number/_K) + (get_local $14) + ) + ) + (block $~lib/internal/number/grisuRound|inlined.0 + (set_local $20 + (i64.shl + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) + (i64.load32_u offset=8 + (i32.add + (get_local $16) + (i32.shl + (get_local $14) + (i32.const 2) + ) + ) + ) + ) + (i64.extend_s/i32 + (get_local $7) + ) + ) + ) + (set_local $18 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $15) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (set_local $21 + (i32.load16_u offset=4 + (get_local $18) + ) + ) + (block $break|2 + (loop $continue|2 + (if + (if (result i32) + (tee_local $22 + (if (result i32) + (tee_local $22 + (i64.lt_u + (get_local $19) + (get_local $10) + ) + ) + (i64.ge_u + (i64.sub + (get_local $5) + (get_local $19) + ) + (get_local $20) + ) + (get_local $22) + ) + ) + (if (result i32) + (tee_local $22 + (i64.lt_u + (i64.add + (get_local $19) + (get_local $20) + ) + (get_local $10) + ) + ) + (get_local $22) + (i64.gt_u + (i64.sub + (get_local $10) + (get_local $19) + ) + (i64.sub + (i64.add + (get_local $19) + (get_local $20) + ) + (get_local $10) + ) + ) + ) + (get_local $22) + ) + (block + (block + (set_local $21 + (i32.sub + (get_local $21) + (i32.const 1) + ) + ) + (set_local $19 + (i64.add + (get_local $19) + (get_local $20) + ) + ) + ) + (br $continue|2) + ) + ) + ) + ) + (i32.store16 offset=4 + (get_local $18) + (get_local $21) + ) + ) + (return + (get_local $15) + ) + ) + ) + ) + (br $continue|0) + ) + ) + ) + ) + (block $break|3 + (loop $continue|3 + (if + (i32.const 1) + (block + (block + (set_local $13 + (i64.mul + (get_local $13) + (i64.const 10) + ) + ) + (set_local $5 + (i64.mul + (get_local $5) + (i64.const 10) + ) + ) + (set_local $19 + (i64.shr_u + (get_local $13) + (i64.extend_s/i32 + (get_local $7) + ) + ) + ) + (if + (i64.ne + (i64.or + (get_local $19) + (i64.extend_s/i32 + (get_local $15) + ) + ) + (i64.const 0) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (block (result i32) + (set_local $17 + (get_local $15) + ) + (set_local $15 + (i32.add + (get_local $17) + (i32.const 1) + ) + ) + (get_local $17) + ) + (i32.const 1) + ) + ) + (i32.add + (get_global $~lib/internal/string/CharCode._0) + (i32.and + (i32.wrap/i64 + (get_local $19) + ) + (i32.const 65535) + ) + ) + ) + ) + (set_local $13 + (i64.and + (get_local $13) + (get_local $9) + ) + ) + (set_local $14 + (i32.sub + (get_local $14) + (i32.const 1) + ) + ) + (if + (i64.lt_u + (get_local $13) + (get_local $5) + ) + (block + (set_global $~lib/internal/number/_K + (i32.add + (get_global $~lib/internal/number/_K) + (get_local $14) + ) + ) + (set_local $10 + (i64.mul + (get_local $10) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) + (set_local $17 + (i32.sub + (i32.const 0) + (get_local $14) + ) + ) + (i64.load32_u offset=8 + (i32.add + (get_local $16) + (i32.shl + (get_local $17) + (i32.const 2) + ) + ) + ) + ) + ) + ) + (block $~lib/internal/number/grisuRound|inlined.1 + (set_local $17 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $15) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (set_local $21 + (i32.load16_u offset=4 + (get_local $17) + ) + ) + (block $break|4 + (loop $continue|4 + (if + (if (result i32) + (tee_local $18 + (if (result i32) + (tee_local $18 + (i64.lt_u + (get_local $13) + (get_local $10) + ) + ) + (i64.ge_u + (i64.sub + (get_local $5) + (get_local $13) + ) + (get_local $8) + ) + (get_local $18) + ) + ) + (if (result i32) + (tee_local $18 + (i64.lt_u + (i64.add + (get_local $13) + (get_local $8) + ) + (get_local $10) + ) + ) + (get_local $18) + (i64.gt_u + (i64.sub + (get_local $10) + (get_local $13) + ) + (i64.sub + (i64.add + (get_local $13) + (get_local $8) + ) + (get_local $10) + ) + ) + ) + (get_local $18) + ) + (block + (block + (set_local $21 + (i32.sub + (get_local $21) + (i32.const 1) + ) + ) + (set_local $13 + (i64.add + (get_local $13) + (get_local $8) + ) + ) + ) + (br $continue|4) + ) + ) + ) + ) + (i32.store16 offset=4 + (get_local $17) + (get_local $21) + ) + ) + (return + (get_local $15) + ) + ) + ) + ) + (br $continue|3) + ) + ) + ) + ) + (get_local $15) + ) + (func $~lib/internal/number/prettify (; 179 ;) (type $iiii) (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) + (if + (i32.eqz + (get_local $2) + ) + (block + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (i32.or + (get_global $~lib/internal/string/CharCode.DOT) + (i32.shl + (get_global $~lib/internal/string/CharCode._0) + (i32.const 16) + ) + ) + ) + (return + (i32.add + (get_local $1) + (i32.const 2) + ) + ) + ) + ) + (set_local $3 + (i32.add + (get_local $1) + (get_local $2) + ) + ) + (if + (if (result i32) + (tee_local $4 + (i32.le_s + (get_local $1) + (get_local $3) + ) + ) + (i32.le_s + (get_local $3) + (i32.const 21) + ) + (get_local $4) + ) + (block + (block $break|0 + (set_local $4 + (get_local $1) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $4) + (get_local $3) + ) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + (get_global $~lib/internal/string/CharCode._0) + ) + (set_local $4 + (i32.add + (get_local $4) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) + (i32.or + (get_global $~lib/internal/string/CharCode.DOT) + (i32.shl + (get_global $~lib/internal/string/CharCode._0) + (i32.const 16) + ) + ) + ) + (return + (i32.add + (get_local $3) + (i32.const 2) + ) + ) + ) + (if + (if (result i32) + (tee_local $4 + (i32.gt_s + (get_local $3) + (i32.const 0) + ) + ) + (i32.le_s + (get_local $3) + (i32.const 21) + ) + (get_local $4) + ) + (block + (set_local $4 + (i32.add + (get_local $0) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) + ) + (block $~lib/memory/memory.copy|inlined.5 + (set_local $5 + (i32.add + (i32.add + (get_local $4) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + (i32.const 2) + ) + ) + (set_local $6 + (i32.add + (get_local $4) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + ) + (set_local $7 + (i32.shl + (i32.sub + (i32.const 0) + (get_local $2) + ) + (i32.const 1) + ) + ) + (call $~lib/internal/memory/memmove + (get_local $5) + (get_local $6) + (get_local $7) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) + (get_global $~lib/internal/string/CharCode.DOT) + ) + (return + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (if (result i32) + (tee_local $4 + (i32.lt_s + (i32.const -6) + (get_local $3) + ) + ) + (i32.le_s + (get_local $3) + (i32.const 0) + ) + (get_local $4) + ) + (block + (set_local $4 + (i32.sub + (i32.const 2) + (get_local $3) + ) + ) + (block $~lib/memory/memory.copy|inlined.6 + (set_local $7 + (i32.add + (i32.add + (get_local $0) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + ) + (set_local $6 + (i32.add + (get_local $0) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + ) + (set_local $5 + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (call $~lib/internal/memory/memmove + (get_local $7) + (get_local $6) + (get_local $5) + ) + ) + (i32.store offset=4 + (get_local $0) + (i32.or + (get_global $~lib/internal/string/CharCode._0) + (i32.shl + (get_global $~lib/internal/string/CharCode.DOT) + (i32.const 16) + ) + ) + ) + (block $break|1 + (set_local $5 + (i32.const 2) + ) + (loop $repeat|1 + (br_if $break|1 + (i32.eqz + (i32.lt_s + (get_local $5) + (get_local $4) + ) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $5) + (i32.const 1) + ) + ) + (get_global $~lib/internal/string/CharCode._0) + ) + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br $repeat|1) + ) + ) + (return + (i32.add + (get_local $1) + (get_local $4) + ) + ) + ) + (if + (i32.eq + (get_local $1) + (i32.const 1) + ) + (block + (i32.store16 offset=6 + (get_local $0) + (get_global $~lib/internal/string/CharCode.e) + ) + (set_local $1 + (block $~lib/internal/number/genExponent|inlined.0 (result i32) + (set_local $4 + (i32.add + (get_local $0) + (i32.const 4) + ) + ) + (set_local $5 + (i32.sub + (get_local $3) + (i32.const 1) + ) + ) + (set_local $6 + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + (if + (get_local $6) + (set_local $5 + (i32.sub + (i32.const 0) + (get_local $5) + ) + ) + ) + (set_local $7 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $5) + ) + (i32.const 1) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.4 + (call $~lib/internal/number/utoa32_lut + (get_local $4) + (get_local $5) + (get_local $7) + ) + ) + (i32.store16 offset=4 + (get_local $4) + (select + (get_global $~lib/internal/string/CharCode.MINUS) + (get_global $~lib/internal/string/CharCode.PLUS) + (get_local $6) + ) + ) + (get_local $7) + ) + ) + (return + (i32.add + (get_local $1) + (i32.const 2) + ) + ) + ) + (block + (set_local $7 + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (block $~lib/memory/memory.copy|inlined.7 + (set_local $6 + (i32.add + (i32.add + (get_local $0) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + (i32.const 4) + ) + ) + (set_local $5 + (i32.add + (i32.add + (get_local $0) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + (i32.const 2) + ) + ) + (set_local $4 + (i32.sub + (get_local $7) + (i32.const 2) + ) + ) + (call $~lib/internal/memory/memmove + (get_local $6) + (get_local $5) + (get_local $4) + ) + ) + (i32.store16 offset=6 + (get_local $0) + (get_global $~lib/internal/string/CharCode.DOT) + ) + (i32.store16 offset=6 + (i32.add + (get_local $0) + (get_local $7) + ) + (get_global $~lib/internal/string/CharCode.e) + ) + (set_local $1 + (i32.add + (get_local $1) + (block $~lib/internal/number/genExponent|inlined.1 (result i32) + (set_local $4 + (i32.add + (i32.add + (get_local $0) + (get_local $7) + ) + (i32.const 4) + ) + ) + (set_local $5 + (i32.sub + (get_local $3) + (i32.const 1) + ) + ) + (set_local $6 + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + (if + (get_local $6) + (set_local $5 + (i32.sub + (i32.const 0) + (get_local $5) + ) + ) + ) + (set_local $8 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $5) + ) + (i32.const 1) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.5 + (call $~lib/internal/number/utoa32_lut + (get_local $4) + (get_local $5) + (get_local $8) + ) + ) + (i32.store16 offset=4 + (get_local $4) + (select + (get_global $~lib/internal/string/CharCode.MINUS) + (get_global $~lib/internal/string/CharCode.PLUS) + (get_local $6) + ) + ) + (get_local $8) + ) + ) + ) + (return + (i32.add + (get_local $1) + (i32.const 2) + ) + ) + ) + ) + ) + ) + ) + (unreachable) + ) + (func $~lib/internal/number/dtoa_core (; 180 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 i64) + (local $16 i64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i32) + (set_local $2 + (f64.lt + (get_local $1) + (f64.const 0) + ) + ) + (if + (get_local $2) + (block + (set_local $1 + (f64.neg + (get_local $1) + ) + ) + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode.MINUS) + ) + ) + ) + (set_local $24 + (block $~lib/internal/number/grisu2|inlined.0 (result i32) + (set_local $3 + (i64.reinterpret/f64 + (get_local $1) + ) + ) + (set_local $4 + (i32.wrap/i64 + (i64.shr_u + (i64.and + (get_local $3) + (i64.const 9218868437227405312) + ) + (i64.const 52) + ) + ) + ) + (set_local $5 + (i64.and + (get_local $3) + (i64.const 4503599627370495) + ) + ) + (set_local $6 + (i64.add + (i64.shl + (i64.extend_u/i32 + (i32.ne + (get_local $4) + (i32.const 0) + ) + ) + (i64.const 52) + ) + (get_local $5) + ) + ) + (set_local $4 + (i32.sub + (select + (get_local $4) + (i32.const 1) + (i32.ne + (get_local $4) + (i32.const 0) + ) + ) + (i32.add + (i32.const 1023) + (i32.const 52) + ) + ) + ) + (block $~lib/internal/number/normalizedBoundaries|inlined.0 + (set_local $7 + (i64.add + (i64.shl + (get_local $6) + (i64.const 1) + ) + (i64.const 1) + ) + ) + (set_local $8 + (i32.sub + (get_local $4) + (i32.const 1) + ) + ) + (set_local $9 + (i32.wrap/i64 + (i64.clz + (get_local $7) + ) + ) + ) + (set_local $7 + (i64.shl + (get_local $7) + (i64.extend_s/i32 + (get_local $9) + ) + ) + ) + (set_local $8 + (i32.sub + (get_local $8) + (get_local $9) + ) + ) + (set_local $10 + (i32.add + (i32.const 1) + (i64.eq + (get_local $6) + (i64.const 4503599627370496) + ) + ) + ) + (set_global $~lib/internal/number/_frc_plus + (get_local $7) + ) + (set_global $~lib/internal/number/_frc_minus + (i64.shl + (i64.sub + (i64.shl + (get_local $6) + (i64.extend_s/i32 + (get_local $10) + ) + ) + (i64.const 1) + ) + (i64.extend_s/i32 + (i32.sub + (i32.sub + (get_local $4) + (get_local $10) + ) + (get_local $8) + ) + ) + ) + ) + (set_global $~lib/internal/number/_exp + (get_local $8) + ) + ) + (block $~lib/internal/number/getCachedPower|inlined.0 + (set_local $10 + (get_global $~lib/internal/number/_exp) + ) + (set_local $11 + (f64.add + (f64.mul + (f64.convert_s/i32 + (i32.sub + (i32.const -61) + (get_local $10) + ) + ) + (f64.const 0.30102999566398114) + ) + (f64.const 347) + ) + ) + (set_local $9 + (i32.trunc_s/f64 + (get_local $11) + ) + ) + (set_local $9 + (i32.add + (get_local $9) + (f64.ne + (f64.convert_s/i32 + (get_local $9) + ) + (get_local $11) + ) + ) + ) + (set_local $8 + (i32.add + (i32.shr_s + (get_local $9) + (i32.const 3) + ) + (i32.const 1) + ) + ) + (set_global $~lib/internal/number/_K + (i32.sub + (i32.const 348) + (i32.shl + (get_local $8) + (i32.const 3) + ) + ) + ) + (set_local $12 + (i32.load + (block $~lib/internal/number/FRC_POWERS|inlined.0 (result i32) + (i32.const 3840) + ) + ) + ) + (set_local $13 + (i32.load + (block $~lib/internal/number/EXP_POWERS|inlined.0 (result i32) + (i32.const 4104) + ) + ) + ) + (set_global $~lib/internal/number/_frc_pow + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) + (i64.load offset=8 + (i32.add + (get_local $12) + (i32.shl + (get_local $8) + (i32.const 3) + ) + ) + ) + ) + ) + (set_global $~lib/internal/number/_exp_pow + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + (i32.load16_s offset=8 + (i32.add + (get_local $13) + (i32.shl + (get_local $8) + (i32.const 1) + ) + ) + ) + ) + ) + ) + (set_local $13 + (i32.wrap/i64 + (i64.clz + (get_local $6) + ) + ) + ) + (set_local $6 + (i64.shl + (get_local $6) + (i64.extend_s/i32 + (get_local $13) + ) + ) + ) + (set_local $4 + (i32.sub + (get_local $4) + (get_local $13) + ) + ) + (set_local $7 + (get_global $~lib/internal/number/_frc_pow) + ) + (set_local $12 + (get_global $~lib/internal/number/_exp_pow) + ) + (set_local $20 + (block $~lib/internal/number/umul64f|inlined.0 (result i64) + (set_local $14 + (i64.and + (get_local $6) + (i64.const 4294967295) + ) + ) + (set_local $15 + (i64.and + (get_local $7) + (i64.const 4294967295) + ) + ) + (set_local $16 + (i64.shr_u + (get_local $6) + (i64.const 32) + ) + ) + (set_local $17 + (i64.shr_u + (get_local $7) + (i64.const 32) + ) + ) + (set_local $18 + (i64.mul + (get_local $14) + (get_local $15) + ) + ) + (set_local $19 + (i64.add + (i64.mul + (get_local $16) + (get_local $15) + ) + (i64.shr_u + (get_local $18) + (i64.const 32) + ) + ) + ) + (set_local $20 + (i64.add + (i64.mul + (get_local $14) + (get_local $17) + ) + (i64.and + (get_local $19) + (i64.const 4294967295) + ) + ) + ) + (set_local $20 + (i64.add + (get_local $20) + (i64.const 2147483647) + ) + ) + (set_local $19 + (i64.shr_u + (get_local $19) + (i64.const 32) + ) + ) + (set_local $20 + (i64.shr_u + (get_local $20) + (i64.const 32) + ) + ) + (i64.add + (i64.add + (i64.mul + (get_local $16) + (get_local $17) + ) + (get_local $19) + ) + (get_local $20) + ) + ) + ) + (set_local $8 + (block $~lib/internal/number/umul64e|inlined.0 (result i32) + (i32.add + (i32.add + (get_local $4) + (get_local $12) + ) + (i32.const 64) + ) + ) + ) + (set_local $22 + (i64.sub + (block $~lib/internal/number/umul64f|inlined.1 (result i64) + (set_local $19 + (get_global $~lib/internal/number/_frc_plus) + ) + (set_local $18 + (i64.and + (get_local $19) + (i64.const 4294967295) + ) + ) + (set_local $17 + (i64.and + (get_local $7) + (i64.const 4294967295) + ) + ) + (set_local $16 + (i64.shr_u + (get_local $19) + (i64.const 32) + ) + ) + (set_local $15 + (i64.shr_u + (get_local $7) + (i64.const 32) + ) + ) + (set_local $14 + (i64.mul + (get_local $18) + (get_local $17) + ) + ) + (set_local $21 + (i64.add + (i64.mul + (get_local $16) + (get_local $17) + ) + (i64.shr_u + (get_local $14) + (i64.const 32) + ) + ) + ) + (set_local $22 + (i64.add + (i64.mul + (get_local $18) + (get_local $15) + ) + (i64.and + (get_local $21) + (i64.const 4294967295) + ) + ) + ) + (set_local $22 + (i64.add + (get_local $22) + (i64.const 2147483647) + ) + ) + (set_local $21 + (i64.shr_u + (get_local $21) + (i64.const 32) + ) + ) + (set_local $22 + (i64.shr_u + (get_local $22) + (i64.const 32) + ) + ) + (i64.add + (i64.add + (i64.mul + (get_local $16) + (get_local $15) + ) + (get_local $21) + ) + (get_local $22) + ) + ) + (i64.const 1) + ) + ) + (set_local $9 + (block $~lib/internal/number/umul64e|inlined.1 (result i32) + (set_local $9 + (get_global $~lib/internal/number/_exp) + ) + (i32.add + (i32.add + (get_local $9) + (get_local $12) + ) + (i32.const 64) + ) + ) + ) + (set_local $23 + (i64.add + (block $~lib/internal/number/umul64f|inlined.2 (result i64) + (set_local $21 + (get_global $~lib/internal/number/_frc_minus) + ) + (set_local $14 + (i64.and + (get_local $21) + (i64.const 4294967295) + ) + ) + (set_local $15 + (i64.and + (get_local $7) + (i64.const 4294967295) + ) + ) + (set_local $16 + (i64.shr_u + (get_local $21) + (i64.const 32) + ) + ) + (set_local $17 + (i64.shr_u + (get_local $7) + (i64.const 32) + ) + ) + (set_local $18 + (i64.mul + (get_local $14) + (get_local $15) + ) + ) + (set_local $19 + (i64.add + (i64.mul + (get_local $16) + (get_local $15) + ) + (i64.shr_u + (get_local $18) + (i64.const 32) + ) + ) + ) + (set_local $23 + (i64.add + (i64.mul + (get_local $14) + (get_local $17) + ) + (i64.and + (get_local $19) + (i64.const 4294967295) + ) + ) + ) + (set_local $23 + (i64.add + (get_local $23) + (i64.const 2147483647) + ) + ) + (set_local $19 + (i64.shr_u + (get_local $19) + (i64.const 32) + ) + ) + (set_local $23 + (i64.shr_u + (get_local $23) + (i64.const 32) + ) + ) + (i64.add + (i64.add + (i64.mul + (get_local $16) + (get_local $17) + ) + (get_local $19) + ) + (get_local $23) + ) + ) + (i64.const 1) + ) + ) + (set_local $19 + (i64.sub + (get_local $22) + (get_local $23) + ) + ) + (call $~lib/internal/number/genDigits + (get_local $0) + (get_local $20) + (get_local $8) + (get_local $22) + (get_local $9) + (get_local $19) + (get_local $2) + ) + ) + ) + (set_local $24 + (call $~lib/internal/number/prettify + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (i32.sub + (get_local $24) + (get_local $2) + ) + (get_global $~lib/internal/number/_K) + ) + ) + (i32.add + (get_local $24) + (get_local $2) + ) + ) + (func $~lib/internal/number/dtoa (; 181 ;) (type $Fi) (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (if + (f64.eq + (get_local $0) + (f64.const 0) + ) + (return + (i32.const 2736) + ) + ) + (if + (i32.eqz + (call $~lib/builtins/isFinite + (get_local $0) + ) + ) + (block + (if + (call $~lib/builtins/isNaN + (get_local $0) + ) + (return + (i32.const 2752) + ) + ) + (return + (select + (i32.const 2768) + (i32.const 2792) + (f64.lt + (get_local $0) + (f64.const 0) + ) + ) + ) + ) + ) + (set_local $1 + (call $~lib/internal/string/allocateUnsafe + (get_global $~lib/internal/number/MAX_DOUBLE_LENGTH) + ) + ) + (set_local $2 + (call $~lib/internal/number/dtoa_core + (get_local $1) + (get_local $0) + ) + ) + (set_local $3 + (call $~lib/string/String#substring + (get_local $1) + (i32.const 0) + (get_local $2) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.3 + (block + (if + (i32.eqz + (get_local $1) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.7 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $1) + ) + (br $~lib/memory/memory.free|inlined.7) + ) + ) + ) + ) + (get_local $3) + ) + (func $~lib/internal/number/dtoa_stream (; 182 ;) (type $iiFi) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (f64.eq + (get_local $2) + (f64.const 0) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode._0) + ) + (i32.store16 offset=6 + (get_local $0) + (get_global $~lib/internal/string/CharCode.DOT) + ) + (i32.store16 offset=8 + (get_local $0) + (get_global $~lib/internal/string/CharCode._0) + ) + (return + (i32.const 3) + ) + ) + ) + (if + (i32.eqz + (call $~lib/builtins/isFinite + (get_local $2) + ) + ) + (block + (if + (call $~lib/builtins/isNaN + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode.N) + ) + (i32.store16 offset=6 + (get_local $0) + (get_global $~lib/internal/string/CharCode.a) + ) + (i32.store16 offset=8 + (get_local $0) + (get_global $~lib/internal/string/CharCode.N) + ) + (return + (i32.const 3) + ) + ) + (block + (set_local $3 + (f64.lt + (get_local $2) + (f64.const 0) + ) + ) + (set_local $4 + (i32.add + (i32.const 8) + (get_local $3) + ) + ) + (set_local $5 + (select + (i32.const 2768) + (i32.const 2792) + (get_local $3) + ) + ) + (block $~lib/memory/memory.copy|inlined.8 + (set_local $6 + (i32.add + (get_local $0) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + ) + (set_local $7 + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + (call $~lib/internal/memory/memmove + (get_local $6) + (get_local $5) + (get_local $7) + ) + ) + (return + (get_local $4) + ) + ) + ) + (unreachable) + ) + ) + (call $~lib/internal/number/dtoa_core + (get_local $0) + (get_local $2) + ) + ) + (func $~lib/array/Array#join (; 183 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (call $~lib/internal/number/dtoa + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result f64) + (set_local $8 + (i32.const 0) + ) + (f64.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 3) + ) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.mul + (i32.add + (i32.const 28) + (get_local $6) + ) + (get_local $2) + ) + (i32.const 28) + ) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (get_local $8) + ) + ) + (set_local $10 + (i32.const 0) + ) + (block $break|0 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result f64) + (f64.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 3) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/dtoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result f64) + (f64.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 3) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/dtoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (set_local $11 + (get_local $9) + ) + (if + (i32.gt_s + (get_local $8) + (get_local $10) + ) + (block + (set_local $11 + (call $~lib/string/String#substring + (get_local $9) + (i32.const 0) + (get_local $10) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.4 + (block + (if + (i32.eqz + (get_local $9) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.8 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $9) + ) + (br $~lib/memory/memory.free|inlined.8) + ) + ) + ) + ) + ) + ) + (return + (get_local $11) + ) + ) + (func $~lib/array/Array#join (; 184 ;) (type $iii) (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.const 0) + ) + (block $break|0 + (block + (set_local $9 + (i32.const 0) + ) + (set_local $10 + (i32.add + (get_local $2) + (i32.const 1) + ) + ) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $9) + (get_local $10) + ) + ) + ) + (set_local $8 + (i32.add + (get_local $8) + (i32.load + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $9) + (i32.const 2) + ) + ) + ) + ) + ) + ) + ) + (set_local $9 + (i32.add + (get_local $9) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $10 + (i32.const 0) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (i32.add + (get_local $8) + (i32.mul + (get_local $6) + (get_local $2) + ) + ) + ) + ) + (block $break|1 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|1 + (br_if $break|1 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (block + (set_local $12 + (i32.load + (get_local $4) + ) + ) + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $4) + (i32.const 0) + (get_local $12) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $12) + ) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|1) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (block + (set_local $11 + (i32.load + (get_local $4) + ) + ) + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $4) + (i32.const 0) + (get_local $11) + ) + ) + ) + (return + (get_local $9) + ) + ) + (func $std/array/Ref#constructor (; 185 ;) (type $ii) (param $0 i32) (result i32) + (local $1 i32) + (tee_local $0 + (if (result i32) + (get_local $0) + (get_local $0) + (tee_local $0 + (block (result i32) + (set_local $1 + (call $~lib/memory/memory.allocate + (i32.const 0) + ) + ) + (get_local $1) + ) + ) + ) + ) + ) + (func $~lib/array/Array#constructor (; 186 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (if + (i32.gt_u + (get_local $1) + (i32.const 268435454) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 8) + (i32.const 37) + (i32.const 39) + ) + (unreachable) + ) + ) + (set_local $2 + (i32.shl + (get_local $1) + (i32.const 2) + ) + ) + (set_local $3 + (call $~lib/internal/arraybuffer/allocateUnsafe + (get_local $2) + ) + ) + (i32.store + (tee_local $0 + (if (result i32) + (get_local $0) + (get_local $0) + (tee_local $0 + (block (result i32) + (set_local $4 + (call $~lib/memory/memory.allocate + (i32.const 8) + ) + ) + (i32.store + (get_local $4) + (i32.const 0) + ) + (i32.store offset=4 + (get_local $4) + (i32.const 0) + ) + (get_local $4) + ) + ) + ) + ) + (get_local $3) + ) + (i32.store offset=4 + (get_local $0) + (get_local $1) + ) + (block $~lib/memory/memory.fill|inlined.12 + (set_local $4 + (i32.add + (get_local $3) + (get_global $~lib/internal/arraybuffer/HEADER_SIZE) + ) + ) + (set_local $5 + (i32.const 0) + ) + (call $~lib/internal/memory/memset + (get_local $4) + (get_local $5) + (get_local $2) + ) + ) + (get_local $0) + ) + (func $~lib/array/Array#__unchecked_set (; 187 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (block $~lib/internal/arraybuffer/storeUnsafe|inlined.0 + (set_local $3 + (i32.load + (get_local $0) + ) + ) + (i32.store offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $1) + (i32.const 2) + ) + ) + (get_local $2) + ) + ) + ) + (func $~lib/array/Array#join (; 188 ;) (type $iii) (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (i32.const 4432) + ) + ) + (set_local $8 + (i32.add + (i32.mul + (i32.add + (i32.const 15) + (get_local $6) + ) + (get_local $2) + ) + (i32.const 15) + ) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (get_local $8) + ) + ) + (set_local $10 + (i32.const 0) + ) + (block $break|0 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (i32.const 4432) + (i32.const 0) + (i32.const 15) + ) + (set_local $10 + (i32.add + (get_local $10) + (i32.const 15) + ) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (if + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 2) + ) + ) + ) + ) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (i32.const 4432) + (i32.const 0) + (i32.const 15) + ) + (set_local $10 + (i32.add + (get_local $10) + (i32.const 15) + ) + ) + ) + ) + (set_local $11 + (get_local $9) + ) + (if + (i32.gt_s + (get_local $8) + (get_local $10) + ) + (block + (set_local $11 + (call $~lib/string/String#substring + (get_local $9) + (i32.const 0) + (get_local $10) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.5 + (block + (if + (i32.eqz + (get_local $9) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.9 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $9) + ) + (br $~lib/memory/memory.free|inlined.9) + ) + ) + ) + ) + ) + ) + (return + (get_local $11) + ) + ) + (func $~lib/internal/number/itoa (; 189 ;) (type $ii) (param $0 i32) (result i32) + (return + (call $~lib/internal/number/itoa32 + (i32.shr_s + (i32.shl + (get_local $0) + (i32.const 24) + ) + (i32.const 24) + ) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 190 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (i32.shr_s + (i32.shl + (get_local $2) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode._0) + ) + (return + (i32.const 1) + ) + ) + ) + (set_local $3 + (i32.const 0) + ) + (set_local $4 + (i32.lt_s + (i32.shr_s + (i32.shl + (get_local $2) + (i32.const 24) + ) + (i32.const 24) + ) + (i32.const 0) + ) + ) + (if + (get_local $4) + (set_local $2 + (i32.sub + (i32.const 0) + (get_local $2) + ) + ) + ) + (set_local $3 + (i32.add + (call $~lib/internal/number/decimalCount32 + (i32.shr_s + (i32.shl + (get_local $2) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (get_local $4) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.6 + (set_local $5 + (i32.shr_s + (i32.shl + (get_local $2) + (i32.const 24) + ) + (i32.const 24) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $5) + (get_local $3) + ) + ) + (if + (get_local $4) + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode.MINUS) + ) + ) + (get_local $3) + ) + (func $~lib/array/Array#join (; 191 ;) (type $iii) (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (call $~lib/internal/number/itoa + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load8_s offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 0) + ) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.mul + (i32.add + (i32.const 11) + (get_local $6) + ) + (get_local $2) + ) + (i32.const 11) + ) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (get_local $8) + ) + ) + (set_local $10 + (i32.const 0) + ) + (block $break|0 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + (i32.load8_s offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 0) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + (i32.load8_s offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 0) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (set_local $11 + (get_local $9) + ) + (if + (i32.gt_s + (get_local $8) + (get_local $10) + ) + (block + (set_local $11 + (call $~lib/string/String#substring + (get_local $9) + (i32.const 0) + (get_local $10) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.6 + (block + (if + (i32.eqz + (get_local $9) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.10 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $9) + ) + (br $~lib/memory/memory.free|inlined.10) + ) + ) + ) + ) + ) + ) + (return + (get_local $11) + ) + ) + (func $~lib/internal/number/itoa (; 192 ;) (type $ii) (param $0 i32) (result i32) + (return + (call $~lib/internal/number/utoa32 + (i32.and + (get_local $0) + (i32.const 65535) + ) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 193 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (i32.and + (get_local $2) + (i32.const 65535) + ) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode._0) + ) + (return + (i32.const 1) + ) + ) + ) + (set_local $3 + (i32.const 0) + ) + (set_local $3 + (call $~lib/internal/number/decimalCount32 + (i32.and + (get_local $2) + (i32.const 65535) + ) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.7 + (set_local $4 + (i32.and + (get_local $2) + (i32.const 65535) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $4) + (get_local $3) + ) + ) + (get_local $3) + ) + (func $~lib/array/Array#join (; 194 ;) (type $iii) (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (call $~lib/internal/number/itoa + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load16_u offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 1) + ) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.mul + (i32.add + (i32.const 10) + (get_local $6) + ) + (get_local $2) + ) + (i32.const 10) + ) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (get_local $8) + ) + ) + (set_local $10 + (i32.const 0) + ) + (block $break|0 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + (i32.load16_u offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 1) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + (i32.load16_u offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (set_local $11 + (get_local $9) + ) + (if + (i32.gt_s + (get_local $8) + (get_local $10) + ) + (block + (set_local $11 + (call $~lib/string/String#substring + (get_local $9) + (i32.const 0) + (get_local $10) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.7 + (block + (if + (i32.eqz + (get_local $9) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.11 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $9) + ) + (br $~lib/memory/memory.free|inlined.11) + ) + ) + ) + ) + ) + ) + (return + (get_local $11) + ) + ) + (func $~lib/internal/number/decimalCount64 (; 195 ;) (type $Ii) (param $0 i64) (result i32) + (local $1 i32) + (if + (i64.lt_u + (get_local $0) + (i64.const 1000000000000000) + ) + (block + (if + (i64.lt_u + (get_local $0) + (i64.const 1000000000000) + ) + (return + (select + (i32.const 11) + (i32.const 12) + (i64.lt_u + (get_local $0) + (i64.const 100000000000) + ) + ) + ) + (block + (set_local $1 + (select + (i32.const 14) + (i32.const 15) + (i64.lt_u + (get_local $0) + (i64.const 100000000000000) + ) + ) + ) + (return + (select + (i32.const 13) + (get_local $1) + (i64.lt_u + (get_local $0) + (i64.const 10000000000000) + ) + ) + ) + ) + ) + (unreachable) + ) + (block + (if + (i64.lt_u + (get_local $0) + (i64.const 100000000000000000) + ) + (return + (select + (i32.const 16) + (i32.const 17) + (i64.lt_u + (get_local $0) + (i64.const 10000000000000000) + ) + ) + ) + (block + (set_local $1 + (select + (i32.const 19) + (i32.const 20) + (i64.lt_u + (get_local $0) + (i64.const -8446744073709551616) + ) + ) + ) + (return + (select + (i32.const 18) + (get_local $1) + (i64.lt_u + (get_local $0) + (i64.const 1000000000000000000) + ) + ) + ) + ) + ) + (unreachable) + ) + ) + (unreachable) + ) + (func $~lib/internal/number/utoa64_lut (; 196 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i64) + (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 i64) + (set_local $3 + (i32.load + (block $~lib/internal/number/DIGITS|inlined.1 (result i32) + (i32.const 5272) + ) + ) + ) + (block $break|0 + (loop $continue|0 + (if + (i64.ge_u + (get_local $1) + (i64.const 100000000) + ) + (block + (block + (set_local $4 + (i64.div_u + (get_local $1) + (i64.const 100000000) + ) + ) + (set_local $5 + (i32.wrap/i64 + (i64.sub + (get_local $1) + (i64.mul + (get_local $4) + (i64.const 100000000) + ) + ) + ) + ) + (set_local $1 + (get_local $4) + ) + (set_local $6 + (i32.div_u + (get_local $5) + (i32.const 10000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $5) + (i32.const 10000) + ) + ) + (set_local $8 + (i32.div_u + (get_local $6) + (i32.const 100) + ) + ) + (set_local $9 + (i32.rem_u + (get_local $6) + (i32.const 100) + ) + ) + (set_local $10 + (i32.div_u + (get_local $7) + (i32.const 100) + ) + ) + (set_local $11 + (i32.rem_u + (get_local $7) + (i32.const 100) + ) + ) + (set_local $12 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i64) + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $10) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $13 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i64) + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $11) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (i64.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (i64.or + (get_local $12) + (i64.shl + (get_local $13) + (i64.const 32) + ) + ) + ) + (set_local $12 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i64) + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $13 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.7 (result i64) + (i64.load32_u offset=8 + (i32.add + (get_local $3) + (i32.shl + (get_local $9) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $2 + (i32.sub + (get_local $2) + (i32.const 4) + ) + ) + (i64.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (i64.or + (get_local $12) + (i64.shl + (get_local $13) + (i64.const 32) + ) + ) + ) + ) + (br $continue|0) + ) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (i32.wrap/i64 + (get_local $1) + ) + (get_local $2) + ) + ) + (func $~lib/internal/number/utoa64 (; 197 ;) (type $Ii) (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (if + (i64.eqz + (get_local $0) + ) + (return + (i32.const 1872) + ) + ) + (if + (i64.le_u + (get_local $0) + (i64.extend_u/i32 + (get_global $~lib/builtins/u32.MAX_VALUE) + ) + ) + (block + (set_local $2 + (i32.wrap/i64 + (get_local $0) + ) + ) + (set_local $3 + (call $~lib/internal/number/decimalCount32 + (get_local $2) + ) + ) + (set_local $1 + (call $~lib/internal/string/allocateUnsafe + (get_local $3) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.8 + (call $~lib/internal/number/utoa32_lut + (get_local $1) + (get_local $2) + (get_local $3) + ) + ) + ) + (block + (set_local $3 + (call $~lib/internal/number/decimalCount64 + (get_local $0) + ) + ) + (set_local $1 + (call $~lib/internal/string/allocateUnsafe + (get_local $3) + ) + ) + (block $~lib/internal/number/utoa64_core|inlined.0 + (call $~lib/internal/number/utoa64_lut + (get_local $1) + (get_local $0) + (get_local $3) + ) + ) + ) + ) + (get_local $1) + ) + (func $~lib/internal/number/itoa (; 198 ;) (type $Ii) (param $0 i64) (result i32) + (return + (call $~lib/internal/number/utoa64 + (get_local $0) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 199 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (local $3 i32) + (local $4 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i64.eqz + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode._0) + ) + (return + (i32.const 1) + ) + ) + ) + (set_local $3 + (i32.const 0) + ) + (if + (i64.le_u + (get_local $2) + (i64.extend_u/i32 + (get_global $~lib/builtins/u32.MAX_VALUE) + ) + ) + (block + (set_local $4 + (i32.wrap/i64 + (get_local $2) + ) + ) + (set_local $3 + (call $~lib/internal/number/decimalCount32 + (get_local $4) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.9 + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $4) + (get_local $3) + ) + ) + ) + (block + (set_local $3 + (call $~lib/internal/number/decimalCount64 + (get_local $2) + ) + ) + (block $~lib/internal/number/utoa64_core|inlined.1 + (call $~lib/internal/number/utoa64_lut + (get_local $0) + (get_local $2) + (get_local $3) + ) + ) + ) + ) + (get_local $3) + ) + (func $~lib/array/Array#join (; 200 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (call $~lib/internal/number/itoa + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) + (set_local $8 + (i32.const 0) + ) + (i64.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 3) + ) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.mul + (i32.add + (i32.const 20) + (get_local $6) + ) + (get_local $2) + ) + (i32.const 20) + ) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (get_local $8) + ) + ) + (set_local $10 + (i32.const 0) + ) + (block $break|0 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) + (i64.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 3) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) + (i64.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 3) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (set_local $11 + (get_local $9) + ) + (if + (i32.gt_s + (get_local $8) + (get_local $10) + ) + (block + (set_local $11 + (call $~lib/string/String#substring + (get_local $9) + (i32.const 0) + (get_local $10) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.8 + (block + (if + (i32.eqz + (get_local $9) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.12 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $9) + ) + (br $~lib/memory/memory.free|inlined.12) + ) + ) + ) + ) + ) + ) + (return + (get_local $11) + ) + ) + (func $~lib/internal/number/itoa64 (; 201 ;) (type $Ii) (param $0 i64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (if + (i64.eqz + (get_local $0) + ) + (return + (i32.const 1872) + ) + ) + (set_local $1 + (i64.lt_s + (get_local $0) + (i64.const 0) + ) + ) + (if + (get_local $1) + (set_local $0 + (i64.sub + (i64.const 0) + (get_local $0) + ) + ) + ) + (if + (i64.le_u + (get_local $0) + (i64.extend_u/i32 + (get_global $~lib/builtins/u32.MAX_VALUE) + ) + ) + (block + (set_local $3 + (i32.wrap/i64 + (get_local $0) + ) + ) + (set_local $4 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $3) + ) + (get_local $1) + ) + ) + (set_local $2 + (call $~lib/internal/string/allocateUnsafe + (get_local $4) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.10 + (call $~lib/internal/number/utoa32_lut + (get_local $2) + (get_local $3) + (get_local $4) + ) + ) + ) + (block + (set_local $4 + (i32.add + (call $~lib/internal/number/decimalCount64 + (get_local $0) + ) + (get_local $1) + ) + ) + (set_local $2 + (call $~lib/internal/string/allocateUnsafe + (get_local $4) + ) + ) + (block $~lib/internal/number/utoa64_core|inlined.2 + (call $~lib/internal/number/utoa64_lut + (get_local $2) + (get_local $0) + (get_local $4) + ) + ) + ) + ) + (if + (get_local $1) + (i32.store16 offset=4 + (get_local $2) + (get_global $~lib/internal/string/CharCode.MINUS) + ) + ) + (get_local $2) + ) + (func $~lib/internal/number/itoa (; 202 ;) (type $Ii) (param $0 i64) (result i32) + (return + (call $~lib/internal/number/itoa64 + (get_local $0) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 203 ;) (type $iiIi) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i64.eqz + (get_local $2) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode._0) + ) + (return + (i32.const 1) + ) + ) + ) + (set_local $3 + (i32.const 0) + ) + (set_local $4 + (i64.lt_s + (get_local $2) + (i64.const 0) + ) + ) + (if + (get_local $4) + (set_local $2 + (i64.sub + (i64.const 0) + (get_local $2) + ) + ) + ) + (if + (i64.le_u + (get_local $2) + (i64.extend_u/i32 + (get_global $~lib/builtins/u32.MAX_VALUE) + ) + ) + (block + (set_local $5 + (i32.wrap/i64 + (get_local $2) + ) + ) + (set_local $3 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $5) + ) + (get_local $4) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.11 + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $5) + (get_local $3) + ) + ) + ) + (block + (set_local $3 + (i32.add + (call $~lib/internal/number/decimalCount64 + (get_local $2) + ) + (get_local $4) + ) + ) + (block $~lib/internal/number/utoa64_core|inlined.3 + (call $~lib/internal/number/utoa64_lut + (get_local $0) + (get_local $2) + (get_local $3) + ) + ) + ) + ) + (if + (get_local $4) + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode.MINUS) + ) + ) + (get_local $3) + ) + (func $~lib/array/Array#join (; 204 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (call $~lib/internal/number/itoa + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) + (set_local $8 + (i32.const 0) + ) + (i64.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 3) + ) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.mul + (i32.add + (i32.const 21) + (get_local $6) + ) + (get_local $2) + ) + (i32.const 21) + ) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (get_local $8) + ) + ) + (set_local $10 + (i32.const 0) + ) + (block $break|0 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i64) + (i64.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 3) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) + (i64.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 3) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (set_local $11 + (get_local $9) + ) + (if + (i32.gt_s + (get_local $8) + (get_local $10) + ) + (block + (set_local $11 + (call $~lib/string/String#substring + (get_local $9) + (i32.const 0) + (get_local $10) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.9 + (block + (if + (i32.eqz + (get_local $9) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.13 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $9) + ) + (br $~lib/memory/memory.free|inlined.13) + ) + ) + ) + ) + ) + ) + (return + (get_local $11) + ) + ) + (func $~lib/array/Array>#join (; 205 ;) (type $iii) (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) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.3 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + (return + (if (result i32) + (get_local $4) + (call $~lib/array/Array#join + (get_local $4) + (get_local $1) + ) + (i32.const 1464) + ) + ) + ) + ) + (block $break|0 + (set_local $8 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $8) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.4 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (call $~lib/array/Array#join + (get_local $4) + (get_local $1) + ) + ) + ) + ) + (if + (get_local $7) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (get_local $1) + ) + ) + ) + ) + (set_local $8 + (i32.add + (get_local $8) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.5 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (call $~lib/array/Array#join + (get_local $4) + (get_local $1) + ) + ) + ) + ) + (return + (get_local $3) + ) + ) + (func $~lib/internal/number/itoa (; 206 ;) (type $ii) (param $0 i32) (result i32) + (return + (call $~lib/internal/number/utoa32 + (i32.and + (get_local $0) + (i32.const 255) + ) + ) + ) + ) + (func $~lib/internal/number/itoa_stream (; 207 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (set_local $0 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (i32.eqz + (i32.and + (get_local $2) + (i32.const 255) + ) + ) + (block + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode._0) + ) + (return + (i32.const 1) + ) + ) + ) + (set_local $3 + (i32.const 0) + ) + (set_local $3 + (call $~lib/internal/number/decimalCount32 + (i32.and + (get_local $2) + (i32.const 255) + ) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.12 + (set_local $4 + (i32.and + (get_local $2) + (i32.const 255) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $0) + (get_local $4) + (get_local $3) + ) + ) + (get_local $3) + ) + (func $~lib/array/Array#join (; 208 ;) (type $iii) (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) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (return + (call $~lib/internal/number/itoa + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 0) + ) + ) + ) + ) + ) + ) + ) + (set_local $8 + (i32.add + (i32.mul + (i32.add + (i32.const 10) + (get_local $6) + ) + (get_local $2) + ) + (i32.const 10) + ) + ) + (set_local $9 + (call $~lib/internal/string/allocateUnsafe + (get_local $8) + ) + ) + (set_local $10 + (i32.const 0) + ) + (block $break|0 + (set_local $11 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $11) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $11) + (i32.const 0) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (if + (get_local $7) + (block + (call $~lib/internal/string/copyUnsafe + (get_local $9) + (get_local $10) + (get_local $1) + (i32.const 0) + (get_local $6) + ) + (set_local $10 + (i32.add + (get_local $10) + (get_local $6) + ) + ) + ) + ) + ) + (set_local $11 + (i32.add + (get_local $11) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i32) + (i32.load8_u offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 0) + ) + ) + ) + ) + ) + (set_local $10 + (i32.add + (get_local $10) + (call $~lib/internal/number/itoa_stream + (get_local $9) + (get_local $10) + (get_local $4) + ) + ) + ) + (set_local $11 + (get_local $9) + ) + (if + (i32.gt_s + (get_local $8) + (get_local $10) + ) + (block + (set_local $11 + (call $~lib/string/String#substring + (get_local $9) + (i32.const 0) + (get_local $10) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.10 + (block + (if + (i32.eqz + (get_local $9) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 1648) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.14 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $9) + ) + (br $~lib/memory/memory.free|inlined.14) + ) + ) + ) + ) + ) + ) + (return + (get_local $11) + ) + ) + (func $~lib/array/Array>#join (; 209 ;) (type $iii) (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) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.0 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + (return + (if (result i32) + (get_local $4) + (call $~lib/array/Array#join + (get_local $4) + (get_local $1) + ) + (i32.const 1464) + ) + ) + ) + ) + (block $break|0 + (set_local $8 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $8) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.1 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (call $~lib/array/Array#join + (get_local $4) + (get_local $1) + ) + ) + ) + ) + (if + (get_local $7) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (get_local $1) + ) + ) + ) + ) + (set_local $8 + (i32.add + (get_local $8) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.2 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (call $~lib/array/Array#join + (get_local $4) + (get_local $1) + ) + ) + ) + ) + (return + (get_local $3) + ) + ) + (func $~lib/array/Array>#join (; 210 ;) (type $iii) (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) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.0 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + (return + (if (result i32) + (get_local $4) + (call $~lib/array/Array#join + (get_local $4) + (get_local $1) + ) + (i32.const 1464) + ) + ) + ) + ) + (block $break|0 + (set_local $8 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $8) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.1 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (call $~lib/array/Array#join + (get_local $4) + (get_local $1) + ) + ) + ) + ) + (if + (get_local $7) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (get_local $1) + ) + ) + ) + ) + (set_local $8 + (i32.add + (get_local $8) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe,Array>|inlined.2 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (call $~lib/array/Array#join + (get_local $4) + (get_local $1) + ) + ) + ) + ) + (return + (get_local $3) + ) + ) + (func $~lib/array/Array>>#join (; 211 ;) (type $iii) (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) + (set_local $2 + (i32.sub + (i32.load offset=4 + (get_local $0) + ) + (i32.const 1) + ) + ) + (if + (i32.lt_s + (get_local $2) + (i32.const 0) + ) + (return + (i32.const 1464) + ) + ) + (set_local $3 + (i32.const 1464) + ) + (set_local $5 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (i32.load + (get_local $1) + ) + ) + (set_local $7 + (i32.ne + (get_local $6) + (i32.const 0) + ) + ) + (if + (i32.eqz + (get_local $2) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe>,Array>>|inlined.0 (result i32) + (set_local $8 + (i32.const 0) + ) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + (return + (if (result i32) + (get_local $4) + (call $~lib/array/Array>#join + (get_local $4) + (get_local $1) + ) + (i32.const 1464) + ) + ) + ) + ) + (block $break|0 + (set_local $8 + (i32.const 0) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $8) + (get_local $2) + ) + ) + ) + (block + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe>,Array>>|inlined.1 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $8) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (call $~lib/array/Array>#join + (get_local $4) + (get_local $1) + ) + ) + ) + ) + (if + (get_local $7) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (get_local $1) + ) + ) + ) + ) + (set_local $8 + (i32.add + (get_local $8) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (set_local $4 + (block $~lib/internal/arraybuffer/loadUnsafe>,Array>>|inlined.2 (result i32) + (i32.load offset=8 + (i32.add + (get_local $5) + (i32.shl + (get_local $2) + (i32.const 2) + ) + ) + ) + ) + ) + (if + (get_local $4) + (set_local $3 + (call $~lib/string/String.__concat + (get_local $3) + (call $~lib/array/Array>#join + (get_local $4) + (get_local $1) + ) + ) + ) + ) + (return + (get_local $3) + ) + ) + (func $start (; 212 ;) (type $v) (local $0 i32) + (local $1 i32) + (local $2 i32) (set_global $~lib/allocator/arena/startOffset (i32.and (i32.add @@ -14583,10 +21560,27 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 44) - (i32.const 0) + (i32.and + (block $~lib/array/Array#includes|inlined.0 (result i32) + (set_local $0 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 44) + ) + (set_local $2 + (i32.const 0) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $0) + (get_local $1) + (get_local $2) + ) + (i32.const 0) + ) + ) + (i32.const 1) ) ) (if @@ -14607,10 +21601,27 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 42) - (i32.const 0) + (i32.and + (block $~lib/array/Array#includes|inlined.1 (result i32) + (set_local $2 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 42) + ) + (set_local $0 + (i32.const 0) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $2) + (get_local $1) + (get_local $0) + ) + (i32.const 0) + ) + ) + (i32.const 1) ) ) (if @@ -14631,10 +21642,27 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 45) - (i32.const 0) + (i32.and + (block $~lib/array/Array#includes|inlined.2 (result i32) + (set_local $0 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 45) + ) + (set_local $2 + (i32.const 0) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $0) + (get_local $1) + (get_local $2) + ) + (i32.const 0) + ) + ) + (i32.const 1) ) ) (if @@ -14655,10 +21683,27 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const 100) + (i32.and + (block $~lib/array/Array#includes|inlined.3 (result i32) + (set_local $2 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 43) + ) + (set_local $0 + (i32.const 100) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $2) + (get_local $1) + (get_local $0) + ) + (i32.const 0) + ) + ) + (i32.const 1) ) ) (if @@ -14679,10 +21724,27 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const -100) + (i32.and + (block $~lib/array/Array#includes|inlined.4 (result i32) + (set_local $0 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 43) + ) + (set_local $2 + (i32.const -100) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $0) + (get_local $1) + (get_local $2) + ) + (i32.const 0) + ) + ) + (i32.const 1) ) ) (if @@ -14703,10 +21765,27 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const -2) + (i32.and + (block $~lib/array/Array#includes|inlined.5 (result i32) + (set_local $2 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 43) + ) + (set_local $0 + (i32.const -2) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $2) + (get_local $1) + (get_local $0) + ) + (i32.const 0) + ) + ) + (i32.const 1) ) ) (if @@ -14727,10 +21806,27 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const -4) + (i32.and + (block $~lib/array/Array#includes|inlined.6 (result i32) + (set_local $0 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 43) + ) + (set_local $2 + (i32.const -4) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $0) + (get_local $1) + (get_local $2) + ) + (i32.const 0) + ) + ) + (i32.const 1) ) ) (if @@ -14751,10 +21847,27 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const 0) + (i32.and + (block $~lib/array/Array#includes|inlined.7 (result i32) + (set_local $2 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 43) + ) + (set_local $0 + (i32.const 0) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $2) + (get_local $1) + (get_local $0) + ) + (i32.const 0) + ) + ) + (i32.const 1) ) ) (if @@ -14775,9 +21888,26 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) + (i32.and + (block $~lib/array/Array#includes|inlined.8 (result i32) + (set_local $0 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 43) + ) + (set_local $2 + (i32.const 1) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $0) + (get_local $1) + (get_local $2) + ) + (i32.const 0) + ) + ) (i32.const 1) ) ) @@ -14799,10 +21929,27 @@ ) ) (set_global $std/array/includes - (call $~lib/array/Array#includes - (get_global $std/array/arr) - (i32.const 43) - (i32.const 2) + (i32.and + (block $~lib/array/Array#includes|inlined.9 (result i32) + (set_local $2 + (get_global $std/array/arr) + ) + (set_local $1 + (i32.const 43) + ) + (set_local $0 + (i32.const 2) + ) + (i32.ge_s + (call $~lib/array/Array#indexOf + (get_local $2) + (get_local $1) + (get_local $0) + ) + (i32.const 0) + ) + ) + (i32.const 1) ) ) (if @@ -17009,7 +24156,502 @@ (get_global $std/array/randomStrings400) (i32.const 55) ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 1800) + (i32.const 1776) + ) + (i32.const 1808) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 738) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 2432) + (i32.const 1464) + ) + (i32.const 2440) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 739) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 2536) + (i32.const 2496) + ) + (i32.const 2440) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 740) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 2592) + (i32.const 2568) + ) + (i32.const 2600) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 741) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 4248) + (i32.const 2728) + ) + (i32.const 4256) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 742) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (i32.const 4424) + (i32.const 1464) + ) + (i32.const 4344) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 743) + (i32.const 0) + ) + (unreachable) + ) + ) + (set_global $std/array/refArr + (block (result i32) + (set_local $0 + (call $~lib/array/Array#constructor + (i32.const 0) + (i32.const 3) + ) + ) + (call $~lib/array/Array#__unchecked_set + (get_local $0) + (i32.const 0) + (call $std/array/Ref#constructor + (i32.const 0) + ) + ) + (call $~lib/array/Array#__unchecked_set + (get_local $0) + (i32.const 1) + (i32.const 0) + ) + (call $~lib/array/Array#__unchecked_set + (get_local $0) + (i32.const 2) + (call $std/array/Ref#constructor + (i32.const 0) + ) + ) + (get_local $0) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/array/Array#join + (get_global $std/array/refArr) + (i32.const 1776) + ) + (i32.const 4472) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 745) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.1 (result i32) + (set_local $0 + (get_global $std/array/reversed0) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 1464) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 749) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.3 (result i32) + (set_local $0 + (get_global $std/array/reversed1) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 4344) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 750) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.5 (result i32) + (set_local $0 + (get_global $std/array/reversed2) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 4544) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 751) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.7 (result i32) + (set_local $0 + (get_global $std/array/reversed4) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 4560) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 752) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.1 (result i32) + (set_local $0 + (i32.const 4624) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 4632) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 754) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.1 (result i32) + (set_local $0 + (i32.const 4688) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 4696) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 755) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.1 (result i32) + (set_local $0 + (i32.const 5312) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 5320) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 756) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.1 (result i32) + (set_local $0 + (i32.const 5512) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 5520) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 757) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.1 (result i32) + (set_local $0 + (get_global $std/array/randomStringsExpected) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 5608) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 758) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array#toString|inlined.3 (result i32) + (set_local $0 + (i32.const 5728) + ) + (call $~lib/array/Array#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 5736) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 759) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array>#toString|inlined.1 (result i32) + (set_local $0 + (get_global $std/array/subarr32) + ) + (call $~lib/array/Array>#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 5824) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 762) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array>#toString|inlined.1 (result i32) + (set_local $0 + (get_global $std/array/subarr8) + ) + (call $~lib/array/Array>#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 5824) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 765) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (block $~lib/array/Array>>#toString|inlined.1 (result i32) + (set_local $0 + (get_global $std/array/subarrU32) + ) + (call $~lib/array/Array>>#join + (get_local $0) + (i32.const 1776) + ) + ) + (i32.const 4344) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 152) + (i32.const 768) + (i32.const 0) + ) + (unreachable) + ) + ) ) - (func $null (; 167 ;) (type $v) + (func $null (; 213 ;) (type $v) ) ) diff --git a/tests/compiler/std/gc-array.optimized.wat b/tests/compiler/std/gc-array.optimized.wat index b802ffb5..e0cc7de6 100644 --- a/tests/compiler/std/gc-array.optimized.wat +++ b/tests/compiler/std/gc-array.optimized.wat @@ -2774,7 +2774,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 72) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) diff --git a/tests/compiler/std/gc-array.untouched.wat b/tests/compiler/std/gc-array.untouched.wat index ec50f287..5fa977fc 100644 --- a/tests/compiler/std/gc-array.untouched.wat +++ b/tests/compiler/std/gc-array.untouched.wat @@ -3478,7 +3478,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 72) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) diff --git a/tests/compiler/std/static-array.untouched.wat b/tests/compiler/std/static-array.untouched.wat index 4aafc7b8..52aca273 100644 --- a/tests/compiler/std/static-array.untouched.wat +++ b/tests/compiler/std/static-array.untouched.wat @@ -2905,7 +2905,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 184) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) @@ -3011,7 +3011,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 184) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) @@ -3117,7 +3117,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 184) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) @@ -3223,7 +3223,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 184) - (i32.const 87) + (i32.const 101) (i32.const 41) ) (unreachable) diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 7d712740..c7461d31 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -4,20 +4,30 @@ (type $ii (func (param i32) (result i32))) (type $iiii (func (param i32 i32 i32) (result i32))) (type $iiiv (func (param i32 i32 i32))) + (type $iiiiiv (func (param i32 i32 i32 i32 i32))) (type $i (func (result i32))) (type $iiF (func (param i32 i32) (result f64))) (type $iF (func (param i32) (result f64))) (type $Ii (func (param i64) (result i32))) (type $iIiv (func (param i32 i64 i32))) + (type $Fi (func (param f64) (result i32))) + (type $iFi (func (param i32 f64) (result i32))) + (type $iIiIiIii (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $v (func)) (type $FUNCSIG$ii (func (param i32) (result i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) - (type $FUNCSIG$viiii (func (param i32 i32 i32 i32))) (type $FUNCSIG$iii (func (param i32 i32) (result i32))) (type $FUNCSIG$di (func (param i32) (result f64))) + (type $FUNCSIG$v (func)) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/allocator/arena/startOffset (mut i32) (i32.const 0)) (global $~lib/allocator/arena/offset (mut i32) (i32.const 0)) + (global $~lib/internal/number/_K (mut i32) (i32.const 0)) + (global $~lib/internal/number/_exp (mut i32) (i32.const 0)) + (global $~lib/internal/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/internal/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/internal/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/internal/number/_exp_pow (mut i32) (i32.const 0)) (global $std/string/str (mut i32) (i32.const 8)) (global $std/string/nullStr (mut i32) (i32.const 0)) (global $~argc (mut i32) (i32.const 0)) @@ -72,44 +82,96 @@ (data (i32.const 720) "\05\00\00\00a\00a\00a\00a\00a") (data (i32.const 736) "\06\00\00\00a\00a\00a\00a\00a\00a") (data (i32.const 752) "\07\00\00\00a\00a\00a\00a\00a\00a\00a") - (data (i32.const 776) "(\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;") - (data (i32.const 840) "\08\03\00\00\n") - (data (i32.const 848) "\90\01\00\00\00\00\00\000\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 1360) "P\03\00\00d") - (data (i32.const 1368) "\01\00\00\008") - (data (i32.const 1376) "\05\00\00\00-\001\000\000\000") - (data (i32.const 1392) "\04\00\00\001\002\003\004") - (data (i32.const 1408) "\05\00\00\001\002\003\004\005") - (data (i32.const 1424) "\06\00\00\001\002\003\004\005\006") - (data (i32.const 1440) "\07\00\00\001\001\001\001\001\001\001") - (data (i32.const 1464) "\07\00\00\001\002\003\004\005\006\007") - (data (i32.const 1488) "\n\00\00\002\001\004\007\004\008\003\006\004\006") - (data (i32.const 1512) "\n\00\00\002\001\004\007\004\008\003\006\004\007") - (data (i32.const 1536) "\0b\00\00\00-\002\001\004\007\004\008\003\006\004\008") - (data (i32.const 1568) "\02\00\00\00-\001") - (data (i32.const 1576) "\04\00\00\001\000\000\000") - (data (i32.const 1592) "\n\00\00\002\001\004\007\004\008\003\006\004\008") - (data (i32.const 1616) "\n\00\00\004\002\009\004\009\006\007\002\009\005") - (data (i32.const 1640) "(\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;") - (data (i32.const 1704) "h\06\00\00\n") - (data (i32.const 1712) "\90\01\00\00\00\00\00\000\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 2224) "\b0\06\00\00d") - (data (i32.const 2232) "\08\00\00\009\009\009\009\009\009\009\009") - (data (i32.const 2256) "\t\00\00\001\000\000\000\000\000\000\000\000") - (data (i32.const 2280) "\0b\00\00\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2312) "\0c\00\00\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2344) "\0f\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2384) "\10\00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2424) "\11\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2464) "\14\00\00\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005") - (data (i32.const 2512) "\05\00\00\00-\001\002\003\004") - (data (i32.const 2528) "\0b\00\00\00-\004\002\009\004\009\006\007\002\009\005") - (data (i32.const 2560) "\0c\00\00\00-\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2592) "\0d\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2624) "\10\00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2664) "\12\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2704) "\13\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") - (data (i32.const 2752) "\14\00\00\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008") + (data (i32.const 776) "\90\01\00\00\00\00\00\000\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 1288) "\08\03\00\00d") + (data (i32.const 1296) "\01\00\00\008") + (data (i32.const 1304) "\05\00\00\00-\001\000\000\000") + (data (i32.const 1320) "\04\00\00\001\002\003\004") + (data (i32.const 1336) "\05\00\00\001\002\003\004\005") + (data (i32.const 1352) "\06\00\00\001\002\003\004\005\006") + (data (i32.const 1368) "\07\00\00\001\001\001\001\001\001\001") + (data (i32.const 1392) "\07\00\00\001\002\003\004\005\006\007") + (data (i32.const 1416) "\n\00\00\002\001\004\007\004\008\003\006\004\006") + (data (i32.const 1440) "\n\00\00\002\001\004\007\004\008\003\006\004\007") + (data (i32.const 1464) "\0b\00\00\00-\002\001\004\007\004\008\003\006\004\008") + (data (i32.const 1496) "\02\00\00\00-\001") + (data (i32.const 1504) "\04\00\00\001\000\000\000") + (data (i32.const 1520) "\n\00\00\002\001\004\007\004\008\003\006\004\008") + (data (i32.const 1544) "\n\00\00\004\002\009\004\009\006\007\002\009\005") + (data (i32.const 1568) "\90\01\00\00\00\00\00\000\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 2080) " \06\00\00d") + (data (i32.const 2088) "\08\00\00\009\009\009\009\009\009\009\009") + (data (i32.const 2112) "\t\00\00\001\000\000\000\000\000\000\000\000") + (data (i32.const 2136) "\0b\00\00\006\008\007\001\009\004\007\006\007\003\005") + (data (i32.const 2168) "\0c\00\00\008\006\008\007\001\009\004\007\006\007\003\005") + (data (i32.const 2200) "\0f\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") + (data (i32.const 2240) "\10\00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") + (data (i32.const 2280) "\11\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") + (data (i32.const 2320) "\14\00\00\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005") + (data (i32.const 2368) "\05\00\00\00-\001\002\003\004") + (data (i32.const 2384) "\0b\00\00\00-\004\002\009\004\009\006\007\002\009\005") + (data (i32.const 2416) "\0c\00\00\00-\006\008\007\001\009\004\007\006\007\003\005") + (data (i32.const 2448) "\0d\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005") + (data (i32.const 2480) "\10\00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") + (data (i32.const 2520) "\12\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") + (data (i32.const 2560) "\13\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") + (data (i32.const 2608) "\14\00\00\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008") + (data (i32.const 2656) "\03\00\00\000\00.\000") + (data (i32.const 2672) "\03\00\00\00N\00a\00N") + (data (i32.const 2688) "\t\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 2712) "\08\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 2736) "\b8\02\00\00\00\00\00\00\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 (; 43 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) + (f64.eq + (f64.sub + (get_local $0) + (get_local $0) + ) + (f64.const 0) + ) + ) + (func $~lib/builtins/isNaN (; 44 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) + (f64.ne + (get_local $0) + (get_local $0) + ) + ) + (func $~lib/internal/number/genDigits (; 45 ;) (; has Stack IR ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i64) + (local $9 i32) + (local $10 i64) + (local $11 i32) + (local $12 i32) + (local $13 i64) + (local $14 i64) + (set_local $8 + (i64.sub + (get_local $3) + (get_local $1) + ) + ) + (set_local $1 + (i64.and + (get_local $3) + (tee_local $14 + (i64.sub + (tee_local $10 + (i64.shl + (i64.const 1) + (tee_local $13 + (i64.extend_s/i32 + (tee_local $11 + (i32.sub + (i32.const 0) + (get_local $4) + ) + ) + ) + ) + ) + ) + (i64.const 1) + ) + ) + ) + ) + (set_local $9 + (call $~lib/internal/number/decimalCount32 + (tee_local $7 + (i32.wrap/i64 + (i64.shr_u + (get_local $3) + (get_local $13) + ) + ) + ) + ) + ) + (set_local $12 + (i32.load + (i32.const 4096) + ) + ) + (loop $continue|0 + (if + (i32.gt_s + (get_local $9) + (i32.const 0) + ) + (block + (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 + (if + (i32.ne + (tee_local $2 + (get_local $9) + ) + (i32.const 10) + ) + (block + (block $tablify|0 + (br_table $case9|1 $case8|1 $case7|1 $case6|1 $case5|1 $case4|1 $case3|1 $case2|1 $case1|1 $tablify|0 + (i32.sub + (get_local $2) + (i32.const 1) + ) + ) + ) + (br $case10|1) + ) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 1000000000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 1000000000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 100000000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 100000000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 10000000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 10000000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 1000000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 1000000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 100000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 100000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 10000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 10000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 1000) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 1000) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 100) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 100) + ) + ) + (br $break|1) + ) + (set_local $4 + (i32.div_u + (get_local $7) + (i32.const 10) + ) + ) + (set_local $7 + (i32.rem_u + (get_local $7) + (i32.const 10) + ) + ) + (br $break|1) + ) + (set_local $4 + (get_local $7) + ) + (set_local $7 + (i32.const 0) + ) + (br $break|1) + ) + (set_local $4 + (i32.const 0) + ) + ) + (if + (i32.or + (get_local $4) + (get_local $6) + ) + (block + (set_local $6 + (i32.add + (tee_local $2 + (get_local $6) + ) + (i32.const 1) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (i32.add + (i32.and + (get_local $4) + (i32.const 65535) + ) + (i32.const 48) + ) + ) + ) + ) + (set_local $9 + (i32.sub + (get_local $9) + (i32.const 1) + ) + ) + (if + (i64.le_u + (tee_local $3 + (i64.add + (i64.shl + (i64.extend_u/i32 + (get_local $7) + ) + (i64.extend_s/i32 + (get_local $11) + ) + ) + (get_local $1) + ) + ) + (get_local $5) + ) + (block + (set_global $~lib/internal/number/_K + (i32.add + (get_global $~lib/internal/number/_K) + (get_local $9) + ) + ) + (set_local $1 + (i64.shl + (i64.load32_u offset=8 + (i32.add + (get_local $12) + (i32.shl + (get_local $9) + (i32.const 2) + ) + ) + ) + (i64.extend_s/i32 + (get_local $11) + ) + ) + ) + (set_local $7 + (i32.load16_u offset=4 + (tee_local $2 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $6) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + ) + ) + (loop $continue|2 + (if + (tee_local $0 + (i64.lt_u + (get_local $3) + (get_local $8) + ) + ) + (set_local $0 + (i64.ge_u + (i64.sub + (get_local $5) + (get_local $3) + ) + (get_local $1) + ) + ) + ) + (if + (get_local $0) + (if + (i32.eqz + (tee_local $0 + (i64.lt_u + (i64.add + (get_local $3) + (get_local $1) + ) + (get_local $8) + ) + ) + ) + (set_local $0 + (i64.gt_u + (i64.sub + (get_local $8) + (get_local $3) + ) + (i64.sub + (i64.add + (get_local $3) + (get_local $1) + ) + (get_local $8) + ) + ) + ) + ) + ) + (if + (get_local $0) + (block + (set_local $7 + (i32.sub + (get_local $7) + (i32.const 1) + ) + ) + (set_local $3 + (i64.add + (get_local $3) + (get_local $1) + ) + ) + (br $continue|2) + ) + ) + ) + (i32.store16 offset=4 + (get_local $2) + (get_local $7) + ) + (return + (get_local $6) + ) + ) + ) + (br $continue|0) + ) + ) + ) + (loop $continue|3 (result i32) + (set_local $5 + (i64.mul + (get_local $5) + (i64.const 10) + ) + ) + (if + (i64.ne + (i64.or + (tee_local $3 + (i64.shr_u + (tee_local $1 + (i64.mul + (get_local $1) + (i64.const 10) + ) + ) + (i64.extend_s/i32 + (get_local $11) + ) + ) + ) + (i64.extend_s/i32 + (get_local $6) + ) + ) + (i64.const 0) + ) + (block + (set_local $6 + (i32.add + (tee_local $4 + (get_local $6) + ) + (i32.const 1) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + (i32.add + (i32.and + (i32.wrap/i64 + (get_local $3) + ) + (i32.const 65535) + ) + (i32.const 48) + ) + ) + ) + ) + (set_local $9 + (i32.sub + (get_local $9) + (i32.const 1) + ) + ) + (if (result i32) + (i64.lt_u + (tee_local $1 + (i64.and + (get_local $1) + (get_local $14) + ) + ) + (get_local $5) + ) + (block (result i32) + (set_global $~lib/internal/number/_K + (i32.add + (get_global $~lib/internal/number/_K) + (get_local $9) + ) + ) + (set_local $8 + (i64.mul + (get_local $8) + (i64.load32_u offset=8 + (i32.add + (get_local $12) + (i32.shl + (i32.sub + (i32.const 0) + (get_local $9) + ) + (i32.const 2) + ) + ) + ) + ) + ) + (set_local $7 + (i32.load16_u offset=4 + (tee_local $4 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $6) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + ) + ) + (loop $continue|4 + (if + (tee_local $2 + (i64.lt_u + (get_local $1) + (get_local $8) + ) + ) + (set_local $2 + (i64.ge_u + (i64.sub + (get_local $5) + (get_local $1) + ) + (get_local $10) + ) + ) + ) + (if + (get_local $2) + (if + (i32.eqz + (tee_local $2 + (i64.lt_u + (i64.add + (get_local $1) + (get_local $10) + ) + (get_local $8) + ) + ) + ) + (set_local $2 + (i64.gt_u + (i64.sub + (get_local $8) + (get_local $1) + ) + (i64.sub + (i64.add + (get_local $1) + (get_local $10) + ) + (get_local $8) + ) + ) + ) + ) + ) + (if + (get_local $2) + (block + (set_local $7 + (i32.sub + (get_local $7) + (i32.const 1) + ) + ) + (set_local $1 + (i64.add + (get_local $1) + (get_local $10) + ) + ) + (br $continue|4) + ) + ) + ) + (i32.store16 offset=4 + (get_local $4) + (get_local $7) + ) + (get_local $6) + ) + (br $continue|3) + ) + ) + ) + (func $~lib/internal/number/prettify (; 46 ;) (; has Stack IR ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (if + (i32.eqz + (get_local $2) + ) + (block + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (i32.const 3145774) + ) + (return + (i32.add + (get_local $1) + (i32.const 2) + ) + ) + ) + ) + (if + (tee_local $3 + (i32.le_s + (get_local $1) + (tee_local $4 + (i32.add + (get_local $1) + (get_local $2) + ) + ) + ) + ) + (set_local $3 + (i32.le_s + (get_local $4) + (i32.const 21) + ) + ) + ) + (if (result i32) + (get_local $3) + (block (result i32) + (block $break|0 + (set_local $3 + (get_local $1) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.ge_s + (get_local $3) + (get_local $4) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) + (i32.const 48) + ) + (set_local $3 + (i32.add + (get_local $3) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 3145774) + ) + (i32.add + (get_local $4) + (i32.const 2) + ) + ) + (block (result i32) + (if + (tee_local $3 + (i32.gt_s + (get_local $4) + (i32.const 0) + ) + ) + (set_local $3 + (i32.le_s + (get_local $4) + (i32.const 21) + ) + ) + ) + (if (result i32) + (get_local $3) + (block (result i32) + (call $~lib/internal/memory/memmove + (i32.add + (tee_local $3 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + ) + (i32.const 6) + ) + (i32.add + (get_local $3) + (i32.const 4) + ) + (i32.shl + (i32.sub + (i32.const 0) + (get_local $2) + ) + (i32.const 1) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 46) + ) + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + (block (result i32) + (if + (tee_local $3 + (i32.lt_s + (i32.const -6) + (get_local $4) + ) + ) + (set_local $3 + (i32.le_s + (get_local $4) + (i32.const 0) + ) + ) + ) + (if (result i32) + (get_local $3) + (block (result i32) + (call $~lib/internal/memory/memmove + (i32.add + (i32.add + (get_local $0) + (i32.const 4) + ) + (i32.shl + (tee_local $3 + (i32.sub + (i32.const 2) + (get_local $4) + ) + ) + (i32.const 1) + ) + ) + (i32.add + (get_local $0) + (i32.const 4) + ) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (i32.store offset=4 + (get_local $0) + (i32.const 3014704) + ) + (block $break|1 + (set_local $2 + (i32.const 2) + ) + (loop $repeat|1 + (br_if $break|1 + (i32.ge_s + (get_local $2) + (get_local $3) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (i32.const 48) + ) + (set_local $2 + (i32.add + (get_local $2) + (i32.const 1) + ) + ) + (br $repeat|1) + ) + ) + (i32.add + (get_local $1) + (get_local $3) + ) + ) + (if (result i32) + (i32.eq + (get_local $1) + (i32.const 1) + ) + (block (result i32) + (i32.store16 offset=6 + (get_local $0) + (i32.const 101) + ) + (set_local $3 + (i32.add + (get_local $0) + (i32.const 4) + ) + ) + (if + (tee_local $0 + (i32.lt_s + (tee_local $2 + (i32.sub + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 0) + ) + ) + (set_local $2 + (i32.sub + (i32.const 0) + (get_local $2) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $3) + (get_local $2) + (tee_local $2 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $2) + ) + (i32.const 1) + ) + ) + ) + (i32.store16 offset=4 + (get_local $3) + (select + (i32.const 45) + (i32.const 43) + (get_local $0) + ) + ) + (i32.add + (get_local $2) + (i32.const 2) + ) + ) + (block (result i32) + (call $~lib/internal/memory/memmove + (i32.add + (get_local $0) + (i32.const 8) + ) + (i32.add + (get_local $0) + (i32.const 6) + ) + (i32.sub + (tee_local $2 + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (i32.const 2) + ) + ) + (i32.store16 offset=6 + (get_local $0) + (i32.const 46) + ) + (i32.store16 offset=6 + (tee_local $0 + (i32.add + (get_local $0) + (get_local $2) + ) + ) + (i32.const 101) + ) + (set_local $3 + (i32.add + (get_local $0) + (i32.const 4) + ) + ) + (if + (tee_local $0 + (i32.lt_s + (tee_local $2 + (i32.sub + (get_local $4) + (i32.const 1) + ) + ) + (i32.const 0) + ) + ) + (set_local $2 + (i32.sub + (i32.const 0) + (get_local $2) + ) + ) + ) + (call $~lib/internal/number/utoa32_lut + (get_local $3) + (get_local $2) + (tee_local $2 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $2) + ) + (i32.const 1) + ) + ) + ) + (i32.store16 offset=4 + (get_local $3) + (select + (i32.const 45) + (i32.const 43) + (get_local $0) + ) + ) + (i32.add + (i32.add + (get_local $1) + (get_local $2) + ) + (i32.const 2) + ) + ) + ) + ) + ) + ) + ) + ) + ) + (func $~lib/internal/number/dtoa_core (; 47 ;) (; has Stack IR ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i64) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i64) + (local $12 i32) + (local $13 i32) + (local $14 i32) + (local $15 i64) + (if + (tee_local $12 + (f64.lt + (get_local $1) + (f64.const 0) + ) + ) + (block + (set_local $1 + (f64.neg + (get_local $1) + ) + ) + (i32.store16 offset=4 + (get_local $0) + (i32.const 45) + ) + ) + ) + (set_local $2 + (i64.add + (i64.shl + (i64.extend_u/i32 + (tee_local $5 + (i32.ne + (tee_local $13 + (i32.wrap/i64 + (i64.shr_u + (i64.and + (tee_local $2 + (i64.reinterpret/f64 + (get_local $1) + ) + ) + (i64.const 9218868437227405312) + ) + (i64.const 52) + ) + ) + ) + (i32.const 0) + ) + ) + ) + (i64.const 52) + ) + (i64.and + (get_local $2) + (i64.const 4503599627370495) + ) + ) + ) + (set_local $5 + (i32.sub + (tee_local $13 + (i32.sub + (select + (get_local $13) + (i32.const 1) + (get_local $5) + ) + (i32.const 1075) + ) + ) + (i32.const 1) + ) + ) + (set_local $4 + (i32.wrap/i64 + (i64.clz + (tee_local $6 + (i64.add + (i64.shl + (get_local $2) + (i64.const 1) + ) + (i64.const 1) + ) + ) + ) + ) + ) + (set_global $~lib/internal/number/_frc_plus + (i64.shl + (get_local $6) + (i64.extend_s/i32 + (get_local $4) + ) + ) + ) + (set_global $~lib/internal/number/_frc_minus + (i64.shl + (i64.sub + (i64.shl + (get_local $2) + (i64.extend_s/i32 + (tee_local $14 + (i32.add + (i64.eq + (get_local $2) + (i64.const 4503599627370496) + ) + (i32.const 1) + ) + ) + ) + ) + (i64.const 1) + ) + (i64.extend_s/i32 + (i32.sub + (i32.sub + (get_local $13) + (get_local $14) + ) + (tee_local $5 + (i32.sub + (get_local $5) + (get_local $4) + ) + ) + ) + ) + ) + ) + (set_global $~lib/internal/number/_exp + (get_local $5) + ) + (set_global $~lib/internal/number/_K + (i32.sub + (i32.const 348) + (i32.shl + (tee_local $5 + (i32.add + (i32.shr_s + (i32.add + (tee_local $4 + (i32.trunc_s/f64 + (tee_local $1 + (f64.add + (f64.mul + (f64.convert_s/i32 + (i32.sub + (i32.const -61) + (get_global $~lib/internal/number/_exp) + ) + ) + (f64.const 0.30102999566398114) + ) + (f64.const 347) + ) + ) + ) + ) + (f64.ne + (f64.convert_s/i32 + (get_local $4) + ) + (get_local $1) + ) + ) + (i32.const 3) + ) + (i32.const 1) + ) + ) + (i32.const 3) + ) + ) + ) + (set_local $4 + (i32.load + (i32.const 4024) + ) + ) + (set_global $~lib/internal/number/_frc_pow + (i64.load offset=8 + (i32.add + (i32.load + (i32.const 3760) + ) + (i32.shl + (get_local $5) + (i32.const 3) + ) + ) + ) + ) + (set_global $~lib/internal/number/_exp_pow + (i32.load16_s offset=8 + (i32.add + (get_local $4) + (i32.shl + (get_local $5) + (i32.const 1) + ) + ) + ) + ) + (set_local $9 + (i64.mul + (tee_local $7 + (i64.and + (tee_local $2 + (i64.shl + (get_local $2) + (i64.extend_s/i32 + (tee_local $4 + (i32.wrap/i64 + (i64.clz + (get_local $2) + ) + ) + ) + ) + ) + ) + (i64.const 4294967295) + ) + ) + (tee_local $8 + (i64.and + (tee_local $6 + (get_global $~lib/internal/number/_frc_pow) + ) + (i64.const 4294967295) + ) + ) + ) + ) + (set_local $2 + (i64.add + (i64.mul + (get_local $7) + (tee_local $10 + (i64.shr_u + (get_local $6) + (i64.const 32) + ) + ) + ) + (i64.and + (tee_local $3 + (i64.add + (i64.mul + (tee_local $11 + (i64.shr_u + (get_local $2) + (i64.const 32) + ) + ) + (get_local $8) + ) + (i64.shr_u + (get_local $9) + (i64.const 32) + ) + ) + ) + (i64.const 4294967295) + ) + ) + ) + (set_local $2 + (i64.add + (i64.add + (i64.mul + (get_local $11) + (get_local $10) + ) + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (i64.shr_u + (i64.add + (get_local $2) + (i64.const 2147483647) + ) + (i64.const 32) + ) + ) + ) + (set_local $7 + (i64.mul + (tee_local $9 + (i64.and + (tee_local $3 + (get_global $~lib/internal/number/_frc_plus) + ) + (i64.const 4294967295) + ) + ) + (tee_local $10 + (i64.and + (get_local $6) + (i64.const 4294967295) + ) + ) + ) + ) + (set_local $7 + (i64.add + (i64.mul + (get_local $9) + (tee_local $8 + (i64.shr_u + (get_local $6) + (i64.const 32) + ) + ) + ) + (i64.and + (tee_local $3 + (i64.add + (i64.mul + (tee_local $11 + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (get_local $10) + ) + (i64.shr_u + (get_local $7) + (i64.const 32) + ) + ) + ) + (i64.const 4294967295) + ) + ) + ) + (set_local $15 + (i64.add + (i64.add + (i64.mul + (get_local $11) + (get_local $8) + ) + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (i64.shr_u + (i64.add + (get_local $7) + (i64.const 2147483647) + ) + (i64.const 32) + ) + ) + ) + (set_local $9 + (i64.mul + (tee_local $7 + (i64.and + (tee_local $3 + (get_global $~lib/internal/number/_frc_minus) + ) + (i64.const 4294967295) + ) + ) + (tee_local $8 + (i64.and + (get_local $6) + (i64.const 4294967295) + ) + ) + ) + ) + (set_local $6 + (i64.add + (i64.mul + (get_local $7) + (tee_local $10 + (i64.shr_u + (get_local $6) + (i64.const 32) + ) + ) + ) + (i64.and + (tee_local $3 + (i64.add + (i64.mul + (tee_local $11 + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (get_local $8) + ) + (i64.shr_u + (get_local $9) + (i64.const 32) + ) + ) + ) + (i64.const 4294967295) + ) + ) + ) + (set_local $3 + (i64.sub + (tee_local $7 + (i64.sub + (get_local $15) + (i64.const 1) + ) + ) + (i64.add + (i64.add + (i64.add + (i64.mul + (get_local $11) + (get_local $10) + ) + (i64.shr_u + (get_local $3) + (i64.const 32) + ) + ) + (i64.shr_u + (i64.add + (get_local $6) + (i64.const 2147483647) + ) + (i64.const 32) + ) + ) + (i64.const 1) + ) + ) + ) + (i32.add + (call $~lib/internal/number/prettify + (i32.add + (get_local $0) + (i32.shl + (get_local $12) + (i32.const 1) + ) + ) + (i32.sub + (call $~lib/internal/number/genDigits + (get_local $0) + (get_local $2) + (tee_local $5 + (i32.sub + (i32.add + (i32.sub + (get_local $13) + (get_local $4) + ) + (tee_local $4 + (get_global $~lib/internal/number/_exp_pow) + ) + ) + (i32.const -64) + ) + ) + (get_local $7) + (i32.sub + (i32.add + (get_global $~lib/internal/number/_exp) + (get_local $4) + ) + (i32.const -64) + ) + (get_local $3) + (get_local $12) + ) + (get_local $12) + ) + (get_global $~lib/internal/number/_K) + ) + (get_local $12) + ) + ) + (func $~lib/string/String#substring (; 48 ;) (; has Stack IR ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (if + (i32.eqz + (get_local $0) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 80) + (i32.const 264) + (i32.const 4) + ) + (unreachable) + ) + ) + (set_local $1 + (select + (tee_local $2 + (select + (get_local $1) + (i32.const 0) + (i32.gt_s + (get_local $1) + (i32.const 0) + ) + ) + ) + (tee_local $3 + (i32.load + (get_local $0) + ) + ) + (i32.lt_s + (get_local $2) + (get_local $3) + ) + ) + ) + (set_local $4 + (select + (tee_local $2 + (select + (i32.const 0) + (get_local $3) + (i32.lt_s + (i32.const 0) + (get_local $3) + ) + ) + ) + (get_local $1) + (i32.lt_s + (get_local $2) + (get_local $1) + ) + ) + ) + (if + (i32.eqz + (tee_local $3 + (i32.sub + (tee_local $1 + (select + (get_local $2) + (get_local $1) + (i32.gt_s + (get_local $2) + (get_local $1) + ) + ) + ) + (get_local $4) + ) + ) + ) + (return + (i32.const 256) + ) + ) + (if + (tee_local $2 + (i32.eqz + (get_local $4) + ) + ) + (set_local $2 + (i32.eq + (get_local $1) + (i32.load + (get_local $0) + ) + ) + ) + ) + (if + (get_local $2) + (return + (get_local $0) + ) + ) + (call $~lib/internal/string/copyUnsafe + (tee_local $2 + (call $~lib/internal/string/allocateUnsafe + (get_local $3) + ) + ) + (i32.const 0) + (get_local $0) + (get_local $4) + (get_local $3) + ) + (get_local $2) + ) + (func $~lib/allocator/arena/__memory_free (; 49 ;) (; has Stack IR ;) (type $FUNCSIG$v) + (nop) + ) + (func $~lib/internal/number/dtoa (; 50 ;) (; has Stack IR ;) (type $Fi) (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (if + (f64.eq + (get_local $0) + (f64.const 0) + ) + (return + (i32.const 2656) + ) + ) + (if + (i32.eqz + (call $~lib/builtins/isFinite + (get_local $0) + ) + ) + (block + (if + (call $~lib/builtins/isNaN + (get_local $0) + ) + (return + (i32.const 2672) + ) + ) + (return + (select + (i32.const 2688) + (i32.const 2712) + (f64.lt + (get_local $0) + (f64.const 0) + ) + ) + ) + ) + ) + (set_local $2 + (call $~lib/internal/number/dtoa_core + (tee_local $1 + (call $~lib/internal/string/allocateUnsafe + (i32.const 28) + ) + ) + (get_local $0) + ) + ) + (set_local $2 + (call $~lib/string/String#substring + (get_local $1) + (get_local $2) + ) + ) + (if + (i32.eqz + (get_local $1) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 112) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (call $~lib/allocator/arena/__memory_free) + (get_local $2) + ) + (func $start (; 51 ;) (; has Stack IR ;) (type $v) (set_global $~lib/allocator/arena/startOffset - (i32.const 2800) + (i32.const 5648) ) (set_global $~lib/allocator/arena/offset (get_global $~lib/allocator/arena/startOffset) @@ -4855,7 +6665,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 11) + (i32.const 17) (i32.const 0) ) (unreachable) @@ -4872,7 +6682,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 13) + (i32.const 19) (i32.const 0) ) (unreachable) @@ -4889,7 +6699,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 14) + (i32.const 20) (i32.const 0) ) (unreachable) @@ -4908,7 +6718,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 16) + (i32.const 22) (i32.const 0) ) (unreachable) @@ -4927,7 +6737,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 17) + (i32.const 23) (i32.const 0) ) (unreachable) @@ -4946,7 +6756,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 18) + (i32.const 24) (i32.const 0) ) (unreachable) @@ -4965,7 +6775,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 20) + (i32.const 26) (i32.const 0) ) (unreachable) @@ -4984,7 +6794,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 21) + (i32.const 27) (i32.const 0) ) (unreachable) @@ -5000,7 +6810,7 @@ (call $~lib/env/abort (i32.const 184) (i32.const 48) - (i32.const 22) + (i32.const 28) (i32.const 0) ) (unreachable) @@ -5016,7 +6826,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 24) + (i32.const 30) (i32.const 0) ) (unreachable) @@ -5035,7 +6845,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 25) + (i32.const 31) (i32.const 0) ) (unreachable) @@ -5051,7 +6861,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 26) + (i32.const 32) (i32.const 0) ) (unreachable) @@ -5074,7 +6884,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 28) + (i32.const 34) (i32.const 0) ) (unreachable) @@ -5097,7 +6907,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 29) + (i32.const 35) (i32.const 0) ) (unreachable) @@ -5120,7 +6930,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 30) + (i32.const 36) (i32.const 0) ) (unreachable) @@ -5141,7 +6951,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 31) + (i32.const 37) (i32.const 0) ) (unreachable) @@ -5162,7 +6972,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 32) + (i32.const 38) (i32.const 0) ) (unreachable) @@ -5185,7 +6995,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 33) + (i32.const 39) (i32.const 0) ) (unreachable) @@ -5206,7 +7016,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 34) + (i32.const 40) (i32.const 0) ) (unreachable) @@ -5227,7 +7037,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 35) + (i32.const 41) (i32.const 0) ) (unreachable) @@ -5250,7 +7060,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 37) + (i32.const 43) (i32.const 0) ) (unreachable) @@ -5273,7 +7083,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 38) + (i32.const 44) (i32.const 0) ) (unreachable) @@ -5296,7 +7106,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 39) + (i32.const 45) (i32.const 0) ) (unreachable) @@ -5317,7 +7127,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 40) + (i32.const 46) (i32.const 0) ) (unreachable) @@ -5338,7 +7148,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 41) + (i32.const 47) (i32.const 0) ) (unreachable) @@ -5361,7 +7171,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 42) + (i32.const 48) (i32.const 0) ) (unreachable) @@ -5382,7 +7192,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 43) + (i32.const 49) (i32.const 0) ) (unreachable) @@ -5403,7 +7213,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 44) + (i32.const 50) (i32.const 0) ) (unreachable) @@ -5419,7 +7229,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 46) + (i32.const 52) (i32.const 0) ) (unreachable) @@ -5438,7 +7248,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 47) + (i32.const 53) (i32.const 0) ) (unreachable) @@ -5454,7 +7264,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 48) + (i32.const 54) (i32.const 0) ) (unreachable) @@ -5473,7 +7283,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 49) + (i32.const 55) (i32.const 0) ) (unreachable) @@ -5492,7 +7302,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 50) + (i32.const 56) (i32.const 0) ) (unreachable) @@ -5511,7 +7321,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 51) + (i32.const 57) (i32.const 0) ) (unreachable) @@ -5530,7 +7340,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 52) + (i32.const 58) (i32.const 0) ) (unreachable) @@ -5549,7 +7359,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 53) + (i32.const 59) (i32.const 0) ) (unreachable) @@ -5567,7 +7377,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 55) + (i32.const 61) (i32.const 0) ) (unreachable) @@ -5588,7 +7398,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 56) + (i32.const 62) (i32.const 0) ) (unreachable) @@ -5611,7 +7421,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 57) + (i32.const 63) (i32.const 0) ) (unreachable) @@ -5632,7 +7442,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 58) + (i32.const 64) (i32.const 0) ) (unreachable) @@ -5653,7 +7463,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 59) + (i32.const 65) (i32.const 0) ) (unreachable) @@ -5674,7 +7484,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 60) + (i32.const 66) (i32.const 0) ) (unreachable) @@ -5693,7 +7503,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 61) + (i32.const 67) (i32.const 0) ) (unreachable) @@ -5712,7 +7522,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 62) + (i32.const 68) (i32.const 0) ) (unreachable) @@ -5731,7 +7541,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 63) + (i32.const 69) (i32.const 0) ) (unreachable) @@ -5750,7 +7560,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 64) + (i32.const 70) (i32.const 0) ) (unreachable) @@ -5766,7 +7576,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 65) + (i32.const 71) (i32.const 0) ) (unreachable) @@ -5783,7 +7593,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 71) + (i32.const 77) (i32.const 0) ) (unreachable) @@ -5800,7 +7610,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 72) + (i32.const 78) (i32.const 0) ) (unreachable) @@ -5817,7 +7627,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 73) + (i32.const 79) (i32.const 0) ) (unreachable) @@ -5834,7 +7644,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 74) + (i32.const 80) (i32.const 0) ) (unreachable) @@ -5851,7 +7661,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 75) + (i32.const 81) (i32.const 0) ) (unreachable) @@ -5868,7 +7678,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 76) + (i32.const 82) (i32.const 0) ) (unreachable) @@ -5885,7 +7695,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 77) + (i32.const 83) (i32.const 0) ) (unreachable) @@ -5902,7 +7712,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 78) + (i32.const 84) (i32.const 0) ) (unreachable) @@ -5919,7 +7729,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 80) + (i32.const 86) (i32.const 0) ) (unreachable) @@ -5936,7 +7746,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 81) + (i32.const 87) (i32.const 0) ) (unreachable) @@ -5953,7 +7763,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 82) + (i32.const 88) (i32.const 0) ) (unreachable) @@ -5970,7 +7780,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 83) + (i32.const 89) (i32.const 0) ) (unreachable) @@ -5987,7 +7797,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 84) + (i32.const 90) (i32.const 0) ) (unreachable) @@ -6010,7 +7820,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 87) + (i32.const 93) (i32.const 0) ) (unreachable) @@ -6027,7 +7837,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 88) + (i32.const 94) (i32.const 0) ) (unreachable) @@ -6044,7 +7854,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 89) + (i32.const 95) (i32.const 0) ) (unreachable) @@ -6061,7 +7871,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 90) + (i32.const 96) (i32.const 0) ) (unreachable) @@ -6078,7 +7888,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 92) + (i32.const 98) (i32.const 0) ) (unreachable) @@ -6095,7 +7905,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 93) + (i32.const 99) (i32.const 0) ) (unreachable) @@ -6112,7 +7922,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 94) + (i32.const 100) (i32.const 0) ) (unreachable) @@ -6129,7 +7939,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 95) + (i32.const 101) (i32.const 0) ) (unreachable) @@ -6144,7 +7954,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 96) + (i32.const 102) (i32.const 0) ) (unreachable) @@ -6159,7 +7969,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 98) + (i32.const 104) (i32.const 0) ) (unreachable) @@ -6174,7 +7984,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 99) + (i32.const 105) (i32.const 0) ) (unreachable) @@ -6191,7 +8001,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 101) + (i32.const 107) (i32.const 0) ) (unreachable) @@ -6204,99 +8014,6 @@ (i32.const 288) ) ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 102) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gte - (i32.const 288) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 103) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__lte - (i32.const 288) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 104) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__lt - (i32.const 288) - (i32.const 256) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 105) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__gt - (i32.const 256) - (i32.const 288) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__lt - (i32.const 256) - (i32.const 256) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 107) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (call $~lib/string/String.__gt - (i32.const 256) - (i32.const 256) - ) (block (call $~lib/env/abort (i32.const 0) @@ -6310,7 +8027,7 @@ (if (i32.eqz (call $~lib/string/String.__gte - (i32.const 256) + (i32.const 288) (i32.const 256) ) ) @@ -6327,7 +8044,7 @@ (if (i32.eqz (call $~lib/string/String.__lte - (i32.const 256) + (i32.const 288) ) ) (block @@ -6340,6 +8057,99 @@ (unreachable) ) ) + (if + (call $~lib/string/String.__lt + (i32.const 288) + (i32.const 256) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 111) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (call $~lib/string/String.__gt + (i32.const 256) + (i32.const 288) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 112) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (call $~lib/string/String.__lt + (i32.const 256) + (i32.const 256) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 113) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (call $~lib/string/String.__gt + (i32.const 256) + (i32.const 256) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 114) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__gte + (i32.const 256) + (i32.const 256) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 115) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__lte + (i32.const 256) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 116) + (i32.const 0) + ) + (unreachable) + ) + ) (set_global $std/string/a (call $~lib/string/String.fromCodePoint (i32.const 65377) @@ -6366,7 +8176,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 114) + (i32.const 120) (i32.const 0) ) (unreachable) @@ -6383,7 +8193,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 116) + (i32.const 122) (i32.const 0) ) (unreachable) @@ -6403,7 +8213,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 118) + (i32.const 124) (i32.const 0) ) (unreachable) @@ -6423,7 +8233,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 119) + (i32.const 125) (i32.const 0) ) (unreachable) @@ -6443,7 +8253,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 120) + (i32.const 126) (i32.const 0) ) (unreachable) @@ -6463,7 +8273,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 121) + (i32.const 127) (i32.const 0) ) (unreachable) @@ -6483,7 +8293,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 122) + (i32.const 128) (i32.const 0) ) (unreachable) @@ -6503,7 +8313,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 123) + (i32.const 129) (i32.const 0) ) (unreachable) @@ -6523,7 +8333,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 124) + (i32.const 130) (i32.const 0) ) (unreachable) @@ -6543,7 +8353,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 125) + (i32.const 131) (i32.const 0) ) (unreachable) @@ -6559,101 +8369,6 @@ (i32.const 752) ) ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 1) - ) - (i32.const 488) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 8) - ) - (i32.const 1368) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 123) - ) - (i32.const 320) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const -1000) - ) - (i32.const 1376) - ) - ) (block (call $~lib/env/abort (i32.const 0) @@ -6667,29 +8382,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 1234) + (call $~lib/internal/number/itoa32 + (i32.const 0) ) - (i32.const 1392) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 12345) - ) - (i32.const 1408) + (i32.const 480) ) ) (block @@ -6705,10 +8401,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 123456) + (call $~lib/internal/number/itoa32 + (i32.const 1) ) - (i32.const 1424) + (i32.const 488) ) ) (block @@ -6724,10 +8420,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 1111111) + (call $~lib/internal/number/itoa32 + (i32.const 8) ) - (i32.const 1440) + (i32.const 1296) ) ) (block @@ -6743,10 +8439,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 1234567) + (call $~lib/internal/number/itoa32 + (i32.const 123) ) - (i32.const 1464) + (i32.const 320) ) ) (block @@ -6762,10 +8458,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 2147483646) + (call $~lib/internal/number/itoa32 + (i32.const -1000) ) - (i32.const 1488) + (i32.const 1304) ) ) (block @@ -6781,10 +8477,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 2147483647) + (call $~lib/internal/number/itoa32 + (i32.const 1234) ) - (i32.const 1512) + (i32.const 1320) ) ) (block @@ -6800,10 +8496,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const -2147483648) + (call $~lib/internal/number/itoa32 + (i32.const 12345) ) - (i32.const 1536) + (i32.const 1336) ) ) (block @@ -6819,10 +8515,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const -1) + (call $~lib/internal/number/itoa32 + (i32.const 123456) ) - (i32.const 1568) + (i32.const 1352) ) ) (block @@ -6838,10 +8534,29 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 - (i32.const 0) + (call $~lib/internal/number/itoa32 + (i32.const 1111111) ) - (i32.const 480) + (i32.const 1368) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 142) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa32 + (i32.const 1234567) + ) + (i32.const 1392) ) ) (block @@ -6857,10 +8572,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 - (i32.const 1000) + (call $~lib/internal/number/itoa32 + (i32.const 2147483646) ) - (i32.const 1576) + (i32.const 1416) ) ) (block @@ -6876,10 +8591,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 + (call $~lib/internal/number/itoa32 (i32.const 2147483647) ) - (i32.const 1512) + (i32.const 1440) ) ) (block @@ -6895,10 +8610,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 + (call $~lib/internal/number/itoa32 (i32.const -2147483648) ) - (i32.const 1592) + (i32.const 1464) ) ) (block @@ -6914,10 +8629,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 + (call $~lib/internal/number/itoa32 (i32.const -1) ) - (i32.const 1616) + (i32.const 1496) ) ) (block @@ -6933,8 +8648,8 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 0) + (call $~lib/internal/number/utoa32 + (i32.const 0) ) (i32.const 480) ) @@ -6952,10 +8667,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 1234) + (call $~lib/internal/number/utoa32 + (i32.const 1000) ) - (i32.const 1392) + (i32.const 1504) ) ) (block @@ -6971,10 +8686,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 99999999) + (call $~lib/internal/number/utoa32 + (i32.const 2147483647) ) - (i32.const 2232) + (i32.const 1440) ) ) (block @@ -6990,10 +8705,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 100000000) + (call $~lib/internal/number/utoa32 + (i32.const -2147483648) ) - (i32.const 2256) + (i32.const 1520) ) ) (block @@ -7009,10 +8724,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 4294967295) + (call $~lib/internal/number/utoa32 + (i32.const -1) ) - (i32.const 1616) + (i32.const 1544) ) ) (block @@ -7028,29 +8743,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 68719476735) + (call $~lib/internal/number/utoa64 + (i64.const 0) ) - (i32.const 2280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 868719476735) - ) - (i32.const 2312) + (i32.const 480) ) ) (block @@ -7066,10 +8762,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 999868719476735) + (call $~lib/internal/number/utoa64 + (i64.const 1234) ) - (i32.const 2344) + (i32.const 1320) ) ) (block @@ -7085,10 +8781,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 9999868719476735) + (call $~lib/internal/number/utoa64 + (i64.const 99999999) ) - (i32.const 2384) + (i32.const 2088) ) ) (block @@ -7104,10 +8800,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 19999868719476735) + (call $~lib/internal/number/utoa64 + (i64.const 100000000) ) - (i32.const 2424) + (i32.const 2112) ) ) (block @@ -7123,10 +8819,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const -1) + (call $~lib/internal/number/utoa64 + (i64.const 4294967295) ) - (i32.const 2464) + (i32.const 1544) ) ) (block @@ -7142,10 +8838,29 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const 0) + (call $~lib/internal/number/utoa64 + (i64.const 68719476735) ) - (i32.const 480) + (i32.const 2136) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 160) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/utoa64 + (i64.const 868719476735) + ) + (i32.const 2168) ) ) (block @@ -7161,10 +8876,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -1234) + (call $~lib/internal/number/utoa64 + (i64.const 999868719476735) ) - (i32.const 2512) + (i32.const 2200) ) ) (block @@ -7180,10 +8895,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const 4294967295) + (call $~lib/internal/number/utoa64 + (i64.const 9999868719476735) ) - (i32.const 1616) + (i32.const 2240) ) ) (block @@ -7199,10 +8914,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -4294967295) + (call $~lib/internal/number/utoa64 + (i64.const 19999868719476735) ) - (i32.const 2528) + (i32.const 2280) ) ) (block @@ -7218,10 +8933,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const 68719476735) + (call $~lib/internal/number/utoa64 + (i64.const -1) ) - (i32.const 2280) + (i32.const 2320) ) ) (block @@ -7237,29 +8952,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -68719476735) + (call $~lib/internal/number/itoa64 + (i64.const 0) ) - (i32.const 2560) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -868719476735) - ) - (i32.const 2592) + (i32.const 480) ) ) (block @@ -7275,10 +8971,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -999868719476735) + (call $~lib/internal/number/itoa64 + (i64.const -1234) ) - (i32.const 2624) + (i32.const 2368) ) ) (block @@ -7294,10 +8990,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -19999868719476735) + (call $~lib/internal/number/itoa64 + (i64.const 4294967295) ) - (i32.const 2664) + (i32.const 1544) ) ) (block @@ -7313,10 +9009,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const 9223372036854775807) + (call $~lib/internal/number/itoa64 + (i64.const -4294967295) ) - (i32.const 2704) + (i32.const 2384) ) ) (block @@ -7332,10 +9028,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -9223372036854775808) + (call $~lib/internal/number/itoa64 + (i64.const 68719476735) ) - (i32.const 2752) + (i32.const 2136) ) ) (block @@ -7348,8 +9044,1186 @@ (unreachable) ) ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const -68719476735) + ) + (i32.const 2416) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 172) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const -868719476735) + ) + (i32.const 2448) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 173) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const -999868719476735) + ) + (i32.const 2480) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 174) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const -19999868719476735) + ) + (i32.const 2520) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 175) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const 9223372036854775807) + ) + (i32.const 2560) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 176) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const -9223372036854775808) + ) + (i32.const 2608) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 177) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0) + ) + (i32.const 2656) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 180) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -0) + ) + (i32.const 2656) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 181) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const nan:0x8000000000000) + ) + (i32.const 2672) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 182) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const inf) + ) + (i32.const 2712) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 183) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -inf) + ) + (i32.const 2688) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 184) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 2.220446049250313e-16) + ) + (i32.const 4104) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 185) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -2.220446049250313e-16) + ) + (i32.const 4152) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 186) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1797693134862315708145274e284) + ) + (i32.const 4200) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 187) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1797693134862315708145274e284) + ) + (i32.const 4256) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 188) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 4185580496821356722454785e274) + ) + (i32.const 4312) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 189) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 2.2250738585072014e-308) + ) + (i32.const 4360) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 190) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 2.9802322387695312e-08) + ) + (i32.const 4416) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 191) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -21098088986959632) + ) + (i32.const 4464) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 192) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 4.940656e-318) + ) + (i32.const 4512) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 193) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 9060801153433600) + ) + (i32.const 4544) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 194) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 4708356024711512064) + ) + (i32.const 4584) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 195) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 9409340012568248320) + ) + (i32.const 4632) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 196) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 5e-324) + ) + (i32.const 4680) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 197) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1) + ) + (i32.const 4696) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 203) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.1) + ) + (i32.const 592) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 204) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1) + ) + (i32.const 4712) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 205) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -0.1) + ) + (i32.const 4728) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 206) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e6) + ) + (i32.const 4744) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 208) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e-06) + ) + (i32.const 4768) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 209) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1e6) + ) + (i32.const 4792) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 210) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1e-06) + ) + (i32.const 4816) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 211) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e7) + ) + (i32.const 4840) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 212) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e-07) + ) + (i32.const 4864) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 213) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1.e+308) + ) + (i32.const 4880) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 215) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1.e+308) + ) + (i32.const 4896) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 216) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const inf) + ) + (i32.const 2712) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 217) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -inf) + ) + (i32.const 2688) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 218) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e-308) + ) + (i32.const 4920) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 219) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1e-308) + ) + (i32.const 4936) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 220) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e-323) + ) + (i32.const 4960) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 221) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1e-323) + ) + (i32.const 4976) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 222) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0) + ) + (i32.const 2656) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 223) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 4294967272) + ) + (i32.const 5000) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 225) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1.2312145673456234e-08) + ) + (i32.const 5032) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 226) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1.0471975511965976e-06) + ) + (i32.const 5080) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 227) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 555555555.5555556) + ) + (i32.const 5136) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 228) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.9999999999999999) + ) + (i32.const 5176) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 229) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1) + ) + (i32.const 4696) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 230) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 12.34) + ) + (i32.const 5216) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 231) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.30000000000000004) + ) + (i32.const 5232) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 232) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.3333333333333333) + ) + (i32.const 5280) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 233) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1234e17) + ) + (i32.const 5320) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 234) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1234e18) + ) + (i32.const 5376) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 235) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 2.71828) + ) + (i32.const 5400) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 236) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.0271828) + ) + (i32.const 5424) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 237) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 271.828) + ) + (i32.const 5448) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 238) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1.1e+128) + ) + (i32.const 5472) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 239) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1.1e-64) + ) + (i32.const 5496) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 240) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.000035689) + ) + (i32.const 5520) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 241) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 3402823466385288598117041e14) + ) + (i32.const 5552) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 243) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1.1920928955078125e-07) + ) + (i32.const 5600) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 244) + (i32.const 0) + ) + (unreachable) + ) + ) ) - (func $null (; 44 ;) (; has Stack IR ;) (type $v) + (func $null (; 52 ;) (; has Stack IR ;) (type $v) (nop) ) ) diff --git a/tests/compiler/std/string.ts b/tests/compiler/std/string.ts index 933e1a79..ed1a86a1 100644 --- a/tests/compiler/std/string.ts +++ b/tests/compiler/std/string.ts @@ -1,6 +1,12 @@ import "allocator/arena"; - -import { utoa32, itoa32, utoa64, itoa64 } from "internal/itoa"; +import { + utoa32, + itoa32, + utoa64, + itoa64, + itoa, + dtoa +} from "internal/number"; // preliminary @@ -169,3 +175,70 @@ assert(itoa64(-999868719476735) == "-999868719476735"); assert(itoa64(-19999868719476735) == "-19999868719476735"); assert(itoa64(i64.MAX_VALUE) == "9223372036854775807"); assert(itoa64(i64.MIN_VALUE) == "-9223372036854775808"); + +// special cases +assert(dtoa(0.0) == "0.0"); +assert(dtoa(-0.0) == "0.0"); +assert(dtoa(NaN) == "NaN"); +assert(dtoa(+Infinity) == "Infinity"); +assert(dtoa(-Infinity) == "-Infinity"); +assert(dtoa(+f64.EPSILON) == "2.220446049250313e-16"); +assert(dtoa(-f64.EPSILON) == "-2.220446049250313e-16"); +assert(dtoa(+f64.MAX_VALUE) == "1.7976931348623157e+308"); +assert(dtoa(-f64.MAX_VALUE) == "-1.7976931348623157e+308"); +assert(dtoa(4.185580496821357e+298) == "4.185580496821357e+298"); +assert(dtoa(2.2250738585072014e-308) == "2.2250738585072014e-308"); +assert(dtoa(2.98023223876953125e-8) == "2.9802322387695312e-8"); +assert(dtoa(-2.109808898695963e+16) == "-21098088986959630.0"); +assert(dtoa(4.940656E-318) == "4.940656e-318"); +assert(dtoa(9.0608011534336e+15) == "9060801153433600.0"); +assert(dtoa(4.708356024711512e+18) == "4708356024711512000.0"); +assert(dtoa(9.409340012568248e+18) == "9409340012568248000.0"); +assert(dtoa(5e-324) == "5e-324"); +// Known imprecise issue for Grisu alghoritm. Need workaround +// Expeced: 1.2345e+21 +// Actual: 1.2344999999999999e+21 +// assert(dtoa(1.2345e+21) == "1.2345e+21"); + +assert(dtoa(1.0) == "1.0"); +assert(dtoa(0.1) == "0.1"); +assert(dtoa(-1.0) == "-1.0"); +assert(dtoa(-0.1) == "-0.1"); + +assert(dtoa(1e+6) == "1000000.0"); +assert(dtoa(1e-6) == "0.000001"); +assert(dtoa(-1e+6) == "-1000000.0"); +assert(dtoa(-1e-6) == "-0.000001"); +assert(dtoa(1e+7) == "10000000.0"); +assert(dtoa(1e-7) == "1e-7"); + +assert(dtoa(1e+308) == "1e+308"); +assert(dtoa(-1e+308) == "-1e+308"); +assert(dtoa(1e+309) == "Infinity"); +assert(dtoa(-1e+309) == "-Infinity"); +assert(dtoa(1e-308) == "1e-308"); +assert(dtoa(-1e-308) == "-1e-308"); +assert(dtoa(1e-323) == "1e-323"); +assert(dtoa(-1e-323) == "-1e-323"); +assert(dtoa(1e-324) == "0.0"); + +assert(dtoa(4294967272) == "4294967272.0"); +assert(dtoa(1.23121456734562345678e-8) == "1.2312145673456234e-8"); +assert(dtoa(-0.0000010471975511965976) == "-0.0000010471975511965976"); +assert(dtoa(555555555.55555555) == "555555555.5555556"); +assert(dtoa(0.9999999999999999) == "0.9999999999999999"); +assert(dtoa(0.99999999999999995) == "1.0"); +assert(dtoa(1234e-2) == "12.34"); +assert(dtoa(0.1 + 0.2) == "0.30000000000000004"); +assert(dtoa(1.0 / 3.0) == "0.3333333333333333"); +assert(dtoa(1.234e+20) == "123400000000000000000.0"); +assert(dtoa(1.234e+21) == "1.234e+21"); +assert(dtoa(2.71828) == "2.71828"); +assert(dtoa(2.71828e-2) == "0.0271828"); +assert(dtoa(2.71828e+2) == "271.828"); +assert(dtoa(1.1e+128) == "1.1e+128"); +assert(dtoa(1.1e-64) == "1.1e-64"); +assert(dtoa(0.000035689) == "0.000035689"); + +assert(dtoa(f32.MAX_VALUE) == "3.4028234663852886e+38"); +assert(dtoa(f32.EPSILON) == "1.1920928955078125e-7"); diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 89a6435f..d166fb0b 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -11,6 +11,10 @@ (type $iF (func (param i32) (result f64))) (type $Ii (func (param i64) (result i32))) (type $iIiv (func (param i32 i64 i32))) + (type $Fi (func (param f64) (result i32))) + (type $iFi (func (param i32 f64) (result i32))) + (type $iIiIiIii (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (type $iv (func (param i32))) (type $v (func)) (import "env" "abort" (func $~lib/env/abort (param i32 i32 i32 i32))) (global $~lib/internal/allocator/AL_BITS i32 (i32.const 3)) @@ -23,6 +27,14 @@ (global $~lib/internal/string/MAX_LENGTH i32 (i32.const 536870910)) (global $~lib/internal/arraybuffer/HEADER_SIZE i32 (i32.const 8)) (global $~lib/internal/arraybuffer/MAX_BLENGTH i32 (i32.const 1073741816)) + (global $~lib/internal/number/MAX_DOUBLE_LENGTH i32 (i32.const 28)) + (global $~lib/internal/number/_K (mut i32) (i32.const 0)) + (global $~lib/internal/number/_frc (mut i64) (i64.const 0)) + (global $~lib/internal/number/_exp (mut i32) (i32.const 0)) + (global $~lib/internal/number/_frc_minus (mut i64) (i64.const 0)) + (global $~lib/internal/number/_frc_plus (mut i64) (i64.const 0)) + (global $~lib/internal/number/_frc_pow (mut i64) (i64.const 0)) + (global $~lib/internal/number/_exp_pow (mut i32) (i32.const 0)) (global $std/string/str (mut i32) (i32.const 8)) (global $std/string/nullStr (mut i32) (i32.const 0)) (global $~argc (mut i32) (i32.const 0)) @@ -45,12 +57,14 @@ (global $~lib/internal/string/CharCode.A i32 (i32.const 65)) (global $~lib/internal/string/CharCode.B i32 (i32.const 66)) (global $~lib/internal/string/CharCode.E i32 (i32.const 69)) + (global $~lib/internal/string/CharCode.N i32 (i32.const 78)) (global $~lib/internal/string/CharCode.O i32 (i32.const 79)) (global $~lib/internal/string/CharCode.X i32 (i32.const 88)) (global $~lib/internal/string/CharCode.Z i32 (i32.const 90)) (global $~lib/internal/string/CharCode.a i32 (i32.const 97)) (global $~lib/internal/string/CharCode.b i32 (i32.const 98)) (global $~lib/internal/string/CharCode.e i32 (i32.const 101)) + (global $~lib/internal/string/CharCode.n i32 (i32.const 110)) (global $~lib/internal/string/CharCode.o i32 (i32.const 111)) (global $~lib/internal/string/CharCode.x i32 (i32.const 120)) (global $~lib/internal/string/CharCode.z i32 (i32.const 122)) @@ -61,7 +75,12 @@ (global $~lib/builtins/u64.MAX_VALUE i64 (i64.const -1)) (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) (global $~lib/builtins/i64.MIN_VALUE i64 (i64.const -9223372036854775808)) - (global $HEAP_BASE i32 (i32.const 2796)) + (global $Infinity f64 (f64.const inf)) + (global $~lib/builtins/f64.EPSILON f64 (f64.const 2.220446049250313e-16)) + (global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284)) + (global $~lib/builtins/f32.MAX_VALUE f32 (f32.const 3402823466385288598117041e14)) + (global $~lib/builtins/f32.EPSILON f32 (f32.const 1.1920928955078125e-07)) + (global $HEAP_BASE i32 (i32.const 5648)) (table 1 1 anyfunc) (elem (i32.const 0) $null) (memory $0 1) @@ -113,44 +132,96 @@ (data (i32.const 720) "\05\00\00\00a\00a\00a\00a\00a\00") (data (i32.const 736) "\06\00\00\00a\00a\00a\00a\00a\00a\00") (data (i32.const 752) "\07\00\00\00a\00a\00a\00a\00a\00a\00a\00") - (data (i32.const 776) "(\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 840) "\08\03\00\00\n\00\00\00") - (data (i32.const 848) "\90\01\00\00\00\00\00\000\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\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\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1360) "P\03\00\00d\00\00\00") - (data (i32.const 1368) "\01\00\00\008\00") - (data (i32.const 1376) "\05\00\00\00-\001\000\000\000\00") - (data (i32.const 1392) "\04\00\00\001\002\003\004\00") - (data (i32.const 1408) "\05\00\00\001\002\003\004\005\00") - (data (i32.const 1424) "\06\00\00\001\002\003\004\005\006\00") - (data (i32.const 1440) "\07\00\00\001\001\001\001\001\001\001\00") - (data (i32.const 1464) "\07\00\00\001\002\003\004\005\006\007\00") - (data (i32.const 1488) "\n\00\00\002\001\004\007\004\008\003\006\004\006\00") - (data (i32.const 1512) "\n\00\00\002\001\004\007\004\008\003\006\004\007\00") - (data (i32.const 1536) "\0b\00\00\00-\002\001\004\007\004\008\003\006\004\008\00") - (data (i32.const 1568) "\02\00\00\00-\001\00") - (data (i32.const 1576) "\04\00\00\001\000\000\000\00") - (data (i32.const 1592) "\n\00\00\002\001\004\007\004\008\003\006\004\008\00") - (data (i32.const 1616) "\n\00\00\004\002\009\004\009\006\007\002\009\005\00") - (data (i32.const 1640) "(\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00d\00\00\00\e8\03\00\00\10\'\00\00\a0\86\01\00@B\0f\00\80\96\98\00\00\e1\f5\05\00\ca\9a;\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1704) "h\06\00\00\n\00\00\00") - (data (i32.const 1712) "\90\01\00\00\00\00\00\000\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\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\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2224) "\b0\06\00\00d\00\00\00") - (data (i32.const 2232) "\08\00\00\009\009\009\009\009\009\009\009\00") - (data (i32.const 2256) "\t\00\00\001\000\000\000\000\000\000\000\000\00") - (data (i32.const 2280) "\0b\00\00\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2312) "\0c\00\00\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2344) "\0f\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2384) "\10\00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2424) "\11\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2464) "\14\00\00\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00") - (data (i32.const 2512) "\05\00\00\00-\001\002\003\004\00") - (data (i32.const 2528) "\0b\00\00\00-\004\002\009\004\009\006\007\002\009\005\00") - (data (i32.const 2560) "\0c\00\00\00-\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2592) "\0d\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2624) "\10\00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2664) "\12\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2704) "\13\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00") - (data (i32.const 2752) "\14\00\00\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00") + (data (i32.const 776) "\90\01\00\00\00\00\00\000\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\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\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 1288) "\08\03\00\00d\00\00\00") + (data (i32.const 1296) "\01\00\00\008\00") + (data (i32.const 1304) "\05\00\00\00-\001\000\000\000\00") + (data (i32.const 1320) "\04\00\00\001\002\003\004\00") + (data (i32.const 1336) "\05\00\00\001\002\003\004\005\00") + (data (i32.const 1352) "\06\00\00\001\002\003\004\005\006\00") + (data (i32.const 1368) "\07\00\00\001\001\001\001\001\001\001\00") + (data (i32.const 1392) "\07\00\00\001\002\003\004\005\006\007\00") + (data (i32.const 1416) "\n\00\00\002\001\004\007\004\008\003\006\004\006\00") + (data (i32.const 1440) "\n\00\00\002\001\004\007\004\008\003\006\004\007\00") + (data (i32.const 1464) "\0b\00\00\00-\002\001\004\007\004\008\003\006\004\008\00") + (data (i32.const 1496) "\02\00\00\00-\001\00") + (data (i32.const 1504) "\04\00\00\001\000\000\000\00") + (data (i32.const 1520) "\n\00\00\002\001\004\007\004\008\003\006\004\008\00") + (data (i32.const 1544) "\n\00\00\004\002\009\004\009\006\007\002\009\005\00") + (data (i32.const 1568) "\90\01\00\00\00\00\00\000\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\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\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 2080) " \06\00\00d\00\00\00") + (data (i32.const 2088) "\08\00\00\009\009\009\009\009\009\009\009\00") + (data (i32.const 2112) "\t\00\00\001\000\000\000\000\000\000\000\000\00") + (data (i32.const 2136) "\0b\00\00\006\008\007\001\009\004\007\006\007\003\005\00") + (data (i32.const 2168) "\0c\00\00\008\006\008\007\001\009\004\007\006\007\003\005\00") + (data (i32.const 2200) "\0f\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") + (data (i32.const 2240) "\10\00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") + (data (i32.const 2280) "\11\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") + (data (i32.const 2320) "\14\00\00\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00") + (data (i32.const 2368) "\05\00\00\00-\001\002\003\004\00") + (data (i32.const 2384) "\0b\00\00\00-\004\002\009\004\009\006\007\002\009\005\00") + (data (i32.const 2416) "\0c\00\00\00-\006\008\007\001\009\004\007\006\007\003\005\00") + (data (i32.const 2448) "\0d\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005\00") + (data (i32.const 2480) "\10\00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") + (data (i32.const 2520) "\12\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") + (data (i32.const 2560) "\13\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00") + (data (i32.const 2608) "\14\00\00\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00") + (data (i32.const 2656) "\03\00\00\000\00.\000\00") + (data (i32.const 2672) "\03\00\00\00N\00a\00N\00") + (data (i32.const 2688) "\t\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 2712) "\08\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 2736) "\b8\02\00\00\00\00\00\00\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|inlined.0 (result i32) - (i32.load offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $2) + (block + (if + (i32.lt_u + (get_local $0) + (i32.const 100) + ) + (return + (select + (i32.const 1) (i32.const 2) + (i32.lt_u + (get_local $0) + (i32.const 10) + ) + ) + ) + (block + (set_local $1 + (select + (i32.const 4) + (i32.const 5) + (i32.lt_u + (get_local $0) + (i32.const 10000) + ) + ) + ) + (return + (select + (i32.const 3) + (get_local $1) + (i32.lt_u + (get_local $0) + (i32.const 1000) + ) + ) ) ) ) + (unreachable) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i32.lt_u - (get_local $0) - (get_local $4) + (block + (if + (i32.lt_u + (get_local $0) + (i32.const 10000000) + ) + (return + (select + (i32.const 6) + (i32.const 7) + (i32.lt_u + (get_local $0) + (i32.const 1000000) + ) + ) + ) + (block + (set_local $1 + (select + (i32.const 9) + (i32.const 10) + (i32.lt_u + (get_local $0) + (i32.const 1000000000) + ) + ) + ) + (return + (select + (i32.const 8) + (get_local $1) + (i32.lt_u + (get_local $0) + (i32.const 100000000) + ) + ) + ) + ) ) + (unreachable) ) ) - (i32.add - (get_local $2) - (i32.const 1) - ) + (unreachable) ) - (func $~lib/internal/itoa/utoa32_lut (; 36 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/number/utoa32_lut (; 36 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5161,8 +5268,8 @@ (local $9 i64) (set_local $3 (i32.load - (block $~lib/internal/itoa/DIGITS|inlined.0 (result i32) - (i32.const 1360) + (block $~lib/internal/number/DIGITS|inlined.0 (result i32) + (i32.const 1288) ) ) ) @@ -5284,7 +5391,7 @@ ) ) (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) (i32.load offset=8 (i32.add (get_local $3) @@ -5321,7 +5428,7 @@ ) ) (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i32) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.1 (result i32) (i32.load offset=8 (i32.add (get_local $3) @@ -5370,7 +5477,7 @@ ) ) ) - (func $~lib/internal/itoa/itoa32 (; 37 ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/itoa32 (; 37 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5399,7 +5506,7 @@ ) (set_local $2 (i32.add - (call $~lib/internal/itoa/decimalCountU32 + (call $~lib/internal/number/decimalCount32 (get_local $0) ) (get_local $1) @@ -5410,8 +5517,8 @@ (get_local $2) ) ) - (block $~lib/internal/itoa/utoa32_core|inlined.0 - (call $~lib/internal/itoa/utoa32_lut + (block $~lib/internal/number/utoa32_core|inlined.0 + (call $~lib/internal/number/utoa32_lut (get_local $3) (get_local $0) (get_local $2) @@ -5426,7 +5533,7 @@ ) (get_local $3) ) - (func $~lib/internal/itoa/utoa32 (; 38 ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/utoa32 (; 38 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (if @@ -5438,7 +5545,7 @@ ) ) (set_local $1 - (call $~lib/internal/itoa/decimalCountU32 + (call $~lib/internal/number/decimalCount32 (get_local $0) ) ) @@ -5447,8 +5554,8 @@ (get_local $1) ) ) - (block $~lib/internal/itoa/utoa32_core|inlined.1 - (call $~lib/internal/itoa/utoa32_lut + (block $~lib/internal/number/utoa32_core|inlined.1 + (call $~lib/internal/number/utoa32_lut (get_local $2) (get_local $0) (get_local $1) @@ -5456,75 +5563,99 @@ ) (get_local $2) ) - (func $~lib/internal/itoa/decimalCountU64 (; 39 ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/decimalCount64 (; 39 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i64) - (set_local $1 - (i32.sub - (i32.const 64) - (i32.wrap/i64 - (i64.clz + (if + (i64.lt_u + (get_local $0) + (i64.const 1000000000000000) + ) + (block + (if + (i64.lt_u (get_local $0) + (i64.const 1000000000000) ) - ) - ) - ) - (set_local $2 - (i32.shr_u - (i32.mul - (get_local $1) - (i32.const 1233) - ) - (i32.const 12) - ) - ) - (set_local $3 - (i32.load - (block $~lib/internal/itoa/POWERS10|inlined.1 (result i32) - (i32.const 1704) - ) - ) - ) - (set_local $5 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) - (set_local $4 - (i32.sub - (get_local $2) - (i32.const 10) + (return + (select + (i32.const 11) + (i32.const 12) + (i64.lt_u + (get_local $0) + (i64.const 100000000000) + ) + ) ) - ) - (i64.load32_u offset=8 - (i32.add - (get_local $3) - (i32.shl - (get_local $4) - (i32.const 2) + (block + (set_local $1 + (select + (i32.const 14) + (i32.const 15) + (i64.lt_u + (get_local $0) + (i64.const 100000000000000) + ) + ) + ) + (return + (select + (i32.const 13) + (get_local $1) + (i64.lt_u + (get_local $0) + (i64.const 10000000000000) + ) + ) ) ) ) + (unreachable) ) - ) - (set_local $2 - (i32.sub - (get_local $2) - (i64.lt_u - (get_local $0) - (i64.mul - (i64.const 10000000000) - (get_local $5) + (block + (if + (i64.lt_u + (get_local $0) + (i64.const 100000000000000000) + ) + (return + (select + (i32.const 16) + (i32.const 17) + (i64.lt_u + (get_local $0) + (i64.const 10000000000000000) + ) + ) + ) + (block + (set_local $1 + (select + (i32.const 19) + (i32.const 20) + (i64.lt_u + (get_local $0) + (i64.const -8446744073709551616) + ) + ) + ) + (return + (select + (i32.const 18) + (get_local $1) + (i64.lt_u + (get_local $0) + (i64.const 1000000000000000000) + ) + ) + ) ) ) + (unreachable) ) ) - (i32.add - (get_local $2) - (i32.const 1) - ) + (unreachable) ) - (func $~lib/internal/itoa/utoa64_lut (; 40 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/internal/number/utoa64_lut (; 40 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -5538,8 +5669,8 @@ (local $13 i64) (set_local $3 (i32.load - (block $~lib/internal/itoa/DIGITS|inlined.1 (result i32) - (i32.const 2224) + (block $~lib/internal/number/DIGITS|inlined.1 (result i32) + (i32.const 2080) ) ) ) @@ -5609,7 +5740,7 @@ ) ) (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.2 (result i64) (i64.load32_u offset=8 (i32.add (get_local $3) @@ -5622,7 +5753,7 @@ ) ) (set_local $13 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i64) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.3 (result i64) (i64.load32_u offset=8 (i32.add (get_local $3) @@ -5657,7 +5788,7 @@ ) ) (set_local $12 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i64) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.4 (result i64) (i64.load32_u offset=8 (i32.add (get_local $3) @@ -5670,7 +5801,7 @@ ) ) (set_local $13 - (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i64) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.5 (result i64) (i64.load32_u offset=8 (i32.add (get_local $3) @@ -5710,7 +5841,7 @@ ) ) ) - (call $~lib/internal/itoa/utoa32_lut + (call $~lib/internal/number/utoa32_lut (get_local $0) (i32.wrap/i64 (get_local $1) @@ -5718,7 +5849,7 @@ (get_local $2) ) ) - (func $~lib/internal/itoa/utoa64 (; 41 ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/utoa64 (; 41 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5744,7 +5875,7 @@ ) ) (set_local $3 - (call $~lib/internal/itoa/decimalCountU32 + (call $~lib/internal/number/decimalCount32 (get_local $2) ) ) @@ -5753,8 +5884,8 @@ (get_local $3) ) ) - (block $~lib/internal/itoa/utoa32_core|inlined.2 - (call $~lib/internal/itoa/utoa32_lut + (block $~lib/internal/number/utoa32_core|inlined.2 + (call $~lib/internal/number/utoa32_lut (get_local $1) (get_local $2) (get_local $3) @@ -5763,7 +5894,7 @@ ) (block (set_local $3 - (call $~lib/internal/itoa/decimalCountU64 + (call $~lib/internal/number/decimalCount64 (get_local $0) ) ) @@ -5772,8 +5903,8 @@ (get_local $3) ) ) - (block $~lib/internal/itoa/utoa64_core|inlined.0 - (call $~lib/internal/itoa/utoa64_lut + (block $~lib/internal/number/utoa64_core|inlined.0 + (call $~lib/internal/number/utoa64_lut (get_local $1) (get_local $0) (get_local $3) @@ -5783,7 +5914,7 @@ ) (get_local $1) ) - (func $~lib/internal/itoa/itoa64 (; 42 ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/itoa64 (; 42 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5826,7 +5957,7 @@ ) (set_local $4 (i32.add - (call $~lib/internal/itoa/decimalCountU32 + (call $~lib/internal/number/decimalCount32 (get_local $3) ) (get_local $1) @@ -5837,8 +5968,8 @@ (get_local $4) ) ) - (block $~lib/internal/itoa/utoa32_core|inlined.3 - (call $~lib/internal/itoa/utoa32_lut + (block $~lib/internal/number/utoa32_core|inlined.3 + (call $~lib/internal/number/utoa32_lut (get_local $2) (get_local $3) (get_local $4) @@ -5848,7 +5979,7 @@ (block (set_local $4 (i32.add - (call $~lib/internal/itoa/decimalCountU64 + (call $~lib/internal/number/decimalCount64 (get_local $0) ) (get_local $1) @@ -5859,8 +5990,8 @@ (get_local $4) ) ) - (block $~lib/internal/itoa/utoa64_core|inlined.1 - (call $~lib/internal/itoa/utoa64_lut + (block $~lib/internal/number/utoa64_core|inlined.1 + (call $~lib/internal/number/utoa64_lut (get_local $2) (get_local $0) (get_local $4) @@ -5877,7 +6008,2099 @@ ) (get_local $2) ) - (func $start (; 43 ;) (type $v) + (func $~lib/builtins/isFinite (; 43 ;) (type $Fi) (param $0 f64) (result i32) + (f64.eq + (f64.sub + (get_local $0) + (get_local $0) + ) + (f64.const 0) + ) + ) + (func $~lib/builtins/isNaN (; 44 ;) (type $Fi) (param $0 f64) (result i32) + (f64.ne + (get_local $0) + (get_local $0) + ) + ) + (func $~lib/internal/number/genDigits (; 45 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (local $7 i32) + (local $8 i64) + (local $9 i64) + (local $10 i64) + (local $11 i32) + (local $12 i32) + (local $13 i64) + (local $14 i32) + (local $15 i32) + (local $16 i32) + (local $17 i32) + (local $18 i32) + (local $19 i64) + (local $20 i64) + (local $21 i32) + (local $22 i32) + (set_local $7 + (i32.sub + (i32.const 0) + (get_local $4) + ) + ) + (set_local $8 + (i64.shl + (i64.const 1) + (i64.extend_s/i32 + (get_local $7) + ) + ) + ) + (set_local $9 + (i64.sub + (get_local $8) + (i64.const 1) + ) + ) + (set_local $10 + (i64.sub + (get_local $3) + (get_local $1) + ) + ) + (set_local $11 + (get_local $4) + ) + (set_local $12 + (i32.wrap/i64 + (i64.shr_u + (get_local $3) + (i64.extend_s/i32 + (get_local $7) + ) + ) + ) + ) + (set_local $13 + (i64.and + (get_local $3) + (get_local $9) + ) + ) + (set_local $14 + (call $~lib/internal/number/decimalCount32 + (get_local $12) + ) + ) + (set_local $15 + (get_local $6) + ) + (set_local $16 + (i32.load + (block $~lib/internal/number/POWERS10|inlined.0 (result i32) + (i32.const 4096) + ) + ) + ) + (block $break|0 + (loop $continue|0 + (if + (i32.gt_s + (get_local $14) + (i32.const 0) + ) + (block + (block + (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 + (set_local $18 + (get_local $14) + ) + (br_if $case0|1 + (i32.eq + (get_local $18) + (i32.const 10) + ) + ) + (br_if $case1|1 + (i32.eq + (get_local $18) + (i32.const 9) + ) + ) + (br_if $case2|1 + (i32.eq + (get_local $18) + (i32.const 8) + ) + ) + (br_if $case3|1 + (i32.eq + (get_local $18) + (i32.const 7) + ) + ) + (br_if $case4|1 + (i32.eq + (get_local $18) + (i32.const 6) + ) + ) + (br_if $case5|1 + (i32.eq + (get_local $18) + (i32.const 5) + ) + ) + (br_if $case6|1 + (i32.eq + (get_local $18) + (i32.const 4) + ) + ) + (br_if $case7|1 + (i32.eq + (get_local $18) + (i32.const 3) + ) + ) + (br_if $case8|1 + (i32.eq + (get_local $18) + (i32.const 2) + ) + ) + (br_if $case9|1 + (i32.eq + (get_local $18) + (i32.const 1) + ) + ) + (br $case10|1) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 1000000000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 1000000000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 100000000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 100000000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 10000000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 10000000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 1000000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 1000000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 100000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 100000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 10000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 10000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 1000) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 1000) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 100) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 100) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.div_u + (get_local $12) + (i32.const 10) + ) + ) + (set_local $12 + (i32.rem_u + (get_local $12) + (i32.const 10) + ) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (get_local $12) + ) + (set_local $12 + (i32.const 0) + ) + (br $break|1) + ) + ) + (block + (set_local $17 + (i32.const 0) + ) + (br $break|1) + ) + ) + (if + (i32.or + (get_local $17) + (get_local $15) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (block (result i32) + (set_local $18 + (get_local $15) + ) + (set_local $15 + (i32.add + (get_local $18) + (i32.const 1) + ) + ) + (get_local $18) + ) + (i32.const 1) + ) + ) + (i32.add + (get_global $~lib/internal/string/CharCode._0) + (i32.and + (get_local $17) + (i32.const 65535) + ) + ) + ) + ) + (set_local $14 + (i32.sub + (get_local $14) + (i32.const 1) + ) + ) + (set_local $19 + (i64.add + (i64.shl + (i64.extend_u/i32 + (get_local $12) + ) + (i64.extend_s/i32 + (get_local $7) + ) + ) + (get_local $13) + ) + ) + (if + (i64.le_u + (get_local $19) + (get_local $5) + ) + (block + (set_global $~lib/internal/number/_K + (i32.add + (get_global $~lib/internal/number/_K) + (get_local $14) + ) + ) + (block $~lib/internal/number/grisuRound|inlined.0 + (set_local $20 + (i64.shl + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.6 (result i64) + (i64.load32_u offset=8 + (i32.add + (get_local $16) + (i32.shl + (get_local $14) + (i32.const 2) + ) + ) + ) + ) + (i64.extend_s/i32 + (get_local $7) + ) + ) + ) + (set_local $18 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $15) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (set_local $21 + (i32.load16_u offset=4 + (get_local $18) + ) + ) + (block $break|2 + (loop $continue|2 + (if + (if (result i32) + (tee_local $22 + (if (result i32) + (tee_local $22 + (i64.lt_u + (get_local $19) + (get_local $10) + ) + ) + (i64.ge_u + (i64.sub + (get_local $5) + (get_local $19) + ) + (get_local $20) + ) + (get_local $22) + ) + ) + (if (result i32) + (tee_local $22 + (i64.lt_u + (i64.add + (get_local $19) + (get_local $20) + ) + (get_local $10) + ) + ) + (get_local $22) + (i64.gt_u + (i64.sub + (get_local $10) + (get_local $19) + ) + (i64.sub + (i64.add + (get_local $19) + (get_local $20) + ) + (get_local $10) + ) + ) + ) + (get_local $22) + ) + (block + (block + (set_local $21 + (i32.sub + (get_local $21) + (i32.const 1) + ) + ) + (set_local $19 + (i64.add + (get_local $19) + (get_local $20) + ) + ) + ) + (br $continue|2) + ) + ) + ) + ) + (i32.store16 offset=4 + (get_local $18) + (get_local $21) + ) + ) + (return + (get_local $15) + ) + ) + ) + ) + (br $continue|0) + ) + ) + ) + ) + (block $break|3 + (loop $continue|3 + (if + (i32.const 1) + (block + (block + (set_local $13 + (i64.mul + (get_local $13) + (i64.const 10) + ) + ) + (set_local $5 + (i64.mul + (get_local $5) + (i64.const 10) + ) + ) + (set_local $19 + (i64.shr_u + (get_local $13) + (i64.extend_s/i32 + (get_local $7) + ) + ) + ) + (if + (i64.ne + (i64.or + (get_local $19) + (i64.extend_s/i32 + (get_local $15) + ) + ) + (i64.const 0) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (block (result i32) + (set_local $17 + (get_local $15) + ) + (set_local $15 + (i32.add + (get_local $17) + (i32.const 1) + ) + ) + (get_local $17) + ) + (i32.const 1) + ) + ) + (i32.add + (get_global $~lib/internal/string/CharCode._0) + (i32.and + (i32.wrap/i64 + (get_local $19) + ) + (i32.const 65535) + ) + ) + ) + ) + (set_local $13 + (i64.and + (get_local $13) + (get_local $9) + ) + ) + (set_local $14 + (i32.sub + (get_local $14) + (i32.const 1) + ) + ) + (if + (i64.lt_u + (get_local $13) + (get_local $5) + ) + (block + (set_global $~lib/internal/number/_K + (i32.add + (get_global $~lib/internal/number/_K) + (get_local $14) + ) + ) + (set_local $10 + (i64.mul + (get_local $10) + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.7 (result i64) + (set_local $17 + (i32.sub + (i32.const 0) + (get_local $14) + ) + ) + (i64.load32_u offset=8 + (i32.add + (get_local $16) + (i32.shl + (get_local $17) + (i32.const 2) + ) + ) + ) + ) + ) + ) + (block $~lib/internal/number/grisuRound|inlined.1 + (set_local $17 + (i32.add + (get_local $0) + (i32.shl + (i32.sub + (get_local $15) + (i32.const 1) + ) + (i32.const 1) + ) + ) + ) + (set_local $21 + (i32.load16_u offset=4 + (get_local $17) + ) + ) + (block $break|4 + (loop $continue|4 + (if + (if (result i32) + (tee_local $18 + (if (result i32) + (tee_local $18 + (i64.lt_u + (get_local $13) + (get_local $10) + ) + ) + (i64.ge_u + (i64.sub + (get_local $5) + (get_local $13) + ) + (get_local $8) + ) + (get_local $18) + ) + ) + (if (result i32) + (tee_local $18 + (i64.lt_u + (i64.add + (get_local $13) + (get_local $8) + ) + (get_local $10) + ) + ) + (get_local $18) + (i64.gt_u + (i64.sub + (get_local $10) + (get_local $13) + ) + (i64.sub + (i64.add + (get_local $13) + (get_local $8) + ) + (get_local $10) + ) + ) + ) + (get_local $18) + ) + (block + (block + (set_local $21 + (i32.sub + (get_local $21) + (i32.const 1) + ) + ) + (set_local $13 + (i64.add + (get_local $13) + (get_local $8) + ) + ) + ) + (br $continue|4) + ) + ) + ) + ) + (i32.store16 offset=4 + (get_local $17) + (get_local $21) + ) + ) + (return + (get_local $15) + ) + ) + ) + ) + (br $continue|3) + ) + ) + ) + ) + (get_local $15) + ) + (func $~lib/internal/number/prettify (; 46 ;) (type $iiii) (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) + (if + (i32.eqz + (get_local $2) + ) + (block + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (i32.or + (get_global $~lib/internal/string/CharCode.DOT) + (i32.shl + (get_global $~lib/internal/string/CharCode._0) + (i32.const 16) + ) + ) + ) + (return + (i32.add + (get_local $1) + (i32.const 2) + ) + ) + ) + ) + (set_local $3 + (i32.add + (get_local $1) + (get_local $2) + ) + ) + (if + (if (result i32) + (tee_local $4 + (i32.le_s + (get_local $1) + (get_local $3) + ) + ) + (i32.le_s + (get_local $3) + (i32.const 21) + ) + (get_local $4) + ) + (block + (block $break|0 + (set_local $4 + (get_local $1) + ) + (loop $repeat|0 + (br_if $break|0 + (i32.eqz + (i32.lt_s + (get_local $4) + (get_local $3) + ) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + (get_global $~lib/internal/string/CharCode._0) + ) + (set_local $4 + (i32.add + (get_local $4) + (i32.const 1) + ) + ) + (br $repeat|0) + ) + ) + (i32.store offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) + (i32.or + (get_global $~lib/internal/string/CharCode.DOT) + (i32.shl + (get_global $~lib/internal/string/CharCode._0) + (i32.const 16) + ) + ) + ) + (return + (i32.add + (get_local $3) + (i32.const 2) + ) + ) + ) + (if + (if (result i32) + (tee_local $4 + (i32.gt_s + (get_local $3) + (i32.const 0) + ) + ) + (i32.le_s + (get_local $3) + (i32.const 21) + ) + (get_local $4) + ) + (block + (set_local $4 + (i32.add + (get_local $0) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) + ) + (block $~lib/memory/memory.copy|inlined.2 + (set_local $5 + (i32.add + (i32.add + (get_local $4) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + (i32.const 2) + ) + ) + (set_local $6 + (i32.add + (get_local $4) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + ) + (set_local $7 + (i32.shl + (i32.sub + (i32.const 0) + (get_local $2) + ) + (i32.const 1) + ) + ) + (call $~lib/internal/memory/memmove + (get_local $5) + (get_local $6) + (get_local $7) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $3) + (i32.const 1) + ) + ) + (get_global $~lib/internal/string/CharCode.DOT) + ) + (return + (i32.add + (get_local $1) + (i32.const 1) + ) + ) + ) + (if + (if (result i32) + (tee_local $4 + (i32.lt_s + (i32.const -6) + (get_local $3) + ) + ) + (i32.le_s + (get_local $3) + (i32.const 0) + ) + (get_local $4) + ) + (block + (set_local $4 + (i32.sub + (i32.const 2) + (get_local $3) + ) + ) + (block $~lib/memory/memory.copy|inlined.3 + (set_local $7 + (i32.add + (i32.add + (get_local $0) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + (i32.shl + (get_local $4) + (i32.const 1) + ) + ) + ) + (set_local $6 + (i32.add + (get_local $0) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + ) + (set_local $5 + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (call $~lib/internal/memory/memmove + (get_local $7) + (get_local $6) + (get_local $5) + ) + ) + (i32.store offset=4 + (get_local $0) + (i32.or + (get_global $~lib/internal/string/CharCode._0) + (i32.shl + (get_global $~lib/internal/string/CharCode.DOT) + (i32.const 16) + ) + ) + ) + (block $break|1 + (set_local $5 + (i32.const 2) + ) + (loop $repeat|1 + (br_if $break|1 + (i32.eqz + (i32.lt_s + (get_local $5) + (get_local $4) + ) + ) + ) + (i32.store16 offset=4 + (i32.add + (get_local $0) + (i32.shl + (get_local $5) + (i32.const 1) + ) + ) + (get_global $~lib/internal/string/CharCode._0) + ) + (set_local $5 + (i32.add + (get_local $5) + (i32.const 1) + ) + ) + (br $repeat|1) + ) + ) + (return + (i32.add + (get_local $1) + (get_local $4) + ) + ) + ) + (if + (i32.eq + (get_local $1) + (i32.const 1) + ) + (block + (i32.store16 offset=6 + (get_local $0) + (get_global $~lib/internal/string/CharCode.e) + ) + (set_local $1 + (block $~lib/internal/number/genExponent|inlined.0 (result i32) + (set_local $4 + (i32.add + (get_local $0) + (i32.const 4) + ) + ) + (set_local $5 + (i32.sub + (get_local $3) + (i32.const 1) + ) + ) + (set_local $6 + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + (if + (get_local $6) + (set_local $5 + (i32.sub + (i32.const 0) + (get_local $5) + ) + ) + ) + (set_local $7 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $5) + ) + (i32.const 1) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.4 + (call $~lib/internal/number/utoa32_lut + (get_local $4) + (get_local $5) + (get_local $7) + ) + ) + (i32.store16 offset=4 + (get_local $4) + (select + (get_global $~lib/internal/string/CharCode.MINUS) + (get_global $~lib/internal/string/CharCode.PLUS) + (get_local $6) + ) + ) + (get_local $7) + ) + ) + (return + (i32.add + (get_local $1) + (i32.const 2) + ) + ) + ) + (block + (set_local $7 + (i32.shl + (get_local $1) + (i32.const 1) + ) + ) + (block $~lib/memory/memory.copy|inlined.4 + (set_local $6 + (i32.add + (i32.add + (get_local $0) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + (i32.const 4) + ) + ) + (set_local $5 + (i32.add + (i32.add + (get_local $0) + (get_global $~lib/internal/string/HEADER_SIZE) + ) + (i32.const 2) + ) + ) + (set_local $4 + (i32.sub + (get_local $7) + (i32.const 2) + ) + ) + (call $~lib/internal/memory/memmove + (get_local $6) + (get_local $5) + (get_local $4) + ) + ) + (i32.store16 offset=6 + (get_local $0) + (get_global $~lib/internal/string/CharCode.DOT) + ) + (i32.store16 offset=6 + (i32.add + (get_local $0) + (get_local $7) + ) + (get_global $~lib/internal/string/CharCode.e) + ) + (set_local $1 + (i32.add + (get_local $1) + (block $~lib/internal/number/genExponent|inlined.1 (result i32) + (set_local $4 + (i32.add + (i32.add + (get_local $0) + (get_local $7) + ) + (i32.const 4) + ) + ) + (set_local $5 + (i32.sub + (get_local $3) + (i32.const 1) + ) + ) + (set_local $6 + (i32.lt_s + (get_local $5) + (i32.const 0) + ) + ) + (if + (get_local $6) + (set_local $5 + (i32.sub + (i32.const 0) + (get_local $5) + ) + ) + ) + (set_local $8 + (i32.add + (call $~lib/internal/number/decimalCount32 + (get_local $5) + ) + (i32.const 1) + ) + ) + (block $~lib/internal/number/utoa32_core|inlined.5 + (call $~lib/internal/number/utoa32_lut + (get_local $4) + (get_local $5) + (get_local $8) + ) + ) + (i32.store16 offset=4 + (get_local $4) + (select + (get_global $~lib/internal/string/CharCode.MINUS) + (get_global $~lib/internal/string/CharCode.PLUS) + (get_local $6) + ) + ) + (get_local $8) + ) + ) + ) + (return + (i32.add + (get_local $1) + (i32.const 2) + ) + ) + ) + ) + ) + ) + ) + (unreachable) + ) + (func $~lib/internal/number/dtoa_core (; 47 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i64) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 f64) + (local $12 i32) + (local $13 i32) + (local $14 i64) + (local $15 i64) + (local $16 i64) + (local $17 i64) + (local $18 i64) + (local $19 i64) + (local $20 i64) + (local $21 i64) + (local $22 i64) + (local $23 i64) + (local $24 i32) + (set_local $2 + (f64.lt + (get_local $1) + (f64.const 0) + ) + ) + (if + (get_local $2) + (block + (set_local $1 + (f64.neg + (get_local $1) + ) + ) + (i32.store16 offset=4 + (get_local $0) + (get_global $~lib/internal/string/CharCode.MINUS) + ) + ) + ) + (set_local $24 + (block $~lib/internal/number/grisu2|inlined.0 (result i32) + (set_local $3 + (i64.reinterpret/f64 + (get_local $1) + ) + ) + (set_local $4 + (i32.wrap/i64 + (i64.shr_u + (i64.and + (get_local $3) + (i64.const 9218868437227405312) + ) + (i64.const 52) + ) + ) + ) + (set_local $5 + (i64.and + (get_local $3) + (i64.const 4503599627370495) + ) + ) + (set_local $6 + (i64.add + (i64.shl + (i64.extend_u/i32 + (i32.ne + (get_local $4) + (i32.const 0) + ) + ) + (i64.const 52) + ) + (get_local $5) + ) + ) + (set_local $4 + (i32.sub + (select + (get_local $4) + (i32.const 1) + (i32.ne + (get_local $4) + (i32.const 0) + ) + ) + (i32.add + (i32.const 1023) + (i32.const 52) + ) + ) + ) + (block $~lib/internal/number/normalizedBoundaries|inlined.0 + (set_local $7 + (i64.add + (i64.shl + (get_local $6) + (i64.const 1) + ) + (i64.const 1) + ) + ) + (set_local $8 + (i32.sub + (get_local $4) + (i32.const 1) + ) + ) + (set_local $9 + (i32.wrap/i64 + (i64.clz + (get_local $7) + ) + ) + ) + (set_local $7 + (i64.shl + (get_local $7) + (i64.extend_s/i32 + (get_local $9) + ) + ) + ) + (set_local $8 + (i32.sub + (get_local $8) + (get_local $9) + ) + ) + (set_local $10 + (i32.add + (i32.const 1) + (i64.eq + (get_local $6) + (i64.const 4503599627370496) + ) + ) + ) + (set_global $~lib/internal/number/_frc_plus + (get_local $7) + ) + (set_global $~lib/internal/number/_frc_minus + (i64.shl + (i64.sub + (i64.shl + (get_local $6) + (i64.extend_s/i32 + (get_local $10) + ) + ) + (i64.const 1) + ) + (i64.extend_s/i32 + (i32.sub + (i32.sub + (get_local $4) + (get_local $10) + ) + (get_local $8) + ) + ) + ) + ) + (set_global $~lib/internal/number/_exp + (get_local $8) + ) + ) + (block $~lib/internal/number/getCachedPower|inlined.0 + (set_local $10 + (get_global $~lib/internal/number/_exp) + ) + (set_local $11 + (f64.add + (f64.mul + (f64.convert_s/i32 + (i32.sub + (i32.const -61) + (get_local $10) + ) + ) + (f64.const 0.30102999566398114) + ) + (f64.const 347) + ) + ) + (set_local $9 + (i32.trunc_s/f64 + (get_local $11) + ) + ) + (set_local $9 + (i32.add + (get_local $9) + (f64.ne + (f64.convert_s/i32 + (get_local $9) + ) + (get_local $11) + ) + ) + ) + (set_local $8 + (i32.add + (i32.shr_s + (get_local $9) + (i32.const 3) + ) + (i32.const 1) + ) + ) + (set_global $~lib/internal/number/_K + (i32.sub + (i32.const 348) + (i32.shl + (get_local $8) + (i32.const 3) + ) + ) + ) + (set_local $12 + (i32.load + (block $~lib/internal/number/FRC_POWERS|inlined.0 (result i32) + (i32.const 3760) + ) + ) + ) + (set_local $13 + (i32.load + (block $~lib/internal/number/EXP_POWERS|inlined.0 (result i32) + (i32.const 4024) + ) + ) + ) + (set_global $~lib/internal/number/_frc_pow + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i64) + (i64.load offset=8 + (i32.add + (get_local $12) + (i32.shl + (get_local $8) + (i32.const 3) + ) + ) + ) + ) + ) + (set_global $~lib/internal/number/_exp_pow + (block $~lib/internal/arraybuffer/loadUnsafe|inlined.0 (result i32) + (i32.load16_s offset=8 + (i32.add + (get_local $13) + (i32.shl + (get_local $8) + (i32.const 1) + ) + ) + ) + ) + ) + ) + (set_local $13 + (i32.wrap/i64 + (i64.clz + (get_local $6) + ) + ) + ) + (set_local $6 + (i64.shl + (get_local $6) + (i64.extend_s/i32 + (get_local $13) + ) + ) + ) + (set_local $4 + (i32.sub + (get_local $4) + (get_local $13) + ) + ) + (set_local $7 + (get_global $~lib/internal/number/_frc_pow) + ) + (set_local $12 + (get_global $~lib/internal/number/_exp_pow) + ) + (set_local $20 + (block $~lib/internal/number/umul64f|inlined.0 (result i64) + (set_local $14 + (i64.and + (get_local $6) + (i64.const 4294967295) + ) + ) + (set_local $15 + (i64.and + (get_local $7) + (i64.const 4294967295) + ) + ) + (set_local $16 + (i64.shr_u + (get_local $6) + (i64.const 32) + ) + ) + (set_local $17 + (i64.shr_u + (get_local $7) + (i64.const 32) + ) + ) + (set_local $18 + (i64.mul + (get_local $14) + (get_local $15) + ) + ) + (set_local $19 + (i64.add + (i64.mul + (get_local $16) + (get_local $15) + ) + (i64.shr_u + (get_local $18) + (i64.const 32) + ) + ) + ) + (set_local $20 + (i64.add + (i64.mul + (get_local $14) + (get_local $17) + ) + (i64.and + (get_local $19) + (i64.const 4294967295) + ) + ) + ) + (set_local $20 + (i64.add + (get_local $20) + (i64.const 2147483647) + ) + ) + (set_local $19 + (i64.shr_u + (get_local $19) + (i64.const 32) + ) + ) + (set_local $20 + (i64.shr_u + (get_local $20) + (i64.const 32) + ) + ) + (i64.add + (i64.add + (i64.mul + (get_local $16) + (get_local $17) + ) + (get_local $19) + ) + (get_local $20) + ) + ) + ) + (set_local $8 + (block $~lib/internal/number/umul64e|inlined.0 (result i32) + (i32.add + (i32.add + (get_local $4) + (get_local $12) + ) + (i32.const 64) + ) + ) + ) + (set_local $22 + (i64.sub + (block $~lib/internal/number/umul64f|inlined.1 (result i64) + (set_local $19 + (get_global $~lib/internal/number/_frc_plus) + ) + (set_local $18 + (i64.and + (get_local $19) + (i64.const 4294967295) + ) + ) + (set_local $17 + (i64.and + (get_local $7) + (i64.const 4294967295) + ) + ) + (set_local $16 + (i64.shr_u + (get_local $19) + (i64.const 32) + ) + ) + (set_local $15 + (i64.shr_u + (get_local $7) + (i64.const 32) + ) + ) + (set_local $14 + (i64.mul + (get_local $18) + (get_local $17) + ) + ) + (set_local $21 + (i64.add + (i64.mul + (get_local $16) + (get_local $17) + ) + (i64.shr_u + (get_local $14) + (i64.const 32) + ) + ) + ) + (set_local $22 + (i64.add + (i64.mul + (get_local $18) + (get_local $15) + ) + (i64.and + (get_local $21) + (i64.const 4294967295) + ) + ) + ) + (set_local $22 + (i64.add + (get_local $22) + (i64.const 2147483647) + ) + ) + (set_local $21 + (i64.shr_u + (get_local $21) + (i64.const 32) + ) + ) + (set_local $22 + (i64.shr_u + (get_local $22) + (i64.const 32) + ) + ) + (i64.add + (i64.add + (i64.mul + (get_local $16) + (get_local $15) + ) + (get_local $21) + ) + (get_local $22) + ) + ) + (i64.const 1) + ) + ) + (set_local $9 + (block $~lib/internal/number/umul64e|inlined.1 (result i32) + (set_local $9 + (get_global $~lib/internal/number/_exp) + ) + (i32.add + (i32.add + (get_local $9) + (get_local $12) + ) + (i32.const 64) + ) + ) + ) + (set_local $23 + (i64.add + (block $~lib/internal/number/umul64f|inlined.2 (result i64) + (set_local $21 + (get_global $~lib/internal/number/_frc_minus) + ) + (set_local $14 + (i64.and + (get_local $21) + (i64.const 4294967295) + ) + ) + (set_local $15 + (i64.and + (get_local $7) + (i64.const 4294967295) + ) + ) + (set_local $16 + (i64.shr_u + (get_local $21) + (i64.const 32) + ) + ) + (set_local $17 + (i64.shr_u + (get_local $7) + (i64.const 32) + ) + ) + (set_local $18 + (i64.mul + (get_local $14) + (get_local $15) + ) + ) + (set_local $19 + (i64.add + (i64.mul + (get_local $16) + (get_local $15) + ) + (i64.shr_u + (get_local $18) + (i64.const 32) + ) + ) + ) + (set_local $23 + (i64.add + (i64.mul + (get_local $14) + (get_local $17) + ) + (i64.and + (get_local $19) + (i64.const 4294967295) + ) + ) + ) + (set_local $23 + (i64.add + (get_local $23) + (i64.const 2147483647) + ) + ) + (set_local $19 + (i64.shr_u + (get_local $19) + (i64.const 32) + ) + ) + (set_local $23 + (i64.shr_u + (get_local $23) + (i64.const 32) + ) + ) + (i64.add + (i64.add + (i64.mul + (get_local $16) + (get_local $17) + ) + (get_local $19) + ) + (get_local $23) + ) + ) + (i64.const 1) + ) + ) + (set_local $19 + (i64.sub + (get_local $22) + (get_local $23) + ) + ) + (call $~lib/internal/number/genDigits + (get_local $0) + (get_local $20) + (get_local $8) + (get_local $22) + (get_local $9) + (get_local $19) + (get_local $2) + ) + ) + ) + (set_local $24 + (call $~lib/internal/number/prettify + (i32.add + (get_local $0) + (i32.shl + (get_local $2) + (i32.const 1) + ) + ) + (i32.sub + (get_local $24) + (get_local $2) + ) + (get_global $~lib/internal/number/_K) + ) + ) + (i32.add + (get_local $24) + (get_local $2) + ) + ) + (func $~lib/string/String#substring (; 48 ;) (type $iiii) (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) + (if + (i32.eqz + (i32.ne + (get_local $0) + (i32.const 0) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 80) + (i32.const 264) + (i32.const 4) + ) + (unreachable) + ) + ) + (set_local $3 + (i32.load + (get_local $0) + ) + ) + (set_local $6 + (select + (tee_local $4 + (select + (tee_local $4 + (get_local $1) + ) + (tee_local $5 + (i32.const 0) + ) + (i32.gt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (tee_local $5 + (get_local $3) + ) + (i32.lt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (set_local $7 + (select + (tee_local $4 + (select + (tee_local $4 + (get_local $2) + ) + (tee_local $5 + (i32.const 0) + ) + (i32.gt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (tee_local $5 + (get_local $3) + ) + (i32.lt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (set_local $8 + (select + (tee_local $4 + (get_local $6) + ) + (tee_local $5 + (get_local $7) + ) + (i32.lt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (set_local $9 + (select + (tee_local $4 + (get_local $6) + ) + (tee_local $5 + (get_local $7) + ) + (i32.gt_s + (get_local $4) + (get_local $5) + ) + ) + ) + (set_local $3 + (i32.sub + (get_local $9) + (get_local $8) + ) + ) + (if + (i32.eqz + (get_local $3) + ) + (return + (i32.const 256) + ) + ) + (if + (if (result i32) + (tee_local $4 + (i32.eqz + (get_local $8) + ) + ) + (i32.eq + (get_local $9) + (i32.load + (get_local $0) + ) + ) + (get_local $4) + ) + (return + (get_local $0) + ) + ) + (set_local $10 + (call $~lib/internal/string/allocateUnsafe + (get_local $3) + ) + ) + (call $~lib/internal/string/copyUnsafe + (get_local $10) + (i32.const 0) + (get_local $0) + (get_local $8) + (get_local $3) + ) + (get_local $10) + ) + (func $~lib/allocator/arena/__memory_free (; 49 ;) (type $iv) (param $0 i32) + (nop) + ) + (func $~lib/internal/number/dtoa (; 50 ;) (type $Fi) (param $0 f64) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (if + (f64.eq + (get_local $0) + (f64.const 0) + ) + (return + (i32.const 2656) + ) + ) + (if + (i32.eqz + (call $~lib/builtins/isFinite + (get_local $0) + ) + ) + (block + (if + (call $~lib/builtins/isNaN + (get_local $0) + ) + (return + (i32.const 2672) + ) + ) + (return + (select + (i32.const 2688) + (i32.const 2712) + (f64.lt + (get_local $0) + (f64.const 0) + ) + ) + ) + ) + ) + (set_local $1 + (call $~lib/internal/string/allocateUnsafe + (get_global $~lib/internal/number/MAX_DOUBLE_LENGTH) + ) + ) + (set_local $2 + (call $~lib/internal/number/dtoa_core + (get_local $1) + (get_local $0) + ) + ) + (set_local $3 + (call $~lib/string/String#substring + (get_local $1) + (i32.const 0) + (get_local $2) + ) + ) + (block $~lib/internal/string/freeUnsafe|inlined.0 + (block + (if + (i32.eqz + (get_local $1) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 112) + (i32.const 28) + (i32.const 4) + ) + (unreachable) + ) + ) + (block $~lib/memory/memory.free|inlined.0 + (block + (call $~lib/allocator/arena/__memory_free + (get_local $1) + ) + (br $~lib/memory/memory.free|inlined.0) + ) + ) + ) + ) + (get_local $3) + ) + (func $start (; 51 ;) (type $v) (set_global $~lib/allocator/arena/startOffset (i32.and (i32.add @@ -5904,7 +8127,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 11) + (i32.const 17) (i32.const 0) ) (unreachable) @@ -5923,7 +8146,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 13) + (i32.const 19) (i32.const 0) ) (unreachable) @@ -5943,7 +8166,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 14) + (i32.const 20) (i32.const 0) ) (unreachable) @@ -5962,7 +8185,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 16) + (i32.const 22) (i32.const 0) ) (unreachable) @@ -5981,7 +8204,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 17) + (i32.const 23) (i32.const 0) ) (unreachable) @@ -6003,7 +8226,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 18) + (i32.const 24) (i32.const 0) ) (unreachable) @@ -6022,7 +8245,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 20) + (i32.const 26) (i32.const 0) ) (unreachable) @@ -6041,7 +8264,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 21) + (i32.const 27) (i32.const 0) ) (unreachable) @@ -6057,7 +8280,7 @@ (call $~lib/env/abort (i32.const 184) (i32.const 48) - (i32.const 22) + (i32.const 28) (i32.const 0) ) (unreachable) @@ -6075,7 +8298,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 24) + (i32.const 30) (i32.const 0) ) (unreachable) @@ -6098,7 +8321,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 25) + (i32.const 31) (i32.const 0) ) (unreachable) @@ -6116,7 +8339,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 26) + (i32.const 32) (i32.const 0) ) (unreachable) @@ -6142,7 +8365,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 28) + (i32.const 34) (i32.const 0) ) (unreachable) @@ -6168,7 +8391,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 29) + (i32.const 35) (i32.const 0) ) (unreachable) @@ -6194,7 +8417,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 30) + (i32.const 36) (i32.const 0) ) (unreachable) @@ -6215,7 +8438,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 31) + (i32.const 37) (i32.const 0) ) (unreachable) @@ -6236,7 +8459,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 32) + (i32.const 38) (i32.const 0) ) (unreachable) @@ -6262,7 +8485,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 33) + (i32.const 39) (i32.const 0) ) (unreachable) @@ -6283,7 +8506,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 34) + (i32.const 40) (i32.const 0) ) (unreachable) @@ -6304,7 +8527,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 35) + (i32.const 41) (i32.const 0) ) (unreachable) @@ -6330,7 +8553,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 37) + (i32.const 43) (i32.const 0) ) (unreachable) @@ -6356,7 +8579,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 38) + (i32.const 44) (i32.const 0) ) (unreachable) @@ -6382,7 +8605,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 39) + (i32.const 45) (i32.const 0) ) (unreachable) @@ -6403,7 +8626,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 40) + (i32.const 46) (i32.const 0) ) (unreachable) @@ -6424,7 +8647,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 41) + (i32.const 47) (i32.const 0) ) (unreachable) @@ -6450,7 +8673,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 42) + (i32.const 48) (i32.const 0) ) (unreachable) @@ -6471,7 +8694,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 43) + (i32.const 49) (i32.const 0) ) (unreachable) @@ -6492,7 +8715,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 44) + (i32.const 50) (i32.const 0) ) (unreachable) @@ -6513,7 +8736,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 46) + (i32.const 52) (i32.const 0) ) (unreachable) @@ -6534,7 +8757,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 47) + (i32.const 53) (i32.const 0) ) (unreachable) @@ -6555,7 +8778,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 48) + (i32.const 54) (i32.const 0) ) (unreachable) @@ -6576,7 +8799,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 49) + (i32.const 55) (i32.const 0) ) (unreachable) @@ -6597,7 +8820,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 50) + (i32.const 56) (i32.const 0) ) (unreachable) @@ -6618,7 +8841,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 51) + (i32.const 57) (i32.const 0) ) (unreachable) @@ -6639,7 +8862,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 52) + (i32.const 58) (i32.const 0) ) (unreachable) @@ -6660,7 +8883,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 53) + (i32.const 59) (i32.const 0) ) (unreachable) @@ -6686,7 +8909,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 55) + (i32.const 61) (i32.const 0) ) (unreachable) @@ -6712,7 +8935,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 56) + (i32.const 62) (i32.const 0) ) (unreachable) @@ -6740,7 +8963,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 57) + (i32.const 63) (i32.const 0) ) (unreachable) @@ -6766,7 +8989,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 58) + (i32.const 64) (i32.const 0) ) (unreachable) @@ -6792,7 +9015,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 59) + (i32.const 65) (i32.const 0) ) (unreachable) @@ -6818,7 +9041,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 60) + (i32.const 66) (i32.const 0) ) (unreachable) @@ -6839,7 +9062,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 61) + (i32.const 67) (i32.const 0) ) (unreachable) @@ -6860,7 +9083,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 62) + (i32.const 68) (i32.const 0) ) (unreachable) @@ -6881,7 +9104,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 63) + (i32.const 69) (i32.const 0) ) (unreachable) @@ -6902,7 +9125,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 64) + (i32.const 70) (i32.const 0) ) (unreachable) @@ -6923,7 +9146,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 65) + (i32.const 71) (i32.const 0) ) (unreachable) @@ -6943,7 +9166,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 71) + (i32.const 77) (i32.const 0) ) (unreachable) @@ -6963,7 +9186,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 72) + (i32.const 78) (i32.const 0) ) (unreachable) @@ -6983,7 +9206,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 73) + (i32.const 79) (i32.const 0) ) (unreachable) @@ -7003,7 +9226,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 74) + (i32.const 80) (i32.const 0) ) (unreachable) @@ -7023,7 +9246,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 75) + (i32.const 81) (i32.const 0) ) (unreachable) @@ -7043,7 +9266,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 76) + (i32.const 82) (i32.const 0) ) (unreachable) @@ -7063,7 +9286,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 77) + (i32.const 83) (i32.const 0) ) (unreachable) @@ -7083,7 +9306,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 78) + (i32.const 84) (i32.const 0) ) (unreachable) @@ -7102,7 +9325,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 80) + (i32.const 86) (i32.const 0) ) (unreachable) @@ -7121,7 +9344,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 81) + (i32.const 87) (i32.const 0) ) (unreachable) @@ -7140,7 +9363,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 82) + (i32.const 88) (i32.const 0) ) (unreachable) @@ -7159,7 +9382,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 83) + (i32.const 89) (i32.const 0) ) (unreachable) @@ -7178,7 +9401,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 84) + (i32.const 90) (i32.const 0) ) (unreachable) @@ -7201,7 +9424,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 87) + (i32.const 93) (i32.const 0) ) (unreachable) @@ -7218,7 +9441,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 88) + (i32.const 94) (i32.const 0) ) (unreachable) @@ -7235,7 +9458,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 89) + (i32.const 95) (i32.const 0) ) (unreachable) @@ -7252,7 +9475,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 90) + (i32.const 96) (i32.const 0) ) (unreachable) @@ -7269,7 +9492,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 92) + (i32.const 98) (i32.const 0) ) (unreachable) @@ -7286,7 +9509,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 93) + (i32.const 99) (i32.const 0) ) (unreachable) @@ -7303,7 +9526,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 94) + (i32.const 100) (i32.const 0) ) (unreachable) @@ -7320,7 +9543,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 95) + (i32.const 101) (i32.const 0) ) (unreachable) @@ -7335,78 +9558,6 @@ ) ) ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 96) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__lt - (i32.const 648) - (get_global $std/string/nullStr) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 98) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__lt - (get_global $std/string/nullStr) - (i32.const 648) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 99) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 288) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 101) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__lt - (i32.const 256) - (i32.const 288) - ) - ) (block (call $~lib/env/abort (i32.const 0) @@ -7419,26 +9570,11 @@ ) (if (i32.eqz - (call $~lib/string/String.__gte - (i32.const 288) - (i32.const 256) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 103) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__lte - (i32.const 256) - (i32.const 288) + (i32.eqz + (call $~lib/string/String.__lt + (i32.const 648) + (get_global $std/string/nullStr) + ) ) ) (block @@ -7455,8 +9591,8 @@ (i32.eqz (i32.eqz (call $~lib/string/String.__lt - (i32.const 288) - (i32.const 256) + (get_global $std/string/nullStr) + (i32.const 648) ) ) ) @@ -7472,30 +9608,9 @@ ) (if (i32.eqz - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 256) - (i32.const 288) - ) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 106) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (i32.eqz - (call $~lib/string/String.__lt - (i32.const 256) - (i32.const 256) - ) + (call $~lib/string/String.__gt + (i32.const 288) + (i32.const 256) ) ) (block @@ -7510,11 +9625,9 @@ ) (if (i32.eqz - (i32.eqz - (call $~lib/string/String.__gt - (i32.const 256) - (i32.const 256) - ) + (call $~lib/string/String.__lt + (i32.const 256) + (i32.const 288) ) ) (block @@ -7530,7 +9643,7 @@ (if (i32.eqz (call $~lib/string/String.__gte - (i32.const 256) + (i32.const 288) (i32.const 256) ) ) @@ -7548,7 +9661,7 @@ (i32.eqz (call $~lib/string/String.__lte (i32.const 256) - (i32.const 256) + (i32.const 288) ) ) (block @@ -7561,6 +9674,116 @@ (unreachable) ) ) + (if + (i32.eqz + (i32.eqz + (call $~lib/string/String.__lt + (i32.const 288) + (i32.const 256) + ) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 111) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (i32.eqz + (call $~lib/string/String.__gt + (i32.const 256) + (i32.const 288) + ) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 112) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (i32.eqz + (call $~lib/string/String.__lt + (i32.const 256) + (i32.const 256) + ) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 113) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (i32.eqz + (call $~lib/string/String.__gt + (i32.const 256) + (i32.const 256) + ) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 114) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__gte + (i32.const 256) + (i32.const 256) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 115) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__lte + (i32.const 256) + (i32.const 256) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 116) + (i32.const 0) + ) + (unreachable) + ) + ) (set_global $std/string/a (call $~lib/string/String.fromCodePoint (i32.const 65377) @@ -7587,7 +9810,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 114) + (i32.const 120) (i32.const 0) ) (unreachable) @@ -7606,7 +9829,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 116) + (i32.const 122) (i32.const 0) ) (unreachable) @@ -7626,7 +9849,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 118) + (i32.const 124) (i32.const 0) ) (unreachable) @@ -7646,7 +9869,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 119) + (i32.const 125) (i32.const 0) ) (unreachable) @@ -7666,7 +9889,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 120) + (i32.const 126) (i32.const 0) ) (unreachable) @@ -7686,7 +9909,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 121) + (i32.const 127) (i32.const 0) ) (unreachable) @@ -7706,7 +9929,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 122) + (i32.const 128) (i32.const 0) ) (unreachable) @@ -7726,7 +9949,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 123) + (i32.const 129) (i32.const 0) ) (unreachable) @@ -7746,7 +9969,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 124) + (i32.const 130) (i32.const 0) ) (unreachable) @@ -7766,7 +9989,7 @@ (call $~lib/env/abort (i32.const 0) (i32.const 48) - (i32.const 125) + (i32.const 131) (i32.const 0) ) (unreachable) @@ -7782,101 +10005,6 @@ (i32.const 752) ) ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 126) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 0) - ) - (i32.const 480) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 128) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 1) - ) - (i32.const 488) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 129) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 8) - ) - (i32.const 1368) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 130) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 123) - ) - (i32.const 320) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 131) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const -1000) - ) - (i32.const 1376) - ) - ) (block (call $~lib/env/abort (i32.const 0) @@ -7890,29 +10018,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 1234) + (call $~lib/internal/number/itoa32 + (i32.const 0) ) - (i32.const 1392) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 133) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 12345) - ) - (i32.const 1408) + (i32.const 480) ) ) (block @@ -7928,10 +10037,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 123456) + (call $~lib/internal/number/itoa32 + (i32.const 1) ) - (i32.const 1424) + (i32.const 488) ) ) (block @@ -7947,10 +10056,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 1111111) + (call $~lib/internal/number/itoa32 + (i32.const 8) ) - (i32.const 1440) + (i32.const 1296) ) ) (block @@ -7966,10 +10075,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 1234567) + (call $~lib/internal/number/itoa32 + (i32.const 123) ) - (i32.const 1464) + (i32.const 320) ) ) (block @@ -7985,10 +10094,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 2147483646) + (call $~lib/internal/number/itoa32 + (i32.const -1000) ) - (i32.const 1488) + (i32.const 1304) ) ) (block @@ -8004,10 +10113,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const 2147483647) + (call $~lib/internal/number/itoa32 + (i32.const 1234) ) - (i32.const 1512) + (i32.const 1320) ) ) (block @@ -8023,10 +10132,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const -2147483648) + (call $~lib/internal/number/itoa32 + (i32.const 12345) ) - (i32.const 1536) + (i32.const 1336) ) ) (block @@ -8042,10 +10151,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa32 - (i32.const -1) + (call $~lib/internal/number/itoa32 + (i32.const 123456) ) - (i32.const 1568) + (i32.const 1352) ) ) (block @@ -8061,10 +10170,29 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 - (i32.const 0) + (call $~lib/internal/number/itoa32 + (i32.const 1111111) ) - (i32.const 480) + (i32.const 1368) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 142) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa32 + (i32.const 1234567) + ) + (i32.const 1392) ) ) (block @@ -8080,10 +10208,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 - (i32.const 1000) + (call $~lib/internal/number/itoa32 + (i32.const 2147483646) ) - (i32.const 1576) + (i32.const 1416) ) ) (block @@ -8099,10 +10227,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 + (call $~lib/internal/number/itoa32 (i32.const 2147483647) ) - (i32.const 1512) + (i32.const 1440) ) ) (block @@ -8118,10 +10246,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 + (call $~lib/internal/number/itoa32 (i32.const -2147483648) ) - (i32.const 1592) + (i32.const 1464) ) ) (block @@ -8137,10 +10265,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa32 - (get_global $~lib/builtins/u32.MAX_VALUE) + (call $~lib/internal/number/itoa32 + (i32.const -1) ) - (i32.const 1616) + (i32.const 1496) ) ) (block @@ -8156,8 +10284,8 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 0) + (call $~lib/internal/number/utoa32 + (i32.const 0) ) (i32.const 480) ) @@ -8175,10 +10303,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 1234) + (call $~lib/internal/number/utoa32 + (i32.const 1000) ) - (i32.const 1392) + (i32.const 1504) ) ) (block @@ -8194,10 +10322,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 99999999) + (call $~lib/internal/number/utoa32 + (i32.const 2147483647) ) - (i32.const 2232) + (i32.const 1440) ) ) (block @@ -8213,10 +10341,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 100000000) + (call $~lib/internal/number/utoa32 + (i32.const -2147483648) ) - (i32.const 2256) + (i32.const 1520) ) ) (block @@ -8232,10 +10360,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 4294967295) + (call $~lib/internal/number/utoa32 + (get_global $~lib/builtins/u32.MAX_VALUE) ) - (i32.const 1616) + (i32.const 1544) ) ) (block @@ -8251,29 +10379,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 68719476735) + (call $~lib/internal/number/utoa64 + (i64.const 0) ) - (i32.const 2280) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 154) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 868719476735) - ) - (i32.const 2312) + (i32.const 480) ) ) (block @@ -8289,10 +10398,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 999868719476735) + (call $~lib/internal/number/utoa64 + (i64.const 1234) ) - (i32.const 2344) + (i32.const 1320) ) ) (block @@ -8308,10 +10417,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 9999868719476735) + (call $~lib/internal/number/utoa64 + (i64.const 99999999) ) - (i32.const 2384) + (i32.const 2088) ) ) (block @@ -8327,10 +10436,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (i64.const 19999868719476735) + (call $~lib/internal/number/utoa64 + (i64.const 100000000) ) - (i32.const 2424) + (i32.const 2112) ) ) (block @@ -8346,10 +10455,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/utoa64 - (get_global $~lib/builtins/u64.MAX_VALUE) + (call $~lib/internal/number/utoa64 + (i64.const 4294967295) ) - (i32.const 2464) + (i32.const 1544) ) ) (block @@ -8365,10 +10474,29 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const 0) + (call $~lib/internal/number/utoa64 + (i64.const 68719476735) ) - (i32.const 480) + (i32.const 2136) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 160) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/utoa64 + (i64.const 868719476735) + ) + (i32.const 2168) ) ) (block @@ -8384,10 +10512,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -1234) + (call $~lib/internal/number/utoa64 + (i64.const 999868719476735) ) - (i32.const 2512) + (i32.const 2200) ) ) (block @@ -8403,10 +10531,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const 4294967295) + (call $~lib/internal/number/utoa64 + (i64.const 9999868719476735) ) - (i32.const 1616) + (i32.const 2240) ) ) (block @@ -8422,10 +10550,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -4294967295) + (call $~lib/internal/number/utoa64 + (i64.const 19999868719476735) ) - (i32.const 2528) + (i32.const 2280) ) ) (block @@ -8441,10 +10569,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const 68719476735) + (call $~lib/internal/number/utoa64 + (get_global $~lib/builtins/u64.MAX_VALUE) ) - (i32.const 2280) + (i32.const 2320) ) ) (block @@ -8460,29 +10588,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -68719476735) + (call $~lib/internal/number/itoa64 + (i64.const 0) ) - (i32.const 2560) - ) - ) - (block - (call $~lib/env/abort - (i32.const 0) - (i32.const 48) - (i32.const 166) - (i32.const 0) - ) - (unreachable) - ) - ) - (if - (i32.eqz - (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -868719476735) - ) - (i32.const 2592) + (i32.const 480) ) ) (block @@ -8498,10 +10607,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -999868719476735) + (call $~lib/internal/number/itoa64 + (i64.const -1234) ) - (i32.const 2624) + (i32.const 2368) ) ) (block @@ -8517,10 +10626,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (i64.const -19999868719476735) + (call $~lib/internal/number/itoa64 + (i64.const 4294967295) ) - (i32.const 2664) + (i32.const 1544) ) ) (block @@ -8536,10 +10645,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (get_global $~lib/builtins/i64.MAX_VALUE) + (call $~lib/internal/number/itoa64 + (i64.const -4294967295) ) - (i32.const 2704) + (i32.const 2384) ) ) (block @@ -8555,10 +10664,10 @@ (if (i32.eqz (call $~lib/string/String.__eq - (call $~lib/internal/itoa/itoa64 - (get_global $~lib/builtins/i64.MIN_VALUE) + (call $~lib/internal/number/itoa64 + (i64.const 68719476735) ) - (i32.const 2752) + (i32.const 2136) ) ) (block @@ -8571,7 +10680,1201 @@ (unreachable) ) ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const -68719476735) + ) + (i32.const 2416) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 172) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const -868719476735) + ) + (i32.const 2448) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 173) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const -999868719476735) + ) + (i32.const 2480) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 174) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (i64.const -19999868719476735) + ) + (i32.const 2520) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 175) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (get_global $~lib/builtins/i64.MAX_VALUE) + ) + (i32.const 2560) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 176) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/itoa64 + (get_global $~lib/builtins/i64.MIN_VALUE) + ) + (i32.const 2608) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 177) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0) + ) + (i32.const 2656) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 180) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -0) + ) + (i32.const 2656) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 181) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const nan:0x8000000000000) + ) + (i32.const 2672) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 182) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const inf) + ) + (i32.const 2712) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 183) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.neg + (f64.const inf) + ) + ) + (i32.const 2688) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 184) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (get_global $~lib/builtins/f64.EPSILON) + ) + (i32.const 4104) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 185) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.neg + (get_global $~lib/builtins/f64.EPSILON) + ) + ) + (i32.const 4152) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 186) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (get_global $~lib/builtins/f64.MAX_VALUE) + ) + (i32.const 4200) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 187) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.neg + (get_global $~lib/builtins/f64.MAX_VALUE) + ) + ) + (i32.const 4256) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 188) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 4185580496821356722454785e274) + ) + (i32.const 4312) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 189) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 2.2250738585072014e-308) + ) + (i32.const 4360) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 190) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 2.9802322387695312e-08) + ) + (i32.const 4416) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 191) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -21098088986959632) + ) + (i32.const 4464) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 192) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 4.940656e-318) + ) + (i32.const 4512) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 193) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 9060801153433600) + ) + (i32.const 4544) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 194) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 4708356024711512064) + ) + (i32.const 4584) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 195) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 9409340012568248320) + ) + (i32.const 4632) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 196) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 5e-324) + ) + (i32.const 4680) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 197) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1) + ) + (i32.const 4696) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 203) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.1) + ) + (i32.const 592) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 204) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1) + ) + (i32.const 4712) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 205) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -0.1) + ) + (i32.const 4728) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 206) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e6) + ) + (i32.const 4744) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 208) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e-06) + ) + (i32.const 4768) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 209) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1e6) + ) + (i32.const 4792) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 210) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1e-06) + ) + (i32.const 4816) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 211) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e7) + ) + (i32.const 4840) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 212) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e-07) + ) + (i32.const 4864) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 213) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1.e+308) + ) + (i32.const 4880) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 215) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1.e+308) + ) + (i32.const 4896) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 216) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const inf) + ) + (i32.const 2712) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 217) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -inf) + ) + (i32.const 2688) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 218) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e-308) + ) + (i32.const 4920) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 219) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1e-308) + ) + (i32.const 4936) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 220) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1e-323) + ) + (i32.const 4960) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 221) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1e-323) + ) + (i32.const 4976) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 222) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0) + ) + (i32.const 2656) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 223) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 4294967272) + ) + (i32.const 5000) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 225) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1.2312145673456234e-08) + ) + (i32.const 5032) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 226) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const -1.0471975511965976e-06) + ) + (i32.const 5080) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 227) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 555555555.5555556) + ) + (i32.const 5136) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 228) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.9999999999999999) + ) + (i32.const 5176) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 229) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1) + ) + (i32.const 4696) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 230) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 12.34) + ) + (i32.const 5216) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 231) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.add + (f64.const 0.1) + (f64.const 0.2) + ) + ) + (i32.const 5232) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 232) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.div + (f64.const 1) + (f64.const 3) + ) + ) + (i32.const 5280) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 233) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1234e17) + ) + (i32.const 5320) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 234) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1234e18) + ) + (i32.const 5376) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 235) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 2.71828) + ) + (i32.const 5400) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 236) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.0271828) + ) + (i32.const 5424) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 237) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 271.828) + ) + (i32.const 5448) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 238) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1.1e+128) + ) + (i32.const 5472) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 239) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 1.1e-64) + ) + (i32.const 5496) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 240) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.const 0.000035689) + ) + (i32.const 5520) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 241) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.promote/f32 + (get_global $~lib/builtins/f32.MAX_VALUE) + ) + ) + (i32.const 5552) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 243) + (i32.const 0) + ) + (unreachable) + ) + ) + (if + (i32.eqz + (call $~lib/string/String.__eq + (call $~lib/internal/number/dtoa + (f64.promote/f32 + (get_global $~lib/builtins/f32.EPSILON) + ) + ) + (i32.const 5600) + ) + ) + (block + (call $~lib/env/abort + (i32.const 0) + (i32.const 48) + (i32.const 244) + (i32.const 0) + ) + (unreachable) + ) + ) ) - (func $null (; 44 ;) (type $v) + (func $null (; 52 ;) (type $v) ) )