From f9a77b132fb792db3350677ec9dd146dab03ea32 Mon Sep 17 00:00:00 2001 From: Max Graey Date: Wed, 12 Jun 2019 11:17:01 +0300 Subject: [PATCH] Fix parseInt routines after refactoring (#655) --- src/program.ts | 2 +- std/assembly/index.d.ts | 4 - std/assembly/number.ts | 25 +- std/assembly/util/string.ts | 23 +- std/portable/index.d.ts | 2 - std/portable/index.js | 4 - tests/compiler/std/string.optimized.wat | 2397 +++++++++++++-------- tests/compiler/std/string.ts | 3 + tests/compiler/std/string.untouched.wat | 2609 ++++++++++++++--------- 9 files changed, 3142 insertions(+), 1927 deletions(-) diff --git a/src/program.ts b/src/program.ts index 5c7082ee..683fd2f6 100644 --- a/src/program.ts +++ b/src/program.ts @@ -830,7 +830,7 @@ export class Program extends DiagnosticEmitter { if (!name.length) continue; // explicitly disabled let firstChar = name.charCodeAt(0); if (firstChar >= CharCode._0 && firstChar <= CharCode._9) { - this.registerConstantInteger(alias, Type.i32, i64_new(parseI32(name, 10))); + this.registerConstantInteger(alias, Type.i32, i64_new(parseInt(name, 10))); } else { let elementsByName = this.elementsByName; let element = elementsByName.get(name); diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 65a266a8..8c55d070 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -158,10 +158,6 @@ declare function isManaged(value?: any): bool; declare function assert(isTrueish: T, message?: string): T & object; // any better way to model `: T != null`? /** Parses an integer string to a 64-bit float. */ declare function parseInt(str: string, radix?: i32): f64; -/** Parses an integer string to a 32-bit integer. */ -declare function parseI32(str: string, radix?: i32): i32; -/** Parses an integer string to a 64-bit integer. */ -declare function parseI64(str: string, radix?: i32): i64; /** Parses a string to a 64-bit float. */ declare function parseFloat(str: string): f64; /** Returns the 64-bit floating-point remainder of `x/y`. */ diff --git a/std/assembly/number.ts b/std/assembly/number.ts index 9b9072cb..6d261fa1 100644 --- a/std/assembly/number.ts +++ b/std/assembly/number.ts @@ -1,4 +1,5 @@ import { itoa, dtoa } from "./util/number"; +import { strtol } from "./util/string"; // @ts-ignore: decorator @builtin @inline @@ -34,7 +35,7 @@ export abstract class I8 { static readonly MAX_VALUE: i8 = i8.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): i8 { - return parseI32(value, radix); + return strtol(value, radix); } toString(this: i8): String { @@ -55,7 +56,7 @@ export abstract class I16 { static readonly MAX_VALUE: i16 = i16.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): i16 { - return parseI32(value, radix); + return strtol(value, radix); } toString(this: i16): String { @@ -76,7 +77,7 @@ export abstract class I32 { static readonly MAX_VALUE: i32 = i32.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): i32 { - return parseI32(value, radix); + return strtol(value, radix); } toString(this: i32): String { @@ -97,7 +98,7 @@ export abstract class I64 { static readonly MAX_VALUE: i64 = i64.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): i64 { - return parseI64(value, radix); + return strtol(value, radix); } toString(this: i64): String { @@ -118,7 +119,7 @@ export abstract class Isize { static readonly MAX_VALUE: isize = isize.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): isize { - return parseI64(value, radix); + return strtol(value, radix); } toString(this: isize): String { @@ -139,7 +140,7 @@ export abstract class U8 { static readonly MAX_VALUE: u8 = u8.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): u8 { - return parseI32(value, radix); + return strtol(value, radix); } toString(this: u8): String { @@ -160,7 +161,7 @@ export abstract class U16 { static readonly MAX_VALUE: u16 = u16.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): u16 { - return parseI32(value, radix); + return strtol(value, radix); } toString(this: u16): String { @@ -181,7 +182,7 @@ export abstract class U32 { static readonly MAX_VALUE: u32 = u32.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): u32 { - return parseI32(value, radix); + return strtol(value, radix); } toString(this: u32): String { @@ -202,7 +203,7 @@ export abstract class U64 { static readonly MAX_VALUE: u64 = u64.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): u64 { - return parseI64(value, radix); + return strtol(value, radix); } toString(this: u64): String { @@ -223,7 +224,7 @@ export abstract class Usize { static readonly MAX_VALUE: usize = usize.MAX_VALUE; static parseInt(value: string, radix: i32 = 0): usize { - return parseI64(value, radix); + return strtol(value, radix); } toString(this: usize): String { @@ -303,7 +304,7 @@ export abstract class F32 { } static parseInt(value: string, radix: i32 = 0): f32 { - return parseI64(value, radix); + return strtol(value, radix); } static parseFloat(value: string): f32 { @@ -368,7 +369,7 @@ export abstract class F64 { } static parseInt(value: string, radix: i32 = 0): f64 { - return parseI64(value, radix); + return strtol(value, radix); } static parseFloat(value: string): f64 { diff --git a/std/assembly/util/string.ts b/std/assembly/util/string.ts index f9ff39a9..2b9d333c 100644 --- a/std/assembly/util/string.ts +++ b/std/assembly/util/string.ts @@ -66,7 +66,8 @@ export function strtol(str: string, radix: i32 = 0): T { var code = load(ptr); // determine sign - var sign: T; + // @ts-ignore: cast + var sign: T = 1; // trim white spaces while (isWhiteSpaceOrLineTerminator(code)) { code = load(ptr += 2); @@ -82,11 +83,6 @@ export function strtol(str: string, radix: i32 = 0): T { // @ts-ignore: cast if (!--len) return NaN; code = load(ptr += 2); - // @ts-ignore: type - sign = 1; - } else { - // @ts-ignore: type - sign = 1; } // determine radix @@ -133,7 +129,7 @@ export function strtol(str: string, radix: i32 = 0): T { } else break; if (code >= radix) break; // @ts-ignore: type - num = (num * radix) + code; + num = num * radix + code; ptr += 2; } // @ts-ignore: type @@ -149,7 +145,7 @@ export function strtod(str: string): f64 { var code = load(ptr); // determine sign - var sign: f64; + var sign = 1.0; // trim white spaces while (isWhiteSpaceOrLineTerminator(code)) { code = load(ptr += 2); @@ -158,22 +154,19 @@ export function strtod(str: string): f64 { if (code == CharCode.MINUS) { if (!--len) return NaN; code = load(ptr += 2); - sign = -1; + sign = -1.0; } else if (code == CharCode.PLUS) { if (!--len) return NaN; code = load(ptr += 2); - sign = 1; - } else { - sign = 1; } // calculate value - var num: f64 = 0; + var num = 0.0; while (len--) { code = load(ptr); if (code == CharCode.DOT) { ptr += 2; - let fac: f64 = 0.1; // precision :( + let fac = 0.1; // precision :( while (len--) { code = load(ptr); if (code == CharCode.E || code == CharCode.e) { @@ -189,7 +182,7 @@ export function strtod(str: string): f64 { } code -= CharCode._0; if (code >= 10) break; - num = (num * 10) + code; + num = num * 10 + code; ptr += 2; } return sign * num; diff --git a/std/portable/index.d.ts b/std/portable/index.d.ts index b42237c2..174e6eab 100644 --- a/std/portable/index.d.ts +++ b/std/portable/index.d.ts @@ -120,8 +120,6 @@ declare function isConstant(expression: any): bool; declare function assert(isTrueish: T | null, message?: string): T; /** Parses an integer string to a 64-bit float. */ declare function parseInt(str: string, radix?: i32): f64; -/** Parses an integer string to a 32-bit integer. */ -declare function parseI32(str: string, radix?: i32): i32; /** Parses a floating point string to a 64-bit float. */ declare function parseFloat(str: string): f64; /** Returns the 64-bit floating-point remainder of `x/y`. */ diff --git a/std/portable/index.js b/std/portable/index.js index 1c8173ce..acb7cdce 100644 --- a/std/portable/index.js +++ b/std/portable/index.js @@ -188,10 +188,6 @@ globalScope["changetype"] = function changetype(value) { return value; }; -globalScope["parseI32"] = function parseI32(str, radix) { - return parseInt(str, undefined) | 0; -}; - String["fromCharCodes"] = function fromCharCodes(arr) { return String.fromCharCode.apply(String, arr); }; diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index 958507bf..98c42939 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -15,6 +15,7 @@ (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $FUNCSIG$i (func (result i32))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) + (type $FUNCSIG$j (func (result i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) @@ -63,123 +64,125 @@ (data (i32.const 1224) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\000\00x\001\00g") (data (i32.const 1248) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00 \00\t\00\n\001") (data (i32.const 1272) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00 \00\t\00\n\000\00x\000\002") - (data (i32.const 1304) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data (i32.const 1360) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\001") - (data (i32.const 1384) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00.\002\005") - (data (i32.const 1408) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00.\001\00f\00o\00o\00b\00a\00r") - (data (i32.const 1440) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00 \00\t\00\n\00.\001") - (data (i32.const 1472) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b") - (data (i32.const 1496) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b") - (data (i32.const 1520) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00k\00e\00y\001") - (data (i32.const 1544) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00k\00e\00y\002") - (data (i32.const 1568) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00k\00e\001") - (data (i32.const 1592) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00k\00e\002") - (data (i32.const 1616) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\001\002") - (data (i32.const 1648) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\001\001") - (data (i32.const 1680) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00\a40\ed0\cf0\cb0\db0\d80\c80") - (data (i32.const 1712) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00\a60\f00\ce0\aa0\af0\e40\de0") - (data (i32.const 1744) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00D\00\19 f\00h\00u\00a\00s\00c\00a\00i\00l") - (data (i32.const 1784) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00D\00\19 \1f\1eu\00a\00s\00c\00a\00i\00l") - (data (i32.const 1824) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a") - (data (i32.const 1848) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00a") - (data (i32.const 1872) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data (i32.const 1920) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00a\00a\00a") - (data (i32.const 1944) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00a\00b\00a\00b\00a\00b\00a\00b") - (data (i32.const 1976) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00a\00a\00a\00a\00a") - (data (i32.const 2008) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00a\00a\00a\00a\00a\00a") - (data (i32.const 2040) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00a\00a\00a\00a\00a\00a\00a") - (data (i32.const 2072) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n") - (data (i32.const 2120) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00n") - (data (i32.const 2144) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00j\00k\00l\00m\00n") - (data (i32.const 2176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00c\00d\00e\00f\00g") - (data (i32.const 2208) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00d\00e\00f\00g\00h") - (data (i32.const 2240) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m") - (data (i32.const 2288) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data (i32.const 2336) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") - (data (i32.const 2448) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00a\00,\00b\00,\00c") - (data (i32.const 2480) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00.") - (data (i32.const 2504) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00c") - (data (i32.const 2528) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\008") - (data (i32.const 2552) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00-\001\000\000\000") - (data (i32.const 2584) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\001\002\003\004") - (data (i32.const 2608) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\002\003\004\005") - (data (i32.const 2640) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\002\003\004\005\006") - (data (i32.const 2672) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\001\001\001\001\001\001") - (data (i32.const 2704) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\002\003\004\005\006\007") - (data (i32.const 2736) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\006") - (data (i32.const 2776) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\007") - (data (i32.const 2816) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00-\002\001\004\007\004\008\003\006\004\008") - (data (i32.const 2856) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00-\001") - (data (i32.const 2880) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\001\000\000\000") - (data (i32.const 2904) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\008") - (data (i32.const 2944) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\004\002\009\004\009\006\007\002\009\005") - (data (i32.const 2984) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\009\009\009\009\009\009\009\009") - (data (i32.const 3016) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\000\000\000\000\000\000\000\000") - (data (i32.const 3056) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 3096) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 3136) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 3184) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 3232) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 3288) "(\00\00\00\01\00\00\00\01\00\00\00(\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 3344) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00-\001\002\003\004") - (data (i32.const 3376) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00-\004\002\009\004\009\006\007\002\009\005") - (data (i32.const 3416) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00-\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 3456) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 3504) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 3552) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 3608) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") - (data (i32.const 3664) "(\00\00\00\01\00\00\00\01\00\00\00(\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 3720) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000") - (data (i32.const 3744) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N") - (data (i32.const 3768) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 3808) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 3840) "\b8\02\00\00\01\00\00\00\00\00\00\00\b8\02\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\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 (; 42 ;) (type $FUNCSIG$i) (result i32) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + i32.const 1320 + call $~lib/rt/pure/__retain + drop + block $folding-inner0 + i32.const 1320 + call $~lib/string/String#get:length + local.tee $2 + i32.eqz + br_if $folding-inner0 + i32.const 1320 + local.set $1 + i32.const 1320 + i32.load16_u + local.set $0 + i32.const 1 + local.set $3 + loop $continue|0 + local.get $0 + call $~lib/util/string/isWhiteSpaceOrLineTerminator + if + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load16_u + local.set $0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $continue|0 + end + end + local.get $0 + i32.const 45 + i32.eq + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz + br_if $folding-inner0 + i32.const -1 + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load16_u + local.set $0 + else + local.get $0 + i32.const 43 + i32.eq + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz + br_if $folding-inner0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load16_u + local.set $0 + end + end + local.get $2 + i32.const 2 + i32.gt_s + i32.const 0 + local.get $0 + i32.const 48 + i32.eq + select + if (result i32) + block $break|1 (result i32) + block $case6|1 + block $case5|1 + block $case3|1 + local.get $1 + i32.const 2 + i32.add + i32.load16_u + local.tee $0 + i32.const 66 + i32.eq + local.get $0 + i32.const 98 + i32.eq + i32.or + i32.eqz + if + local.get $0 + i32.const 79 + i32.eq + local.get $0 + i32.const 111 + i32.eq + i32.or + br_if $case3|1 + local.get $0 + i32.const 88 + i32.eq + local.get $0 + i32.const 120 + i32.eq + i32.or + br_if $case5|1 + br $case6|1 + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + br $break|1 + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + br $break|1 + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + br $break|1 + end + i32.const 10 + end + else + i32.const 10 + end + local.set $4 + loop $continue|2 + block $break|2 + local.get $2 + local.tee $0 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + i32.eqz + br_if $break|2 + local.get $1 + i32.load16_u + local.tee $0 + i32.const 48 + i32.ge_s + if (result i32) + local.get $0 + i32.const 57 + i32.le_s + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 48 + i32.sub + else + local.get $0 + i32.const 90 + i32.le_s + i32.const 0 + local.get $0 + i32.const 65 + i32.ge_s + select + if (result i32) + local.get $0 + i32.const 55 + i32.sub + else + local.get $0 + i32.const 122 + i32.le_s + i32.const 0 + local.get $0 + i32.const 97 + i32.ge_s + select + i32.eqz + br_if $break|2 + local.get $0 + i32.const 87 + i32.sub + end + end + local.tee $0 + local.get $4 + i32.ge_s + br_if $break|2 + local.get $4 + local.get $5 + i32.mul + local.get $0 + i32.add + local.set $5 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $continue|2 + end + end + i32.const 1320 + call $~lib/rt/pure/__release + local.get $3 + local.get $5 + i32.mul + return + end + f64.const nan:0x8000000000000 + i32.trunc_f64_s + i32.const 1320 + call $~lib/rt/pure/__release + ) + (func $~lib/util/string/strtol (; 43 ;) (type $FUNCSIG$j) (result i64) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i64) + i32.const 1360 + call $~lib/rt/pure/__retain + drop + block $folding-inner0 + i32.const 1360 + call $~lib/string/String#get:length + local.tee $2 + i32.eqz + br_if $folding-inner0 + i32.const 1360 + local.set $1 + i32.const 1360 + i32.load16_u + local.set $0 + i64.const 1 + local.set $3 + loop $continue|0 + local.get $0 + call $~lib/util/string/isWhiteSpaceOrLineTerminator + if + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load16_u + local.set $0 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $continue|0 + end + end + local.get $0 + i32.const 45 + i32.eq + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz + br_if $folding-inner0 + i64.const -1 + local.set $3 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load16_u + local.set $0 + else + local.get $0 + i32.const 43 + i32.eq + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz + br_if $folding-inner0 + local.get $1 + i32.const 2 + i32.add + local.tee $1 + i32.load16_u + local.set $0 + end + end + local.get $2 + i32.const 2 + i32.gt_s + i32.const 0 + local.get $0 + i32.const 48 + i32.eq + select + if (result i32) + block $break|1 (result i32) + block $case6|1 + block $case5|1 + block $case3|1 + local.get $1 + i32.const 2 + i32.add + i32.load16_u + local.tee $0 + i32.const 66 + i32.eq + local.get $0 + i32.const 98 + i32.eq + i32.or + i32.eqz + if + local.get $0 + i32.const 79 + i32.eq + local.get $0 + i32.const 111 + i32.eq + i32.or + br_if $case3|1 + local.get $0 + i32.const 88 + i32.eq + local.get $0 + i32.const 120 + i32.eq + i32.or + br_if $case5|1 + br $case6|1 + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + br $break|1 + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + br $break|1 + end + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + br $break|1 + end + i32.const 10 + end + else + i32.const 10 + end + local.set $4 + loop $continue|2 + block $break|2 + local.get $2 + local.tee $0 + i32.const 1 + i32.sub + local.set $2 + local.get $0 + i32.eqz + br_if $break|2 + local.get $1 + i32.load16_u + local.tee $0 + i32.const 48 + i32.ge_s + if (result i32) + local.get $0 + i32.const 57 + i32.le_s + else + i32.const 0 + end + if (result i32) + local.get $0 + i32.const 48 + i32.sub + else + local.get $0 + i32.const 90 + i32.le_s + i32.const 0 + local.get $0 + i32.const 65 + i32.ge_s + select + if (result i32) + local.get $0 + i32.const 55 + i32.sub + else + local.get $0 + i32.const 122 + i32.le_s + i32.const 0 + local.get $0 + i32.const 97 + i32.ge_s + select + i32.eqz + br_if $break|2 + local.get $0 + i32.const 87 + i32.sub + end + end + local.tee $0 + local.get $4 + i32.ge_s + br_if $break|2 + local.get $0 + i64.extend_i32_s + local.get $4 + i64.extend_i32_s + local.get $5 + i64.mul + i64.add + local.set $5 + local.get $1 + i32.const 2 + i32.add + local.set $1 + br $continue|2 + end + end + i32.const 1360 + call $~lib/rt/pure/__release + local.get $3 + local.get $5 + i64.mul + return + end + f64.const nan:0x8000000000000 + i64.trunc_f64_s + i32.const 1360 + call $~lib/rt/pure/__release + ) + (func $~lib/util/string/strtod (; 44 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2688,6 +3179,8 @@ local.tee $2 i32.load16_u local.set $1 + f64.const 1 + local.set $6 loop $continue|0 local.get $1 call $~lib/util/string/isWhiteSpaceOrLineTerminator @@ -2708,7 +3201,7 @@ local.get $1 i32.const 45 i32.eq - if (result f64) + if local.get $3 i32.const 1 i32.sub @@ -2724,6 +3217,7 @@ i32.load16_u drop f64.const -1 + local.set $6 else local.get $1 i32.const 43 @@ -2744,7 +3238,6 @@ i32.load16_u drop end - f64.const 1 end loop $continue|1 block $break|1 @@ -2792,8 +3285,8 @@ end if i32.const 0 - i32.const 1320 - i32.const 180 + i32.const 1416 + i32.const 173 i32.const 10 call $~lib/builtins/abort unreachable @@ -2848,6 +3341,7 @@ end local.get $0 call $~lib/rt/pure/__release + local.get $6 local.get $4 f64.mul return @@ -2856,7 +3350,7 @@ call $~lib/rt/pure/__release f64.const nan:0x8000000000000 ) - (func $~lib/string/parseFloat (; 43 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/string/parseFloat (; 45 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 f64) local.get $0 call $~lib/rt/pure/__retain @@ -2866,7 +3360,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#concat (; 44 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2927,7 +3421,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 45 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2946,7 +3440,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String.__ne (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2963,7 +3457,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String.__gt (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3032,7 +3526,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__lt (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3100,7 +3594,7 @@ call $~lib/rt/pure/__release i32.const 0 ) - (func $~lib/string/String.__gte (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gte (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -3117,7 +3611,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String.__lte (; 50 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/string/String.__lte (; 52 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) i32.const 120 call $~lib/rt/pure/__retain @@ -3134,7 +3628,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#repeat (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#repeat (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3163,7 +3657,7 @@ i32.lt_s select if - i32.const 1888 + i32.const 1984 i32.const 456 i32.const 335 i32.const 6 @@ -3205,7 +3699,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#slice (; 52 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#slice (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 call $~lib/string/String#get:length @@ -3280,7 +3774,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/rt/__allocArray (; 53 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/rt/__allocArray (; 55 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3308,7 +3802,7 @@ i32.store offset=12 local.get $1 ) - (func $~lib/rt/tlsf/reallocateBlock (; 54 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 56 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3422,7 +3916,7 @@ call $~lib/rt/tlsf/insertBlock local.get $3 ) - (func $~lib/rt/tlsf/__realloc (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__realloc (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -3458,7 +3952,7 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.fill (; 56 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/memory/memory.fill (; 58 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $~lib/util/memory/memset|inlined.0 local.get $1 @@ -3667,7 +4161,7 @@ end end ) - (func $~lib/array/ensureSize (; 57 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/ensureSize (; 59 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3683,8 +4177,8 @@ i32.const 268435452 i32.gt_u if - i32.const 1888 - i32.const 2304 + i32.const 1984 + i32.const 2400 i32.const 14 i32.const 47 call $~lib/builtins/abort @@ -3722,7 +4216,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#push (; 58 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#push (; 60 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $1 @@ -3751,7 +4245,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String#split (; 59 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#split (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3973,14 +4467,14 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/array/Array<~lib/string/String>#__get (; 60 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 2352 - i32.const 2304 + i32.const 2448 + i32.const 2400 i32.const 106 i32.const 45 call $~lib/builtins/abort @@ -3994,7 +4488,7 @@ i32.ge_u if i32.const 232 - i32.const 2304 + i32.const 2400 i32.const 109 i32.const 61 call $~lib/builtins/abort @@ -4009,7 +4503,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/util/number/decimalCount32 (; 61 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) i32.const 1 i32.const 2 local.get $0 @@ -4057,7 +4551,7 @@ i32.lt_u select ) - (func $~lib/util/number/utoa_simple (; 62 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 64 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -4084,7 +4578,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/itoa32 (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 65 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4127,7 +4621,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/utoa32 (; 64 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 66 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -4151,7 +4645,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/decimalCount64 (; 65 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 67 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) i32.const 11 i32.const 12 local.get $0 @@ -4199,7 +4693,7 @@ i64.lt_u select ) - (func $~lib/util/number/utoa_simple (; 66 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 68 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) loop $continue|0 local.get $1 @@ -4229,7 +4723,7 @@ br_if $continue|0 end ) - (func $~lib/util/number/utoa64 (; 67 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 69 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4273,7 +4767,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa64 (; 68 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 70 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4338,7 +4832,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/genDigits (; 69 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 71 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i32) (local $9 i64) @@ -4373,7 +4867,7 @@ local.tee $7 call $~lib/util/number/decimalCount32 local.set $4 - i32.const 4884 + i32.const 4980 i32.load local.set $13 loop $continue|0 @@ -4737,7 +5231,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 70 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 72 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -4984,7 +5478,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 71 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 73 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i32) (local $4 i64) @@ -5100,7 +5594,7 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 4572 + i32.const 4668 i32.load local.get $3 i32.const 3 @@ -5108,7 +5602,7 @@ i32.add i64.load global.set $~lib/util/number/_frc_pow - i32.const 4796 + i32.const 4892 i32.load local.get $3 i32.const 1 @@ -5272,7 +5766,7 @@ local.get $10 i32.add ) - (func $~lib/string/String#substring (; 72 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 74 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5359,14 +5853,14 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/dtoa (; 73 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 75 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) local.get $0 f64.const 0 f64.eq if - i32.const 3736 + i32.const 3832 call $~lib/rt/pure/__retain return end @@ -5380,12 +5874,12 @@ local.get $0 f64.ne if - i32.const 3760 + i32.const 3856 call $~lib/rt/pure/__retain return end - i32.const 3784 - i32.const 3824 + i32.const 3880 + i32.const 3920 local.get $0 f64.const 0 f64.lt @@ -5413,7 +5907,7 @@ local.get $1 call $~lib/rt/tlsf/__free ) - (func $start:std/string (; 74 ;) (type $FUNCSIG$v) + (func $start:std/string (; 76 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5441,7 +5935,7 @@ (local $24 i32) (local $25 i32) (local $26 i32) - (local $27 i32) + (local $27 i64) (local $28 i32) (local $29 i32) (local $30 i32) @@ -5543,6 +6037,7 @@ (local $126 i32) (local $127 i32) (local $128 i32) + (local $129 i32) global.get $std/string/str i32.const 24 i32.ne @@ -6414,6 +6909,38 @@ call $~lib/builtins/abort unreachable end + i32.const 1320 + call $~lib/rt/pure/__retain + drop + call $~lib/util/string/strtol + i32.const 1320 + call $~lib/rt/pure/__release + i32.const 2147483647 + i32.ne + if + i32.const 0 + i32.const 72 + i32.const 82 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1360 + call $~lib/rt/pure/__retain + drop + call $~lib/util/string/strtol + i32.const 1360 + call $~lib/rt/pure/__release + i64.const 9223372036854775807 + i64.ne + if + i32.const 0 + i32.const 72 + i32.const 83 + i32.const 0 + call $~lib/builtins/abort + unreachable + end i32.const 1040 call $~lib/string/parseFloat f64.const 0 @@ -6421,7 +6948,7 @@ if i32.const 0 i32.const 72 - i32.const 82 + i32.const 85 i32.const 0 call $~lib/builtins/abort unreachable @@ -6430,42 +6957,6 @@ call $~lib/string/parseFloat f64.const 1 f64.ne - if - i32.const 0 - i32.const 72 - i32.const 83 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1376 - call $~lib/string/parseFloat - f64.const 0.1 - f64.ne - if - i32.const 0 - i32.const 72 - i32.const 84 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1400 - call $~lib/string/parseFloat - f64.const 0.25 - f64.ne - if - i32.const 0 - i32.const 72 - i32.const 85 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1424 - call $~lib/string/parseFloat - f64.const 0.1 - f64.ne if i32.const 0 i32.const 72 @@ -6474,10 +6965,22 @@ call $~lib/builtins/abort unreachable end - i32.const 1456 + i32.const 1472 call $~lib/string/parseFloat f64.const 0.1 f64.ne + if + i32.const 0 + i32.const 72 + i32.const 87 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1496 + call $~lib/string/parseFloat + f64.const 0.25 + f64.ne if i32.const 0 i32.const 72 @@ -6486,19 +6989,43 @@ call $~lib/builtins/abort unreachable end + i32.const 1520 + call $~lib/string/parseFloat + f64.const 0.1 + f64.ne + if + i32.const 0 + i32.const 72 + i32.const 89 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1552 + call $~lib/string/parseFloat + f64.const 0.1 + f64.ne + if + i32.const 0 + i32.const 72 + i32.const 91 + i32.const 0 + call $~lib/builtins/abort + unreachable + end i32.const 408 - i32.const 1488 + i32.const 1584 call $~lib/string/String.__concat local.tee $1 call $~lib/rt/pure/__retain local.tee $0 - i32.const 1512 + i32.const 1608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 92 + i32.const 95 i32.const 2 call $~lib/builtins/abort unreachable @@ -6510,7 +7037,7 @@ if i32.const 0 i32.const 72 - i32.const 93 + i32.const 96 i32.const 2 call $~lib/builtins/abort unreachable @@ -6523,42 +7050,6 @@ i32.const 120 call $~lib/string/String.__eq i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 95 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 120 - global.get $std/string/nullStr - call $~lib/string/String.__ne - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 96 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - global.get $std/string/nullStr - i32.const 120 - call $~lib/string/String.__ne - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 97 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 408 - i32.const 1488 - call $~lib/string/String.__ne - i32.eqz if i32.const 0 i32.const 72 @@ -6567,9 +7058,9 @@ call $~lib/builtins/abort unreachable end - i32.const 408 - i32.const 408 - call $~lib/string/String.__eq + i32.const 120 + global.get $std/string/nullStr + call $~lib/string/String.__ne i32.eqz if i32.const 0 @@ -6579,8 +7070,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1536 - i32.const 1560 + global.get $std/string/nullStr + i32.const 120 call $~lib/string/String.__ne i32.eqz if @@ -6591,9 +7082,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1536 - i32.const 1536 - call $~lib/string/String.__eq + i32.const 408 + i32.const 1584 + call $~lib/string/String.__ne i32.eqz if i32.const 0 @@ -6603,9 +7094,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1584 - i32.const 1608 - call $~lib/string/String.__ne + i32.const 408 + i32.const 408 + call $~lib/string/String.__eq i32.eqz if i32.const 0 @@ -6616,7 +7107,7 @@ unreachable end i32.const 1632 - i32.const 1664 + i32.const 1656 call $~lib/string/String.__ne i32.eqz if @@ -6627,8 +7118,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1696 - i32.const 1696 + i32.const 1632 + i32.const 1632 call $~lib/string/String.__eq i32.eqz if @@ -6639,8 +7130,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1696 - i32.const 1728 + i32.const 1680 + i32.const 1704 call $~lib/string/String.__ne i32.eqz if @@ -6651,8 +7142,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1728 i32.const 1760 - i32.const 1800 call $~lib/string/String.__ne i32.eqz if @@ -6663,9 +7154,21 @@ call $~lib/builtins/abort unreachable end - i32.const 1488 - i32.const 408 - call $~lib/string/String.__gt + i32.const 1792 + i32.const 1792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 107 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1792 + i32.const 1824 + call $~lib/string/String.__ne i32.eqz if i32.const 0 @@ -6675,9 +7178,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1840 - i32.const 408 - call $~lib/string/String.__gt + i32.const 1856 + i32.const 1896 + call $~lib/string/String.__ne i32.eqz if i32.const 0 @@ -6687,20 +7190,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1840 - i32.const 1864 - call $~lib/string/String.__gte - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 110 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1840 - i32.const 1512 + i32.const 1584 + i32.const 408 call $~lib/string/String.__gt i32.eqz if @@ -6711,9 +7202,10 @@ call $~lib/builtins/abort unreachable end - i32.const 1840 - i32.const 1512 - call $~lib/string/String.__lt + i32.const 1936 + i32.const 408 + call $~lib/string/String.__gt + i32.eqz if i32.const 0 i32.const 72 @@ -6722,9 +7214,22 @@ call $~lib/builtins/abort unreachable end - i32.const 1488 - global.get $std/string/nullStr - call $~lib/string/String.__lt + i32.const 1936 + i32.const 1960 + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 113 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1936 + i32.const 1608 + call $~lib/string/String.__gt + i32.eqz if i32.const 0 i32.const 72 @@ -6733,8 +7238,8 @@ call $~lib/builtins/abort unreachable end - global.get $std/string/nullStr - i32.const 1488 + i32.const 1936 + i32.const 1608 call $~lib/string/String.__lt if i32.const 0 @@ -6744,10 +7249,9 @@ call $~lib/builtins/abort unreachable end - i32.const 680 - i32.const 120 - call $~lib/string/String.__gt - i32.eqz + i32.const 1584 + global.get $std/string/nullStr + call $~lib/string/String.__lt if i32.const 0 i32.const 72 @@ -6756,10 +7260,9 @@ call $~lib/builtins/abort unreachable end - i32.const 120 - i32.const 680 + global.get $std/string/nullStr + i32.const 1584 call $~lib/string/String.__lt - i32.eqz if i32.const 0 i32.const 72 @@ -6770,18 +7273,7 @@ end i32.const 680 i32.const 120 - call $~lib/string/String.__gte - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 119 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 680 - call $~lib/string/String.__lte + call $~lib/string/String.__gt i32.eqz if i32.const 0 @@ -6791,9 +7283,10 @@ call $~lib/builtins/abort unreachable end - i32.const 680 i32.const 120 + i32.const 680 call $~lib/string/String.__lt + i32.eqz if i32.const 0 i32.const 72 @@ -6802,13 +7295,47 @@ call $~lib/builtins/abort unreachable end + i32.const 680 + i32.const 120 + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 122 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 680 + call $~lib/string/String.__lte + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 123 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 680 + i32.const 120 + call $~lib/string/String.__lt + if + i32.const 0 + i32.const 72 + i32.const 124 + i32.const 0 + call $~lib/builtins/abort + unreachable + end i32.const 120 i32.const 680 call $~lib/string/String.__gt if i32.const 0 i32.const 72 - i32.const 122 + i32.const 125 i32.const 0 call $~lib/builtins/abort unreachable @@ -6819,7 +7346,7 @@ if i32.const 0 i32.const 72 - i32.const 123 + i32.const 126 i32.const 0 call $~lib/builtins/abort unreachable @@ -6830,7 +7357,7 @@ if i32.const 0 i32.const 72 - i32.const 124 + i32.const 127 i32.const 0 call $~lib/builtins/abort unreachable @@ -6842,7 +7369,7 @@ if i32.const 0 i32.const 72 - i32.const 125 + i32.const 128 i32.const 0 call $~lib/builtins/abort unreachable @@ -6853,7 +7380,7 @@ if i32.const 0 i32.const 72 - i32.const 126 + i32.const 129 i32.const 0 call $~lib/builtins/abort unreachable @@ -6876,7 +7403,7 @@ if i32.const 0 i32.const 72 - i32.const 131 + i32.const 134 i32.const 2 call $~lib/builtins/abort unreachable @@ -6898,7 +7425,7 @@ if i32.const 0 i32.const 72 - i32.const 134 + i32.const 137 i32.const 0 call $~lib/builtins/abort unreachable @@ -6913,7 +7440,7 @@ if i32.const 0 i32.const 72 - i32.const 136 + i32.const 139 i32.const 0 call $~lib/builtins/abort unreachable @@ -6928,7 +7455,7 @@ if i32.const 0 i32.const 72 - i32.const 137 + i32.const 140 i32.const 0 call $~lib/builtins/abort unreachable @@ -6936,53 +7463,8 @@ i32.const 408 i32.const 1 call $~lib/string/String#repeat - local.tee $27 - i32.const 408 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 138 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 408 - i32.const 2 - call $~lib/string/String#repeat local.tee $28 - i32.const 1864 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 139 - i32.const 0 - call $~lib/builtins/abort - unreachable - end i32.const 408 - i32.const 3 - call $~lib/string/String#repeat - local.tee $29 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 140 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1512 - i32.const 4 - call $~lib/string/String#repeat - local.tee $30 - i32.const 1960 call $~lib/string/String.__eq i32.eqz if @@ -6994,10 +7476,10 @@ unreachable end i32.const 408 - i32.const 5 + i32.const 2 call $~lib/string/String#repeat - local.tee $31 - i32.const 1992 + local.tee $29 + i32.const 1960 call $~lib/string/String.__eq i32.eqz if @@ -7009,10 +7491,10 @@ unreachable end i32.const 408 - i32.const 6 + i32.const 3 call $~lib/string/String#repeat - local.tee $32 - i32.const 2024 + local.tee $30 + i32.const 2032 call $~lib/string/String.__eq i32.eqz if @@ -7023,10 +7505,10 @@ call $~lib/builtins/abort unreachable end - i32.const 408 - i32.const 7 + i32.const 1608 + i32.const 4 call $~lib/string/String#repeat - local.tee $33 + local.tee $31 i32.const 2056 call $~lib/string/String.__eq i32.eqz @@ -7038,73 +7520,70 @@ call $~lib/builtins/abort unreachable end + i32.const 408 + i32.const 5 + call $~lib/string/String#repeat + local.tee $32 + i32.const 2088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 145 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 408 + i32.const 6 + call $~lib/string/String#repeat + local.tee $33 + i32.const 2120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 146 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 408 + i32.const 7 + call $~lib/string/String#repeat + local.tee $34 + i32.const 2152 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 147 + i32.const 0 + call $~lib/builtins/abort + unreachable + end global.get $std/string/str local.tee $0 - i32.const 2088 + i32.const 2184 i32.ne if - i32.const 2088 + i32.const 2184 call $~lib/rt/pure/__retain drop local.get $0 call $~lib/rt/pure/__release end - i32.const 2088 + i32.const 2184 global.set $std/string/str global.get $std/string/str i32.const 0 i32.const 2147483647 call $~lib/string/String#slice - local.tee $34 - i32.const 2088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 148 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - global.get $std/string/str - i32.const -1 - i32.const 2147483647 - call $~lib/string/String#slice local.tee $35 - i32.const 2136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 149 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - global.get $std/string/str - i32.const -5 - i32.const 2147483647 - call $~lib/string/String#slice - local.tee $36 - i32.const 2160 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 150 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - global.get $std/string/str - i32.const 2 - i32.const 7 - call $~lib/string/String#slice - local.tee $37 - i32.const 2192 + i32.const 2184 call $~lib/string/String.__eq i32.eqz if @@ -7116,11 +7595,11 @@ unreachable end global.get $std/string/str - i32.const -11 - i32.const -6 + i32.const -1 + i32.const 2147483647 call $~lib/string/String#slice - local.tee $38 - i32.const 2224 + local.tee $36 + i32.const 2232 call $~lib/string/String.__eq i32.eqz if @@ -7132,11 +7611,11 @@ unreachable end global.get $std/string/str - i32.const 4 - i32.const 3 + i32.const -5 + i32.const 2147483647 call $~lib/string/String#slice - local.tee $39 - i32.const 120 + local.tee $37 + i32.const 2256 call $~lib/string/String.__eq i32.eqz if @@ -7148,11 +7627,11 @@ unreachable end global.get $std/string/str - i32.const 0 - i32.const -1 + i32.const 2 + i32.const 7 call $~lib/string/String#slice - local.tee $40 - i32.const 2256 + local.tee $38 + i32.const 2288 call $~lib/string/String.__eq i32.eqz if @@ -7163,6 +7642,54 @@ call $~lib/builtins/abort unreachable end + global.get $std/string/str + i32.const -11 + i32.const -6 + call $~lib/string/String#slice + local.tee $39 + i32.const 2320 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 155 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + i32.const 4 + i32.const 3 + call $~lib/string/String#slice + local.tee $40 + i32.const 120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 156 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + i32.const 0 + i32.const -1 + call $~lib/string/String#slice + local.tee $41 + i32.const 2352 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 157 + i32.const 0 + call $~lib/builtins/abort + unreachable + end i32.const 120 i32.const 0 call $~lib/string/String#split @@ -7192,7 +7719,7 @@ if i32.const 0 i32.const 72 - i32.const 160 + i32.const 163 i32.const 2 call $~lib/builtins/abort unreachable @@ -7208,7 +7735,7 @@ if i32.const 0 i32.const 72 - i32.const 162 + i32.const 165 i32.const 2 call $~lib/builtins/abort unreachable @@ -7242,13 +7769,13 @@ if i32.const 0 i32.const 72 - i32.const 164 + i32.const 167 i32.const 2 call $~lib/builtins/abort unreachable end - i32.const 2464 - i32.const 2496 + i32.const 2560 + i32.const 2592 call $~lib/string/String#split local.set $0 local.get $2 @@ -7262,7 +7789,7 @@ i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $2 - i32.const 2464 + i32.const 2560 call $~lib/string/String.__eq local.set $1 local.get $2 @@ -7276,12 +7803,12 @@ if i32.const 0 i32.const 72 - i32.const 166 + i32.const 169 i32.const 2 call $~lib/builtins/abort unreachable end - i32.const 2464 + i32.const 2560 i32.const 920 call $~lib/string/String#split local.get $0 @@ -7310,7 +7837,7 @@ i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $2 - i32.const 1488 + i32.const 1584 call $~lib/string/String.__eq local.set $1 local.get $2 @@ -7325,7 +7852,7 @@ i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $2 - i32.const 2520 + i32.const 2616 call $~lib/string/String.__eq local.set $1 local.get $2 @@ -7339,7 +7866,7 @@ if i32.const 0 i32.const 72 - i32.const 168 + i32.const 171 i32.const 2 call $~lib/builtins/abort unreachable @@ -7355,7 +7882,7 @@ if i32.const 0 i32.const 72 - i32.const 194 + i32.const 197 i32.const 0 call $~lib/builtins/abort unreachable @@ -7369,7 +7896,7 @@ if i32.const 0 i32.const 72 - i32.const 195 + i32.const 198 i32.const 0 call $~lib/builtins/abort unreachable @@ -7377,49 +7904,7 @@ i32.const 8 call $~lib/util/number/itoa32 local.tee $2 - i32.const 2544 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 196 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 123 - call $~lib/util/number/itoa32 - local.tee $41 - i32.const 736 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 197 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const -1000 - call $~lib/util/number/itoa32 - local.tee $42 - i32.const 2568 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 198 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1234 - call $~lib/util/number/itoa32 - local.tee $43 - i32.const 2600 + i32.const 2640 call $~lib/string/String.__eq i32.eqz if @@ -7430,10 +7915,10 @@ call $~lib/builtins/abort unreachable end - i32.const 12345 + i32.const 123 call $~lib/util/number/itoa32 - local.tee $44 - i32.const 2624 + local.tee $42 + i32.const 736 call $~lib/string/String.__eq i32.eqz if @@ -7444,10 +7929,10 @@ call $~lib/builtins/abort unreachable end - i32.const 123456 + i32.const -1000 call $~lib/util/number/itoa32 - local.tee $45 - i32.const 2656 + local.tee $43 + i32.const 2664 call $~lib/string/String.__eq i32.eqz if @@ -7458,10 +7943,10 @@ call $~lib/builtins/abort unreachable end - i32.const 1111111 + i32.const 1234 call $~lib/util/number/itoa32 - local.tee $46 - i32.const 2688 + local.tee $44 + i32.const 2696 call $~lib/string/String.__eq i32.eqz if @@ -7472,9 +7957,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1234567 + i32.const 12345 call $~lib/util/number/itoa32 - local.tee $47 + local.tee $45 i32.const 2720 call $~lib/string/String.__eq i32.eqz @@ -7486,9 +7971,9 @@ call $~lib/builtins/abort unreachable end - i32.const 2147483646 + i32.const 123456 call $~lib/util/number/itoa32 - local.tee $48 + local.tee $46 i32.const 2752 call $~lib/string/String.__eq i32.eqz @@ -7500,10 +7985,10 @@ call $~lib/builtins/abort unreachable end - i32.const 2147483647 + i32.const 1111111 call $~lib/util/number/itoa32 - local.tee $49 - i32.const 2792 + local.tee $47 + i32.const 2784 call $~lib/string/String.__eq i32.eqz if @@ -7514,10 +7999,10 @@ call $~lib/builtins/abort unreachable end - i32.const -2147483648 + i32.const 1234567 call $~lib/util/number/itoa32 - local.tee $50 - i32.const 2832 + local.tee $48 + i32.const 2816 call $~lib/string/String.__eq i32.eqz if @@ -7528,10 +8013,10 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + i32.const 2147483646 call $~lib/util/number/itoa32 - local.tee $51 - i32.const 2872 + local.tee $49 + i32.const 2848 call $~lib/string/String.__eq i32.eqz if @@ -7542,10 +8027,24 @@ call $~lib/builtins/abort unreachable end - i32.const 0 - call $~lib/util/number/utoa32 - local.tee $52 - i32.const 1040 + i32.const 2147483647 + call $~lib/util/number/itoa32 + local.tee $50 + i32.const 2888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 208 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const -2147483648 + call $~lib/util/number/itoa32 + local.tee $51 + i32.const 2928 call $~lib/string/String.__eq i32.eqz if @@ -7556,10 +8055,10 @@ call $~lib/builtins/abort unreachable end - i32.const 1000 - call $~lib/util/number/utoa32 - local.tee $53 - i32.const 2896 + i32.const -1 + call $~lib/util/number/itoa32 + local.tee $52 + i32.const 2968 call $~lib/string/String.__eq i32.eqz if @@ -7570,24 +8069,10 @@ call $~lib/builtins/abort unreachable end - i32.const 2147483647 + i32.const 0 call $~lib/util/number/utoa32 - local.tee $54 - i32.const 2792 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 211 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const -2147483648 - call $~lib/util/number/utoa32 - local.tee $55 - i32.const 2920 + local.tee $53 + i32.const 1040 call $~lib/string/String.__eq i32.eqz if @@ -7598,10 +8083,10 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + i32.const 1000 call $~lib/util/number/utoa32 - local.tee $56 - i32.const 2960 + local.tee $54 + i32.const 2992 call $~lib/string/String.__eq i32.eqz if @@ -7612,10 +8097,24 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - call $~lib/util/number/utoa64 - local.tee $57 - i32.const 1040 + i32.const 2147483647 + call $~lib/util/number/utoa32 + local.tee $55 + i32.const 2888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 214 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const -2147483648 + call $~lib/util/number/utoa32 + local.tee $56 + i32.const 3016 call $~lib/string/String.__eq i32.eqz if @@ -7626,10 +8125,10 @@ call $~lib/builtins/abort unreachable end - i64.const 1234 - call $~lib/util/number/utoa64 - local.tee $58 - i32.const 2600 + i32.const -1 + call $~lib/util/number/utoa32 + local.tee $57 + i32.const 3056 call $~lib/string/String.__eq i32.eqz if @@ -7640,24 +8139,10 @@ call $~lib/builtins/abort unreachable end - i64.const 99999999 + i64.const 0 call $~lib/util/number/utoa64 - local.tee $59 - i32.const 3000 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 217 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i64.const 100000000 - call $~lib/util/number/utoa64 - local.tee $60 - i32.const 3032 + local.tee $58 + i32.const 1040 call $~lib/string/String.__eq i32.eqz if @@ -7668,10 +8153,10 @@ call $~lib/builtins/abort unreachable end - i64.const 4294967295 + i64.const 1234 call $~lib/util/number/utoa64 - local.tee $61 - i32.const 2960 + local.tee $59 + i32.const 2696 call $~lib/string/String.__eq i32.eqz if @@ -7682,10 +8167,10 @@ call $~lib/builtins/abort unreachable end - i64.const 68719476735 + i64.const 99999999 call $~lib/util/number/utoa64 - local.tee $62 - i32.const 3072 + local.tee $60 + i32.const 3096 call $~lib/string/String.__eq i32.eqz if @@ -7696,10 +8181,10 @@ call $~lib/builtins/abort unreachable end - i64.const 868719476735 + i64.const 100000000 call $~lib/util/number/utoa64 - local.tee $63 - i32.const 3112 + local.tee $61 + i32.const 3128 call $~lib/string/String.__eq i32.eqz if @@ -7710,10 +8195,10 @@ call $~lib/builtins/abort unreachable end - i64.const 999868719476735 + i64.const 4294967295 call $~lib/util/number/utoa64 - local.tee $64 - i32.const 3152 + local.tee $62 + i32.const 3056 call $~lib/string/String.__eq i32.eqz if @@ -7724,10 +8209,10 @@ call $~lib/builtins/abort unreachable end - i64.const 9999868719476735 + i64.const 68719476735 call $~lib/util/number/utoa64 - local.tee $65 - i32.const 3200 + local.tee $63 + i32.const 3168 call $~lib/string/String.__eq i32.eqz if @@ -7738,10 +8223,10 @@ call $~lib/builtins/abort unreachable end - i64.const 19999868719476735 + i64.const 868719476735 call $~lib/util/number/utoa64 - local.tee $66 - i32.const 3248 + local.tee $64 + i32.const 3208 call $~lib/string/String.__eq i32.eqz if @@ -7752,10 +8237,10 @@ call $~lib/builtins/abort unreachable end - i64.const -1 + i64.const 999868719476735 call $~lib/util/number/utoa64 - local.tee $67 - i32.const 3304 + local.tee $65 + i32.const 3248 call $~lib/string/String.__eq i32.eqz if @@ -7766,10 +8251,24 @@ call $~lib/builtins/abort unreachable end - i64.const 0 - call $~lib/util/number/itoa64 - local.tee $68 - i32.const 1040 + i64.const 9999868719476735 + call $~lib/util/number/utoa64 + local.tee $66 + i32.const 3296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 226 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i64.const 19999868719476735 + call $~lib/util/number/utoa64 + local.tee $67 + i32.const 3344 call $~lib/string/String.__eq i32.eqz if @@ -7780,10 +8279,10 @@ call $~lib/builtins/abort unreachable end - i64.const -1234 - call $~lib/util/number/itoa64 - local.tee $69 - i32.const 3360 + i64.const -1 + call $~lib/util/number/utoa64 + local.tee $68 + i32.const 3400 call $~lib/string/String.__eq i32.eqz if @@ -7794,24 +8293,10 @@ call $~lib/builtins/abort unreachable end - i64.const 4294967295 + i64.const 0 call $~lib/util/number/itoa64 - local.tee $70 - i32.const 2960 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 229 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i64.const -4294967295 - call $~lib/util/number/itoa64 - local.tee $71 - i32.const 3392 + local.tee $69 + i32.const 1040 call $~lib/string/String.__eq i32.eqz if @@ -7822,10 +8307,10 @@ call $~lib/builtins/abort unreachable end - i64.const 68719476735 + i64.const -1234 call $~lib/util/number/itoa64 - local.tee $72 - i32.const 3072 + local.tee $70 + i32.const 3456 call $~lib/string/String.__eq i32.eqz if @@ -7836,10 +8321,10 @@ call $~lib/builtins/abort unreachable end - i64.const -68719476735 + i64.const 4294967295 call $~lib/util/number/itoa64 - local.tee $73 - i32.const 3432 + local.tee $71 + i32.const 3056 call $~lib/string/String.__eq i32.eqz if @@ -7850,10 +8335,10 @@ call $~lib/builtins/abort unreachable end - i64.const -868719476735 + i64.const -4294967295 call $~lib/util/number/itoa64 - local.tee $74 - i32.const 3472 + local.tee $72 + i32.const 3488 call $~lib/string/String.__eq i32.eqz if @@ -7864,10 +8349,10 @@ call $~lib/builtins/abort unreachable end - i64.const -999868719476735 + i64.const 68719476735 call $~lib/util/number/itoa64 - local.tee $75 - i32.const 3520 + local.tee $73 + i32.const 3168 call $~lib/string/String.__eq i32.eqz if @@ -7878,10 +8363,10 @@ call $~lib/builtins/abort unreachable end - i64.const -19999868719476735 + i64.const -68719476735 call $~lib/util/number/itoa64 - local.tee $76 - i32.const 3568 + local.tee $74 + i32.const 3528 call $~lib/string/String.__eq i32.eqz if @@ -7892,10 +8377,10 @@ call $~lib/builtins/abort unreachable end - i64.const 9223372036854775807 + i64.const -868719476735 call $~lib/util/number/itoa64 - local.tee $77 - i32.const 3624 + local.tee $75 + i32.const 3568 call $~lib/string/String.__eq i32.eqz if @@ -7906,10 +8391,10 @@ call $~lib/builtins/abort unreachable end - i64.const -9223372036854775808 + i64.const -999868719476735 call $~lib/util/number/itoa64 - local.tee $78 - i32.const 3680 + local.tee $76 + i32.const 3616 call $~lib/string/String.__eq i32.eqz if @@ -7920,10 +8405,38 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - call $~lib/util/number/dtoa + i64.const -19999868719476735 + call $~lib/util/number/itoa64 + local.tee $77 + i32.const 3664 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 238 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i64.const 9223372036854775807 + call $~lib/util/number/itoa64 + local.tee $78 + i32.const 3720 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 239 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i64.const -9223372036854775808 + call $~lib/util/number/itoa64 local.tee $79 - i32.const 3736 + i32.const 3776 call $~lib/string/String.__eq i32.eqz if @@ -7934,38 +8447,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 + f64.const 0 call $~lib/util/number/dtoa local.tee $80 - i32.const 3736 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 241 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const nan:0x8000000000000 - call $~lib/util/number/dtoa - local.tee $81 - i32.const 3760 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 242 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const inf - call $~lib/util/number/dtoa - local.tee $82 - i32.const 3824 + i32.const 3832 call $~lib/string/String.__eq i32.eqz if @@ -7976,10 +8461,10 @@ call $~lib/builtins/abort unreachable end - f64.const -inf + f64.const -0 call $~lib/util/number/dtoa - local.tee $83 - i32.const 3784 + local.tee $81 + i32.const 3832 call $~lib/string/String.__eq i32.eqz if @@ -7990,10 +8475,10 @@ call $~lib/builtins/abort unreachable end - f64.const 2.220446049250313e-16 + f64.const nan:0x8000000000000 call $~lib/util/number/dtoa - local.tee $84 - i32.const 4912 + local.tee $82 + i32.const 3856 call $~lib/string/String.__eq i32.eqz if @@ -8004,10 +8489,10 @@ call $~lib/builtins/abort unreachable end - f64.const -2.220446049250313e-16 + f64.const inf call $~lib/util/number/dtoa - local.tee $85 - i32.const 4976 + local.tee $83 + i32.const 3920 call $~lib/string/String.__eq i32.eqz if @@ -8018,10 +8503,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1797693134862315708145274e284 + f64.const -inf call $~lib/util/number/dtoa - local.tee $86 - i32.const 5040 + local.tee $84 + i32.const 3880 call $~lib/string/String.__eq i32.eqz if @@ -8032,10 +8517,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1797693134862315708145274e284 + f64.const 2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $87 - i32.const 5104 + local.tee $85 + i32.const 5008 call $~lib/string/String.__eq i32.eqz if @@ -8046,10 +8531,10 @@ call $~lib/builtins/abort unreachable end - f64.const 4185580496821356722454785e274 + f64.const -2.220446049250313e-16 call $~lib/util/number/dtoa - local.tee $88 - i32.const 5168 + local.tee $86 + i32.const 5072 call $~lib/string/String.__eq i32.eqz if @@ -8060,10 +8545,10 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 + f64.const 1797693134862315708145274e284 call $~lib/util/number/dtoa - local.tee $89 - i32.const 5232 + local.tee $87 + i32.const 5136 call $~lib/string/String.__eq i32.eqz if @@ -8074,10 +8559,38 @@ call $~lib/builtins/abort unreachable end - f64.const 4.940656e-318 + f64.const -1797693134862315708145274e284 + call $~lib/util/number/dtoa + local.tee $88 + i32.const 5200 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 251 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 4185580496821356722454785e274 + call $~lib/util/number/dtoa + local.tee $89 + i32.const 5264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 252 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072014e-308 call $~lib/util/number/dtoa local.tee $90 - i32.const 5296 + i32.const 5328 call $~lib/string/String.__eq i32.eqz if @@ -8088,38 +8601,10 @@ call $~lib/builtins/abort unreachable end - f64.const 9060801153433600 + f64.const 4.940656e-318 call $~lib/util/number/dtoa local.tee $91 - i32.const 5344 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 254 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 4708356024711512064 - call $~lib/util/number/dtoa - local.tee $92 - i32.const 5400 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 255 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 9409340012568248320 - call $~lib/util/number/dtoa - local.tee $93 - i32.const 5464 + i32.const 5392 call $~lib/string/String.__eq i32.eqz if @@ -8130,10 +8615,10 @@ call $~lib/builtins/abort unreachable end - f64.const 5e-324 + f64.const 9060801153433600 call $~lib/util/number/dtoa - local.tee $94 - i32.const 5528 + local.tee $92 + i32.const 5440 call $~lib/string/String.__eq i32.eqz if @@ -8144,52 +8629,52 @@ call $~lib/builtins/abort unreachable end - f64.const 1 + f64.const 4708356024711512064 call $~lib/util/number/dtoa - local.tee $95 + local.tee $93 + i32.const 5496 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 258 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 9409340012568248320 + call $~lib/util/number/dtoa + local.tee $94 i32.const 5560 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 263 + i32.const 259 i32.const 0 call $~lib/builtins/abort unreachable end - f64.const 0.1 + f64.const 5e-324 + call $~lib/util/number/dtoa + local.tee $95 + i32.const 5624 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 260 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 1 call $~lib/util/number/dtoa local.tee $96 - i32.const 1376 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 264 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const -1 - call $~lib/util/number/dtoa - local.tee $97 - i32.const 5584 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 265 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const -0.1 - call $~lib/util/number/dtoa - local.tee $98 - i32.const 5608 + i32.const 5656 call $~lib/string/String.__eq i32.eqz if @@ -8200,10 +8685,24 @@ call $~lib/builtins/abort unreachable end - f64.const 1e6 + f64.const 0.1 call $~lib/util/number/dtoa - local.tee $99 - i32.const 5632 + local.tee $97 + i32.const 1472 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 267 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + call $~lib/util/number/dtoa + local.tee $98 + i32.const 5680 call $~lib/string/String.__eq i32.eqz if @@ -8214,10 +8713,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e-06 + f64.const -0.1 call $~lib/util/number/dtoa - local.tee $100 - i32.const 5672 + local.tee $99 + i32.const 5704 call $~lib/string/String.__eq i32.eqz if @@ -8228,24 +8727,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1e6 + f64.const 1e6 call $~lib/util/number/dtoa - local.tee $101 - i32.const 5704 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 270 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const -1e-06 - call $~lib/util/number/dtoa - local.tee $102 - i32.const 5744 + local.tee $100 + i32.const 5728 call $~lib/string/String.__eq i32.eqz if @@ -8256,10 +8741,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e7 + f64.const 1e-06 call $~lib/util/number/dtoa - local.tee $103 - i32.const 5784 + local.tee $101 + i32.const 5768 call $~lib/string/String.__eq i32.eqz if @@ -8270,10 +8755,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e-07 + f64.const -1e6 call $~lib/util/number/dtoa - local.tee $104 - i32.const 5824 + local.tee $102 + i32.const 5800 call $~lib/string/String.__eq i32.eqz if @@ -8284,10 +8769,24 @@ call $~lib/builtins/abort unreachable end - f64.const 1.e+308 + f64.const -1e-06 call $~lib/util/number/dtoa - local.tee $105 - i32.const 5848 + local.tee $103 + i32.const 5840 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 274 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 1e7 + call $~lib/util/number/dtoa + local.tee $104 + i32.const 5880 call $~lib/string/String.__eq i32.eqz if @@ -8298,10 +8797,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1.e+308 + f64.const 1e-07 call $~lib/util/number/dtoa - local.tee $106 - i32.const 5880 + local.tee $105 + i32.const 5920 call $~lib/string/String.__eq i32.eqz if @@ -8312,24 +8811,10 @@ call $~lib/builtins/abort unreachable end - f64.const inf + f64.const 1.e+308 call $~lib/util/number/dtoa - local.tee $107 - i32.const 3824 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 277 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const -inf - call $~lib/util/number/dtoa - local.tee $108 - i32.const 3784 + local.tee $106 + i32.const 5944 call $~lib/string/String.__eq i32.eqz if @@ -8340,10 +8825,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e-308 + f64.const -1.e+308 call $~lib/util/number/dtoa - local.tee $109 - i32.const 5912 + local.tee $107 + i32.const 5976 call $~lib/string/String.__eq i32.eqz if @@ -8354,10 +8839,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1e-308 + f64.const inf call $~lib/util/number/dtoa - local.tee $110 - i32.const 5944 + local.tee $108 + i32.const 3920 call $~lib/string/String.__eq i32.eqz if @@ -8368,10 +8853,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e-323 + f64.const -inf call $~lib/util/number/dtoa - local.tee $111 - i32.const 5976 + local.tee $109 + i32.const 3880 call $~lib/string/String.__eq i32.eqz if @@ -8382,9 +8867,9 @@ call $~lib/builtins/abort unreachable end - f64.const -1e-323 + f64.const 1e-308 call $~lib/util/number/dtoa - local.tee $112 + local.tee $110 i32.const 6008 call $~lib/string/String.__eq i32.eqz @@ -8396,10 +8881,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f64.const -1e-308 call $~lib/util/number/dtoa - local.tee $113 - i32.const 3736 + local.tee $111 + i32.const 6040 call $~lib/string/String.__eq i32.eqz if @@ -8410,10 +8895,24 @@ call $~lib/builtins/abort unreachable end - f64.const 4294967272 + f64.const 1e-323 call $~lib/util/number/dtoa - local.tee $114 - i32.const 6040 + local.tee $112 + i32.const 6072 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 284 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-323 + call $~lib/util/number/dtoa + local.tee $113 + i32.const 6104 call $~lib/string/String.__eq i32.eqz if @@ -8424,10 +8923,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1.2312145673456234e-08 + f64.const 0 call $~lib/util/number/dtoa - local.tee $115 - i32.const 6080 + local.tee $114 + i32.const 3832 call $~lib/string/String.__eq i32.eqz if @@ -8438,10 +8937,10 @@ call $~lib/builtins/abort unreachable end - f64.const 555555555.5555556 + f64.const 4294967272 call $~lib/util/number/dtoa - local.tee $116 - i32.const 6144 + local.tee $115 + i32.const 6136 call $~lib/string/String.__eq i32.eqz if @@ -8452,10 +8951,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0.9999999999999999 + f64.const 1.2312145673456234e-08 call $~lib/util/number/dtoa - local.tee $117 - i32.const 6200 + local.tee $116 + i32.const 6176 call $~lib/string/String.__eq i32.eqz if @@ -8466,24 +8965,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1 + f64.const 555555555.5555556 call $~lib/util/number/dtoa - local.tee $118 - i32.const 5560 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 290 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 12.34 - call $~lib/util/number/dtoa - local.tee $119 - i32.const 6256 + local.tee $117 + i32.const 6240 call $~lib/string/String.__eq i32.eqz if @@ -8494,10 +8979,24 @@ call $~lib/builtins/abort unreachable end - f64.const 0.3333333333333333 + f64.const 0.9999999999999999 call $~lib/util/number/dtoa - local.tee $120 - i32.const 6288 + local.tee $118 + i32.const 6296 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 292 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/util/number/dtoa + local.tee $119 + i32.const 5656 call $~lib/string/String.__eq i32.eqz if @@ -8508,10 +9007,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1234e17 + f64.const 12.34 call $~lib/util/number/dtoa - local.tee $121 - i32.const 6344 + local.tee $120 + i32.const 6352 call $~lib/string/String.__eq i32.eqz if @@ -8522,24 +9021,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1234e18 + f64.const 0.3333333333333333 call $~lib/util/number/dtoa - local.tee $122 - i32.const 6408 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 295 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 2.71828 - call $~lib/util/number/dtoa - local.tee $123 - i32.const 6448 + local.tee $121 + i32.const 6384 call $~lib/string/String.__eq i32.eqz if @@ -8550,10 +9035,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0.0271828 + f64.const 1234e17 call $~lib/util/number/dtoa - local.tee $124 - i32.const 6480 + local.tee $122 + i32.const 6440 call $~lib/string/String.__eq i32.eqz if @@ -8564,10 +9049,10 @@ call $~lib/builtins/abort unreachable end - f64.const 271.828 + f64.const 1234e18 call $~lib/util/number/dtoa - local.tee $125 - i32.const 6520 + local.tee $123 + i32.const 6504 call $~lib/string/String.__eq i32.eqz if @@ -8578,10 +9063,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1.1e+128 + f64.const 2.71828 call $~lib/util/number/dtoa - local.tee $126 - i32.const 6552 + local.tee $124 + i32.const 6544 call $~lib/string/String.__eq i32.eqz if @@ -8592,10 +9077,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1.1e-64 + f64.const 0.0271828 call $~lib/util/number/dtoa - local.tee $127 - i32.const 6584 + local.tee $125 + i32.const 6576 call $~lib/string/String.__eq i32.eqz if @@ -8606,9 +9091,9 @@ call $~lib/builtins/abort unreachable end - f64.const 0.000035689 + f64.const 271.828 call $~lib/util/number/dtoa - local.tee $128 + local.tee $126 i32.const 6616 call $~lib/string/String.__eq i32.eqz @@ -8620,6 +9105,48 @@ call $~lib/builtins/abort unreachable end + f64.const 1.1e+128 + call $~lib/util/number/dtoa + local.tee $127 + i32.const 6648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 302 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1e-64 + call $~lib/util/number/dtoa + local.tee $128 + i32.const 6680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 303 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 0.000035689 + call $~lib/util/number/dtoa + local.tee $129 + i32.const 6712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 304 + i32.const 0 + call $~lib/builtins/abort + unreachable + end global.get $std/string/str call $~lib/rt/pure/__release local.get $5 @@ -8666,18 +9193,16 @@ call $~lib/rt/pure/__release local.get $26 call $~lib/rt/pure/__release - local.get $28 - call $~lib/rt/pure/__release local.get $29 call $~lib/rt/pure/__release - local.get $27 + local.get $30 + call $~lib/rt/pure/__release + local.get $28 call $~lib/rt/pure/__release local.get $4 call $~lib/rt/pure/__release local.get $3 call $~lib/rt/pure/__release - local.get $30 - call $~lib/rt/pure/__release local.get $31 call $~lib/rt/pure/__release local.get $32 @@ -8698,14 +9223,14 @@ call $~lib/rt/pure/__release local.get $40 call $~lib/rt/pure/__release + local.get $41 + call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $2 call $~lib/rt/pure/__release - local.get $41 - call $~lib/rt/pure/__release local.get $42 call $~lib/rt/pure/__release local.get $43 @@ -8880,12 +9405,14 @@ call $~lib/rt/pure/__release local.get $128 call $~lib/rt/pure/__release + local.get $129 + call $~lib/rt/pure/__release ) - (func $std/string/getString (; 75 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 77 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $start (; 76 ;) (type $FUNCSIG$v) + (func $start (; 78 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -8895,7 +9422,7 @@ end call $start:std/string ) - (func $~lib/rt/pure/markGray (; 77 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 79 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -8919,7 +9446,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 78 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 80 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -8932,7 +9459,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 79 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 81 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -8966,7 +9493,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 80 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 82 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -8999,9 +9526,9 @@ call $~lib/rt/tlsf/freeBlock end ) - (func $~lib/rt/pure/__visit (; 81 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 83 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) local.get $0 - i32.const 6708 + i32.const 6804 i32.lt_u if return @@ -9109,7 +9636,7 @@ unreachable end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 82 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 84 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -9142,7 +9669,7 @@ end end ) - (func $~lib/rt/__visit_members (; 83 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 85 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) block $block$4$break block $switch$1$default block $switch$1$case$5 @@ -9171,7 +9698,7 @@ call $~lib/rt/pure/__visit end ) - (func $null (; 84 ;) (type $FUNCSIG$v) + (func $null (; 86 ;) (type $FUNCSIG$v) nop ) ) diff --git a/tests/compiler/std/string.ts b/tests/compiler/std/string.ts index 74a0f04e..9c5d76ea 100644 --- a/tests/compiler/std/string.ts +++ b/tests/compiler/std/string.ts @@ -79,6 +79,9 @@ assert(parseInt("0x1g") == 1); // not valid assert(parseInt(" \t\n1") == 1); assert(parseInt(" \t\n0x02") == 2); +assert(I32.parseInt("0x7FFFFFFF") == I32.MAX_VALUE); +assert(I64.parseInt("0x7FFFFFFFFFFFFFFF") == I64.MAX_VALUE); + assert(parseFloat("0") == 0); assert(parseFloat("1") == 1); assert(parseFloat("0.1") == 0.1); diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index c6ef81de..3cc60e73 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -9,13 +9,13 @@ (type $FUNCSIG$viii (func (param i32 i32 i32))) (type $FUNCSIG$iiiiii (func (param i32 i32 i32 i32 i32) (result i32))) (type $FUNCSIG$dii (func (param i32 i32) (result f64))) + (type $FUNCSIG$jii (func (param i32 i32) (result i64))) (type $FUNCSIG$di (func (param i32) (result f64))) (type $FUNCSIG$iiiii (func (param i32 i32 i32 i32) (result i32))) (type $FUNCSIG$ij (func (param i64) (result i32))) (type $FUNCSIG$viji (func (param i32 i64 i32))) (type $FUNCSIG$id (func (param f64) (result i32))) (type $FUNCSIG$iid (func (param i32 f64) (result i32))) - (type $FUNCSIG$jii (func (param i32 i32) (result i64))) (type $FUNCSIG$iijijiji (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $FUNCSIG$i (func (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -66,125 +66,127 @@ (data (i32.const 1224) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\000\00x\001\00g\00") (data (i32.const 1248) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00 \00\t\00\n\001\00") (data (i32.const 1272) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00 \00\t\00\n\000\00x\000\002\00") - (data (i32.const 1304) "&\00\00\00\01\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data (i32.const 1360) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\001\00") - (data (i32.const 1384) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00.\002\005\00") - (data (i32.const 1408) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00.\001\00f\00o\00o\00b\00a\00r\00") - (data (i32.const 1440) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00 \00\t\00\n\00.\001\00") - (data (i32.const 1472) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b\00") - (data (i32.const 1496) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b\00") - (data (i32.const 1520) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00k\00e\00y\001\00") - (data (i32.const 1544) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00k\00e\00y\002\00") - (data (i32.const 1568) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00k\00e\001\00") - (data (i32.const 1592) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00k\00e\002\00") - (data (i32.const 1616) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\001\002\00") - (data (i32.const 1648) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\001\001\00") - (data (i32.const 1680) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00\a40\ed0\cf0\cb0\db0\d80\c80") - (data (i32.const 1712) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00\a60\f00\ce0\aa0\af0\e40\de0") - (data (i32.const 1744) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00D\00\19 f\00h\00u\00a\00s\00c\00a\00i\00l\00") - (data (i32.const 1784) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00D\00\19 \1f\1eu\00a\00s\00c\00a\00i\00l\00") - (data (i32.const 1824) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a\00") - (data (i32.const 1848) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00a\00") - (data (i32.const 1872) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 1920) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00a\00a\00a\00") - (data (i32.const 1944) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00a\00b\00a\00b\00a\00b\00a\00b\00") - (data (i32.const 1976) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00a\00a\00a\00a\00a\00") - (data (i32.const 2008) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\00a\00a\00a\00a\00a\00a\00") - (data (i32.const 2040) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\00a\00a\00a\00a\00a\00a\00a\00") - (data (i32.const 2072) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00") - (data (i32.const 2120) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00n\00") - (data (i32.const 2144) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00j\00k\00l\00m\00n\00") - (data (i32.const 2176) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00c\00d\00e\00f\00g\00") - (data (i32.const 2208) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00d\00e\00f\00g\00h\00") - (data (i32.const 2240) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00") - (data (i32.const 2288) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 2336) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") - (data (i32.const 2448) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00a\00,\00b\00,\00c\00") - (data (i32.const 2480) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00.\00") - (data (i32.const 2504) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00c\00") - (data (i32.const 2528) "\90\01\00\00\01\00\00\00\00\00\00\00\90\01\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") - (data (i32.const 2944) "\10\00\00\00\01\00\00\00\05\00\00\00\10\00\00\00\f0\t\00\00\f0\t\00\00\90\01\00\00d\00\00\00") - (data (i32.const 2976) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\008\00") - (data (i32.const 3000) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00-\001\000\000\000\00") - (data (i32.const 3032) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\001\002\003\004\00") - (data (i32.const 3056) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\002\003\004\005\00") - (data (i32.const 3088) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\002\003\004\005\006\00") - (data (i32.const 3120) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\001\001\001\001\001\001\00") - (data (i32.const 3152) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\002\003\004\005\006\007\00") - (data (i32.const 3184) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\006\00") - (data (i32.const 3224) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\007\00") - (data (i32.const 3264) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00-\002\001\004\007\004\008\003\006\004\008\00") - (data (i32.const 3304) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00-\001\00") - (data (i32.const 3328) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\001\000\000\000\00") - (data (i32.const 3352) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\002\001\004\007\004\008\003\006\004\008\00") - (data (i32.const 3392) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\004\002\009\004\009\006\007\002\009\005\00") - (data (i32.const 3432) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\009\009\009\009\009\009\009\009\00") - (data (i32.const 3464) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\000\000\000\000\000\000\000\000\00") - (data (i32.const 3504) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 3544) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 3584) "\1e\00\00\00\01\00\00\00\01\00\00\00\1e\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 3632) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 3680) "\"\00\00\00\01\00\00\00\01\00\00\00\"\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 3736) "(\00\00\00\01\00\00\00\01\00\00\00(\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 3792) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00-\001\002\003\004\00") - (data (i32.const 3824) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00-\004\002\009\004\009\006\007\002\009\005\00") - (data (i32.const 3864) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00-\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 3904) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 3952) " \00\00\00\01\00\00\00\01\00\00\00 \00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 4000) "$\00\00\00\01\00\00\00\01\00\00\00$\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 4056) "&\00\00\00\01\00\00\00\01\00\00\00&\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 4112) "(\00\00\00\01\00\00\00\01\00\00\00(\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 4168) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000\00") - (data (i32.const 4192) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00") - (data (i32.const 4216) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 4256) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 4288) "\b8\02\00\00\01\00\00\00\00\00\00\00\b8\02\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\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 (; 45 ;) (type $FUNCSIG$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.get $0 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + i32.eqz + if + f64.const nan:0x8000000000000 + i32.trunc_f64_s + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $0 + local.set $4 + local.get $4 + i32.load16_u + local.set $5 + i32.const 1 + local.set $6 + block $break|0 + loop $continue|0 + local.get $5 + call $~lib/util/string/isWhiteSpaceOrLineTerminator + i32.eqz + br_if $break|0 + local.get $4 + i32.const 2 + i32.add + local.tee $4 + i32.load16_u + local.set $5 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $continue|0 + end + unreachable + end + local.get $5 + i32.const 45 + i32.eq + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz + if + f64.const nan:0x8000000000000 + i32.trunc_f64_s + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $4 + i32.const 2 + i32.add + local.tee $4 + i32.load16_u + local.set $5 + i32.const -1 + local.set $6 + else + local.get $5 + i32.const 43 + i32.eq + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz + if + f64.const nan:0x8000000000000 + i32.trunc_f64_s + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $4 + i32.const 2 + i32.add + local.tee $4 + i32.load16_u + local.set $5 + end + end + local.get $1 + i32.eqz + if + local.get $5 + i32.const 48 + i32.eq + if (result i32) + local.get $2 + i32.const 2 + i32.gt_s + else + i32.const 0 + end + if + block $break|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $4 + i32.const 2 + i32.add + i32.load16_u + local.set $3 + local.get $3 + i32.const 66 + i32.eq + br_if $case0|1 + local.get $3 + i32.const 98 + i32.eq + br_if $case1|1 + local.get $3 + i32.const 79 + i32.eq + br_if $case2|1 + local.get $3 + i32.const 111 + i32.eq + br_if $case3|1 + local.get $3 + i32.const 88 + i32.eq + br_if $case4|1 + local.get $3 + i32.const 120 + i32.eq + br_if $case5|1 + br $case6|1 + end + end + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + local.set $1 + br $break|1 + end + end + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + local.set $1 + br $break|1 + end + end + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + local.set $1 + br $break|1 + end + i32.const 10 + local.set $1 + end + else + i32.const 10 + local.set $1 + end + else + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + f64.const nan:0x8000000000000 + i32.trunc_f64_s + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return + end + end + i32.const 0 + local.set $7 + block $break|2 + loop $continue|2 + local.get $2 + local.tee $3 + i32.const 1 + i32.sub + local.set $2 + local.get $3 + i32.eqz + br_if $break|2 + local.get $4 + i32.load16_u + local.set $5 + local.get $5 + i32.const 48 + i32.ge_s + if (result i32) + local.get $5 + i32.const 57 + i32.le_s + else + i32.const 0 + end + if + local.get $5 + i32.const 48 + i32.sub + local.set $5 + else + local.get $5 + i32.const 65 + i32.ge_s + if (result i32) + local.get $5 + i32.const 90 + i32.le_s + else + i32.const 0 + end + if + local.get $5 + i32.const 65 + i32.const 10 + i32.sub + i32.sub + local.set $5 + else + local.get $5 + i32.const 97 + i32.ge_s + if (result i32) + local.get $5 + i32.const 122 + i32.le_s + else + i32.const 0 + end + if + local.get $5 + i32.const 97 + i32.const 10 + i32.sub + i32.sub + local.set $5 + else + br $break|2 + end + end + end + local.get $5 + local.get $1 + i32.ge_s + if + br $break|2 + end + local.get $7 + local.get $1 + i32.mul + local.get $5 + i32.add + local.set $7 + local.get $4 + i32.const 2 + i32.add + local.set $4 + br $continue|2 + end + unreachable + end + local.get $6 + local.get $7 + i32.mul + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/number/I32.parseInt (; 46 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $0 + local.get $1 + call $~lib/util/string/strtol + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/util/string/strtol (; 47 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i64) + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $0 + call $~lib/string/String#get:length + local.set $2 + local.get $2 + i32.eqz + if + f64.const nan:0x8000000000000 + i64.trunc_f64_s + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $0 + local.set $4 + local.get $4 + i32.load16_u + local.set $5 + i64.const 1 + local.set $6 + block $break|0 + loop $continue|0 + local.get $5 + call $~lib/util/string/isWhiteSpaceOrLineTerminator + i32.eqz + br_if $break|0 + local.get $4 + i32.const 2 + i32.add + local.tee $4 + i32.load16_u + local.set $5 + local.get $2 + i32.const 1 + i32.sub + local.set $2 + br $continue|0 + end + unreachable + end + local.get $5 + i32.const 45 + i32.eq + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz + if + f64.const nan:0x8000000000000 + i64.trunc_f64_s + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $4 + i32.const 2 + i32.add + local.tee $4 + i32.load16_u + local.set $5 + i64.const -1 + local.set $6 + else + local.get $5 + i32.const 43 + i32.eq + if + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.eqz + if + f64.const nan:0x8000000000000 + i64.trunc_f64_s + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return + end + local.get $4 + i32.const 2 + i32.add + local.tee $4 + i32.load16_u + local.set $5 + end + end + local.get $1 + i32.eqz + if + local.get $5 + i32.const 48 + i32.eq + if (result i32) + local.get $2 + i32.const 2 + i32.gt_s + else + i32.const 0 + end + if + block $break|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $4 + i32.const 2 + i32.add + i32.load16_u + local.set $7 + local.get $7 + i32.const 66 + i32.eq + br_if $case0|1 + local.get $7 + i32.const 98 + i32.eq + br_if $case1|1 + local.get $7 + i32.const 79 + i32.eq + br_if $case2|1 + local.get $7 + i32.const 111 + i32.eq + br_if $case3|1 + local.get $7 + i32.const 88 + i32.eq + br_if $case4|1 + local.get $7 + i32.const 120 + i32.eq + br_if $case5|1 + br $case6|1 + end + end + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 2 + local.set $1 + br $break|1 + end + end + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 8 + local.set $1 + br $break|1 + end + end + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $2 + i32.const 2 + i32.sub + local.set $2 + i32.const 16 + local.set $1 + br $break|1 + end + i32.const 10 + local.set $1 + end + else + i32.const 10 + local.set $1 + end + else + local.get $1 + i32.const 2 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $1 + i32.const 36 + i32.gt_s + end + if + f64.const nan:0x8000000000000 + i64.trunc_f64_s + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + return + end + end + i64.const 0 + local.set $8 + block $break|2 + loop $continue|2 + local.get $2 + local.tee $7 + i32.const 1 + i32.sub + local.set $2 + local.get $7 + i32.eqz + br_if $break|2 + local.get $4 + i32.load16_u + local.set $5 + local.get $5 + i32.const 48 + i32.ge_s + if (result i32) + local.get $5 + i32.const 57 + i32.le_s + else + i32.const 0 + end + if + local.get $5 + i32.const 48 + i32.sub + local.set $5 + else + local.get $5 + i32.const 65 + i32.ge_s + if (result i32) + local.get $5 + i32.const 90 + i32.le_s + else + i32.const 0 + end + if + local.get $5 + i32.const 65 + i32.const 10 + i32.sub + i32.sub + local.set $5 + else + local.get $5 + i32.const 97 + i32.ge_s + if (result i32) + local.get $5 + i32.const 122 + i32.le_s + else + i32.const 0 + end + if + local.get $5 + i32.const 97 + i32.const 10 + i32.sub + i32.sub + local.set $5 + else + br $break|2 + end + end + end + local.get $5 + local.get $1 + i32.ge_s + if + br $break|2 + end + local.get $8 + local.get $1 + i64.extend_i32_s + i64.mul + local.get $5 + i64.extend_i32_s + i64.add + local.set $8 + local.get $4 + i32.const 2 + i32.add + local.set $4 + br $continue|2 + end + unreachable + end + local.get $6 + local.get $8 + i64.mul + local.set $3 + local.get $0 + call $~lib/rt/pure/__release + local.get $3 + ) + (func $~lib/number/I64.parseInt (; 48 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (local $2 i64) + local.get $0 + call $~lib/rt/pure/__retain + drop + local.get $0 + local.get $1 + call $~lib/util/string/strtol + local.set $2 + local.get $0 + call $~lib/rt/pure/__release + local.get $2 + ) + (func $~lib/util/string/strtod (; 49 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 i32) (local $2 f64) (local $3 i32) @@ -4465,6 +5141,8 @@ local.get $3 i32.load16_u local.set $4 + f64.const 1 + local.set $5 block $break|0 loop $continue|0 local.get $4 @@ -4534,11 +5212,6 @@ local.tee $3 i32.load16_u local.set $4 - f64.const 1 - local.set $5 - else - f64.const 1 - local.set $5 end end f64.const 0 @@ -4594,8 +5267,8 @@ i32.eqz if i32.const 0 - i32.const 1320 - i32.const 180 + i32.const 1416 + i32.const 173 i32.const 10 call $~lib/builtins/abort unreachable @@ -4665,7 +5338,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/parseFloat (; 46 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) + (func $~lib/string/parseFloat (; 50 ;) (type $FUNCSIG$di) (param $0 i32) (result f64) (local $1 f64) local.get $0 call $~lib/rt/pure/__retain @@ -4677,7 +5350,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/string/String#concat (; 47 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4753,7 +5426,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 48 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4776,7 +5449,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__ne (; 49 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4795,7 +5468,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__gt (; 50 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gt (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4885,7 +5558,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__lt (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lt (; 55 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4975,7 +5648,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__gte (; 52 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__gte (; 56 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4994,7 +5667,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__lte (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__lte (; 57 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -5013,7 +5686,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String#repeat (; 54 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#repeat (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -5046,7 +5719,7 @@ i64.gt_u end if - i32.const 1888 + i32.const 1984 i32.const 456 i32.const 335 i32.const 6 @@ -5093,7 +5766,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#slice (; 55 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#slice (; 59 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5182,7 +5855,7 @@ local.get $6 call $~lib/rt/pure/__retain ) - (func $~lib/rt/__allocArray (; 56 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 60 ;) (type $FUNCSIG$iiiii) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -5220,7 +5893,7 @@ end local.get $4 ) - (func $~lib/rt/tlsf/reallocateBlock (; 57 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 61 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5351,7 +6024,7 @@ call $~lib/rt/tlsf/insertBlock local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 58 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__realloc (; 62 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) global.get $~lib/rt/tlsf/ROOT i32.eqz if @@ -5391,7 +6064,7 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.fill (; 59 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 63 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5655,7 +6328,7 @@ end end ) - (func $~lib/array/ensureSize (; 60 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureSize (; 64 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5675,8 +6348,8 @@ i32.shr_u i32.gt_u if - i32.const 1888 - i32.const 2304 + i32.const 1984 + i32.const 2400 i32.const 14 i32.const 47 call $~lib/builtins/abort @@ -5718,7 +6391,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array<~lib/string/String>#push (; 61 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#push (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5754,7 +6427,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/string/String#split (; 62 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split (; 66 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6073,11 +6746,11 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 63 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 67 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 64 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 68 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -6087,14 +6760,14 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#__get (; 65 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 69 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 i32.ge_u if - i32.const 2352 - i32.const 2304 + i32.const 2448 + i32.const 2400 i32.const 106 i32.const 45 call $~lib/builtins/abort @@ -6108,7 +6781,7 @@ i32.ge_u if i32.const 232 - i32.const 2304 + i32.const 2400 i32.const 109 i32.const 61 call $~lib/builtins/abort @@ -6118,7 +6791,7 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#__unchecked_get ) - (func $~lib/util/number/decimalCount32 (; 66 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 70 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -6184,7 +6857,7 @@ end unreachable ) - (func $~lib/util/number/utoa32_lut (; 67 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 71 ;) (type $FUNCSIG$viii) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6192,7 +6865,7 @@ (local $7 i32) (local $8 i64) (local $9 i64) - i32.const 2960 + i32.const 3056 i32.load offset=4 local.set $3 block $break|0 @@ -6326,7 +6999,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 68 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 72 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6381,7 +7054,7 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/utoa32 (; 69 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 73 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6416,7 +7089,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/decimalCount64 (; 70 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 74 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -6482,7 +7155,7 @@ end unreachable ) - (func $~lib/util/number/utoa64_lut (; 71 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 75 ;) (type $FUNCSIG$viji) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -6494,7 +7167,7 @@ (local $11 i32) (local $12 i64) (local $13 i64) - i32.const 2960 + i32.const 3056 i32.load offset=4 local.set $3 block $break|0 @@ -6609,7 +7282,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 72 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 76 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6674,7 +7347,7 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa64 (; 73 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 77 ;) (type $FUNCSIG$ij) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6761,19 +7434,19 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/number/isFinite (; 74 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/isFinite (; 78 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/number/isNaN (; 75 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/number/isNaN (; 79 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) local.get $0 local.get $0 f64.ne ) - (func $~lib/array/Array#__unchecked_get (; 76 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 80 ;) (type $FUNCSIG$jii) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -6782,7 +7455,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 77 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 81 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -6791,7 +7464,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 78 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 82 ;) (type $FUNCSIG$iijijiji) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -6846,7 +7519,7 @@ local.set $14 local.get $6 local.set $15 - i32.const 5328 + i32.const 5424 i32.load offset=4 local.set $16 block $break|0 @@ -7293,7 +7966,7 @@ end unreachable ) - (func $~lib/util/number/prettify (; 79 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 83 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7612,7 +8285,7 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (; 80 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 84 ;) (type $FUNCSIG$iid) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7777,11 +8450,11 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 5016 + i32.const 5112 local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_frc_pow - i32.const 5240 + i32.const 5336 local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_exp_pow @@ -8034,7 +8707,7 @@ local.get $2 i32.add ) - (func $~lib/string/String#substring (; 81 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 85 ;) (type $FUNCSIG$iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8153,7 +8826,7 @@ local.get $10 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/dtoa (; 82 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 86 ;) (type $FUNCSIG$id) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -8161,7 +8834,7 @@ f64.const 0 f64.eq if - i32.const 4184 + i32.const 4280 call $~lib/rt/pure/__retain return end @@ -8172,12 +8845,12 @@ local.get $0 call $~lib/number/isNaN if - i32.const 4208 + i32.const 4304 call $~lib/rt/pure/__retain return end - i32.const 4232 - i32.const 4272 + i32.const 4328 + i32.const 4368 local.get $0 f64.const 0 f64.lt @@ -8212,7 +8885,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $start:std/string (; 83 ;) (type $FUNCSIG$v) + (func $start:std/string (; 87 ;) (type $FUNCSIG$v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9267,6 +9940,34 @@ call $~lib/builtins/abort unreachable end + i32.const 1320 + i32.const 0 + call $~lib/number/I32.parseInt + global.get $~lib/number/I32.MAX_VALUE + i32.eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 82 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1360 + i32.const 0 + call $~lib/number/I64.parseInt + global.get $~lib/number/I64.MAX_VALUE + i64.eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 83 + i32.const 0 + call $~lib/builtins/abort + unreachable + end i32.const 1040 call $~lib/string/parseFloat f64.const 0 @@ -9275,7 +9976,7 @@ if i32.const 0 i32.const 72 - i32.const 82 + i32.const 85 i32.const 0 call $~lib/builtins/abort unreachable @@ -9285,45 +9986,6 @@ f64.const 1 f64.eq i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 83 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1376 - call $~lib/string/parseFloat - f64.const 0.1 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 84 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1400 - call $~lib/string/parseFloat - f64.const 0.25 - f64.eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 85 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1424 - call $~lib/string/parseFloat - f64.const 0.1 - f64.eq - i32.eqz if i32.const 0 i32.const 72 @@ -9332,11 +9994,24 @@ call $~lib/builtins/abort unreachable end - i32.const 1456 + i32.const 1472 call $~lib/string/parseFloat f64.const 0.1 f64.eq i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 87 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1496 + call $~lib/string/parseFloat + f64.const 0.25 + f64.eq + i32.eqz if i32.const 0 i32.const 72 @@ -9345,20 +10020,46 @@ call $~lib/builtins/abort unreachable end + i32.const 1520 + call $~lib/string/parseFloat + f64.const 0.1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 89 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1552 + call $~lib/string/parseFloat + f64.const 0.1 + f64.eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 91 + i32.const 0 + call $~lib/builtins/abort + unreachable + end i32.const 408 - i32.const 1488 + i32.const 1584 call $~lib/string/String.__concat local.tee $22 call $~lib/rt/pure/__retain local.set $23 local.get $23 - i32.const 1512 + i32.const 1608 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 92 + i32.const 95 i32.const 2 call $~lib/builtins/abort unreachable @@ -9370,7 +10071,7 @@ if i32.const 0 i32.const 72 - i32.const 93 + i32.const 96 i32.const 2 call $~lib/builtins/abort unreachable @@ -9383,42 +10084,6 @@ i32.const 120 call $~lib/string/String.__eq i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 95 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 120 - global.get $std/string/nullStr - call $~lib/string/String.__ne - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 96 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - global.get $std/string/nullStr - i32.const 120 - call $~lib/string/String.__ne - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 97 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 408 - i32.const 1488 - call $~lib/string/String.__ne - i32.eqz if i32.const 0 i32.const 72 @@ -9427,9 +10092,9 @@ call $~lib/builtins/abort unreachable end - i32.const 408 - i32.const 408 - call $~lib/string/String.__eq + i32.const 120 + global.get $std/string/nullStr + call $~lib/string/String.__ne i32.eqz if i32.const 0 @@ -9439,8 +10104,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1536 - i32.const 1560 + global.get $std/string/nullStr + i32.const 120 call $~lib/string/String.__ne i32.eqz if @@ -9451,9 +10116,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1536 - i32.const 1536 - call $~lib/string/String.__eq + i32.const 408 + i32.const 1584 + call $~lib/string/String.__ne i32.eqz if i32.const 0 @@ -9463,9 +10128,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1584 - i32.const 1608 - call $~lib/string/String.__ne + i32.const 408 + i32.const 408 + call $~lib/string/String.__eq i32.eqz if i32.const 0 @@ -9476,7 +10141,7 @@ unreachable end i32.const 1632 - i32.const 1664 + i32.const 1656 call $~lib/string/String.__ne i32.eqz if @@ -9487,8 +10152,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1696 - i32.const 1696 + i32.const 1632 + i32.const 1632 call $~lib/string/String.__eq i32.eqz if @@ -9499,8 +10164,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1696 - i32.const 1728 + i32.const 1680 + i32.const 1704 call $~lib/string/String.__ne i32.eqz if @@ -9511,8 +10176,8 @@ call $~lib/builtins/abort unreachable end + i32.const 1728 i32.const 1760 - i32.const 1800 call $~lib/string/String.__ne i32.eqz if @@ -9523,9 +10188,21 @@ call $~lib/builtins/abort unreachable end - i32.const 1488 - i32.const 408 - call $~lib/string/String.__gt + i32.const 1792 + i32.const 1792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 107 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1792 + i32.const 1824 + call $~lib/string/String.__ne i32.eqz if i32.const 0 @@ -9535,9 +10212,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1840 - i32.const 408 - call $~lib/string/String.__gt + i32.const 1856 + i32.const 1896 + call $~lib/string/String.__ne i32.eqz if i32.const 0 @@ -9547,20 +10224,8 @@ call $~lib/builtins/abort unreachable end - i32.const 1840 - i32.const 1864 - call $~lib/string/String.__gte - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 110 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1840 - i32.const 1512 + i32.const 1584 + i32.const 408 call $~lib/string/String.__gt i32.eqz if @@ -9571,10 +10236,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1840 - i32.const 1512 - call $~lib/string/String.__lt - i32.eqz + i32.const 1936 + i32.const 408 + call $~lib/string/String.__gt i32.eqz if i32.const 0 @@ -9584,10 +10248,21 @@ call $~lib/builtins/abort unreachable end - i32.const 1488 - global.get $std/string/nullStr - call $~lib/string/String.__lt + i32.const 1936 + i32.const 1960 + call $~lib/string/String.__gte i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 113 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 1936 + i32.const 1608 + call $~lib/string/String.__gt i32.eqz if i32.const 0 @@ -9597,8 +10272,8 @@ call $~lib/builtins/abort unreachable end - global.get $std/string/nullStr - i32.const 1488 + i32.const 1936 + i32.const 1608 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -9610,9 +10285,10 @@ call $~lib/builtins/abort unreachable end - i32.const 680 - i32.const 120 - call $~lib/string/String.__gt + i32.const 1584 + global.get $std/string/nullStr + call $~lib/string/String.__lt + i32.eqz i32.eqz if i32.const 0 @@ -9622,10 +10298,11 @@ call $~lib/builtins/abort unreachable end - i32.const 120 - i32.const 680 + global.get $std/string/nullStr + i32.const 1584 call $~lib/string/String.__lt i32.eqz + i32.eqz if i32.const 0 i32.const 72 @@ -9636,12 +10313,36 @@ end i32.const 680 i32.const 120 + call $~lib/string/String.__gt + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 120 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 120 + i32.const 680 + call $~lib/string/String.__lt + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 121 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 680 + i32.const 120 call $~lib/string/String.__gte i32.eqz if i32.const 0 i32.const 72 - i32.const 119 + i32.const 122 i32.const 0 call $~lib/builtins/abort unreachable @@ -9650,45 +10351,6 @@ i32.const 680 call $~lib/string/String.__lte i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 120 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 680 - i32.const 120 - call $~lib/string/String.__lt - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 121 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 120 - i32.const 680 - call $~lib/string/String.__gt - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 122 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 120 - i32.const 120 - call $~lib/string/String.__lt - i32.eqz - i32.eqz if i32.const 0 i32.const 72 @@ -9697,9 +10359,9 @@ call $~lib/builtins/abort unreachable end + i32.const 680 i32.const 120 - i32.const 120 - call $~lib/string/String.__gt + call $~lib/string/String.__lt i32.eqz i32.eqz if @@ -9711,8 +10373,9 @@ unreachable end i32.const 120 - i32.const 120 - call $~lib/string/String.__gte + i32.const 680 + call $~lib/string/String.__gt + i32.eqz i32.eqz if i32.const 0 @@ -9724,7 +10387,8 @@ end i32.const 120 i32.const 120 - call $~lib/string/String.__lte + call $~lib/string/String.__lt + i32.eqz i32.eqz if i32.const 0 @@ -9734,6 +10398,43 @@ call $~lib/builtins/abort unreachable end + i32.const 120 + i32.const 120 + call $~lib/string/String.__gt + i32.eqz + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 127 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 120 + i32.const 120 + call $~lib/string/String.__gte + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 128 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 120 + i32.const 120 + call $~lib/string/String.__lte + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 129 + i32.const 0 + call $~lib/builtins/abort + unreachable + end i32.const 65377 call $~lib/string/String.fromCodePoint local.set $23 @@ -9754,7 +10455,7 @@ if i32.const 0 i32.const 72 - i32.const 131 + i32.const 134 i32.const 2 call $~lib/builtins/abort unreachable @@ -9777,7 +10478,7 @@ if i32.const 0 i32.const 72 - i32.const 134 + i32.const 137 i32.const 0 call $~lib/builtins/abort unreachable @@ -9792,7 +10493,7 @@ if i32.const 0 i32.const 72 - i32.const 136 + i32.const 139 i32.const 0 call $~lib/builtins/abort unreachable @@ -9807,7 +10508,7 @@ if i32.const 0 i32.const 72 - i32.const 137 + i32.const 140 i32.const 0 call $~lib/builtins/abort unreachable @@ -9822,7 +10523,7 @@ if i32.const 0 i32.const 72 - i32.const 138 + i32.const 141 i32.const 0 call $~lib/builtins/abort unreachable @@ -9831,54 +10532,9 @@ i32.const 2 call $~lib/string/String#repeat local.tee $22 - i32.const 1864 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 139 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 408 - i32.const 3 - call $~lib/string/String#repeat - local.tee $23 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 140 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1512 - i32.const 4 - call $~lib/string/String#repeat - local.tee $27 i32.const 1960 call $~lib/string/String.__eq i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 141 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 408 - i32.const 5 - call $~lib/string/String#repeat - local.tee $28 - i32.const 1992 - call $~lib/string/String.__eq - i32.eqz if i32.const 0 i32.const 72 @@ -9888,10 +10544,10 @@ unreachable end i32.const 408 - i32.const 6 + i32.const 3 call $~lib/string/String#repeat - local.tee $29 - i32.const 2024 + local.tee $23 + i32.const 2032 call $~lib/string/String.__eq i32.eqz if @@ -9902,10 +10558,10 @@ call $~lib/builtins/abort unreachable end - i32.const 408 - i32.const 7 + i32.const 1608 + i32.const 4 call $~lib/string/String#repeat - local.tee $30 + local.tee $27 i32.const 2056 call $~lib/string/String.__eq i32.eqz @@ -9917,7 +10573,52 @@ call $~lib/builtins/abort unreachable end + i32.const 408 + i32.const 5 + call $~lib/string/String#repeat + local.tee $28 i32.const 2088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 145 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 408 + i32.const 6 + call $~lib/string/String#repeat + local.tee $29 + i32.const 2120 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 146 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 408 + i32.const 7 + call $~lib/string/String#repeat + local.tee $30 + i32.const 2152 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 147 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const 2184 local.tee $31 global.get $std/string/str local.tee $32 @@ -9936,55 +10637,7 @@ global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice local.tee $31 - i32.const 2088 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 148 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - global.get $std/string/str - i32.const -1 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#slice - local.tee $32 - i32.const 2136 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 149 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - global.get $std/string/str - i32.const -5 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#slice - local.tee $33 - i32.const 2160 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 150 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - global.get $std/string/str - i32.const 2 - i32.const 7 - call $~lib/string/String#slice - local.tee $34 - i32.const 2192 + i32.const 2184 call $~lib/string/String.__eq i32.eqz if @@ -9996,11 +10649,11 @@ unreachable end global.get $std/string/str - i32.const -11 - i32.const -6 + i32.const -1 + global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#slice - local.tee $35 - i32.const 2224 + local.tee $32 + i32.const 2232 call $~lib/string/String.__eq i32.eqz if @@ -10012,6 +10665,54 @@ unreachable end global.get $std/string/str + i32.const -5 + global.get $~lib/builtins/i32.MAX_VALUE + call $~lib/string/String#slice + local.tee $33 + i32.const 2256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 153 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + i32.const 2 + i32.const 7 + call $~lib/string/String#slice + local.tee $34 + i32.const 2288 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 154 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str + i32.const -11 + i32.const -6 + call $~lib/string/String#slice + local.tee $35 + i32.const 2320 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 155 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + global.get $std/string/str i32.const 4 i32.const 3 call $~lib/string/String#slice @@ -10022,7 +10723,7 @@ if i32.const 0 i32.const 72 - i32.const 153 + i32.const 156 i32.const 0 call $~lib/builtins/abort unreachable @@ -10032,13 +10733,13 @@ i32.const -1 call $~lib/string/String#slice local.tee $37 - i32.const 2256 + i32.const 2352 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 154 + i32.const 157 i32.const 0 call $~lib/builtins/abort unreachable @@ -10078,7 +10779,7 @@ if i32.const 0 i32.const 72 - i32.const 160 + i32.const 163 i32.const 2 call $~lib/builtins/abort unreachable @@ -10100,7 +10801,7 @@ if i32.const 0 i32.const 72 - i32.const 162 + i32.const 165 i32.const 2 call $~lib/builtins/abort unreachable @@ -10138,13 +10839,13 @@ if i32.const 0 i32.const 72 - i32.const 164 + i32.const 167 i32.const 2 call $~lib/builtins/abort unreachable end - i32.const 2464 - i32.const 2496 + i32.const 2560 + i32.const 2592 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split local.set $40 @@ -10161,7 +10862,7 @@ i32.const 0 call $~lib/array/Array<~lib/string/String>#__get local.tee $40 - i32.const 2464 + i32.const 2560 call $~lib/string/String.__eq local.set $39 local.get $40 @@ -10176,12 +10877,12 @@ if i32.const 0 i32.const 72 - i32.const 166 + i32.const 169 i32.const 2 call $~lib/builtins/abort unreachable end - i32.const 2464 + i32.const 2560 i32.const 920 global.get $~lib/builtins/i32.MAX_VALUE call $~lib/string/String#split @@ -10215,7 +10916,7 @@ i32.const 1 call $~lib/array/Array<~lib/string/String>#__get local.tee $39 - i32.const 1488 + i32.const 1584 call $~lib/string/String.__eq local.set $40 local.get $39 @@ -10231,7 +10932,7 @@ i32.const 2 call $~lib/array/Array<~lib/string/String>#__get local.tee $39 - i32.const 2520 + i32.const 2616 call $~lib/string/String.__eq local.set $40 local.get $39 @@ -10246,7 +10947,7 @@ if i32.const 0 i32.const 72 - i32.const 168 + i32.const 171 i32.const 2 call $~lib/builtins/abort unreachable @@ -10262,7 +10963,7 @@ if i32.const 0 i32.const 72 - i32.const 194 + i32.const 197 i32.const 0 call $~lib/builtins/abort unreachable @@ -10276,7 +10977,7 @@ if i32.const 0 i32.const 72 - i32.const 195 + i32.const 198 i32.const 0 call $~lib/builtins/abort unreachable @@ -10284,13 +10985,13 @@ i32.const 8 call $~lib/util/number/itoa32 local.tee $40 - i32.const 2992 + i32.const 3088 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 196 + i32.const 199 i32.const 0 call $~lib/builtins/abort unreachable @@ -10304,7 +11005,7 @@ if i32.const 0 i32.const 72 - i32.const 197 + i32.const 200 i32.const 0 call $~lib/builtins/abort unreachable @@ -10312,49 +11013,7 @@ i32.const -1000 call $~lib/util/number/itoa32 local.tee $42 - i32.const 3016 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 198 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 1234 - call $~lib/util/number/itoa32 - local.tee $43 - i32.const 3048 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 199 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 12345 - call $~lib/util/number/itoa32 - local.tee $44 - i32.const 3072 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 200 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i32.const 123456 - call $~lib/util/number/itoa32 - local.tee $45 - i32.const 3104 + i32.const 3112 call $~lib/string/String.__eq i32.eqz if @@ -10365,10 +11024,10 @@ call $~lib/builtins/abort unreachable end - i32.const 1111111 + i32.const 1234 call $~lib/util/number/itoa32 - local.tee $46 - i32.const 3136 + local.tee $43 + i32.const 3144 call $~lib/string/String.__eq i32.eqz if @@ -10379,9 +11038,9 @@ call $~lib/builtins/abort unreachable end - i32.const 1234567 + i32.const 12345 call $~lib/util/number/itoa32 - local.tee $47 + local.tee $44 i32.const 3168 call $~lib/string/String.__eq i32.eqz @@ -10393,9 +11052,9 @@ call $~lib/builtins/abort unreachable end - i32.const 2147483646 + i32.const 123456 call $~lib/util/number/itoa32 - local.tee $48 + local.tee $45 i32.const 3200 call $~lib/string/String.__eq i32.eqz @@ -10407,10 +11066,10 @@ call $~lib/builtins/abort unreachable end - i32.const 2147483647 + i32.const 1111111 call $~lib/util/number/itoa32 - local.tee $49 - i32.const 3240 + local.tee $46 + i32.const 3232 call $~lib/string/String.__eq i32.eqz if @@ -10421,10 +11080,10 @@ call $~lib/builtins/abort unreachable end - i32.const -2147483648 + i32.const 1234567 call $~lib/util/number/itoa32 - local.tee $50 - i32.const 3280 + local.tee $47 + i32.const 3264 call $~lib/string/String.__eq i32.eqz if @@ -10435,10 +11094,10 @@ call $~lib/builtins/abort unreachable end - i32.const -1 + i32.const 2147483646 call $~lib/util/number/itoa32 - local.tee $51 - i32.const 3320 + local.tee $48 + i32.const 3296 call $~lib/string/String.__eq i32.eqz if @@ -10449,6 +11108,48 @@ call $~lib/builtins/abort unreachable end + i32.const 2147483647 + call $~lib/util/number/itoa32 + local.tee $49 + i32.const 3336 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 208 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const -2147483648 + call $~lib/util/number/itoa32 + local.tee $50 + i32.const 3376 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 209 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i32.const -1 + call $~lib/util/number/itoa32 + local.tee $51 + i32.const 3416 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 210 + i32.const 0 + call $~lib/builtins/abort + unreachable + end i32.const 0 call $~lib/util/number/utoa32 local.tee $52 @@ -10458,7 +11159,7 @@ if i32.const 0 i32.const 72 - i32.const 209 + i32.const 212 i32.const 0 call $~lib/builtins/abort unreachable @@ -10466,13 +11167,13 @@ i32.const 1000 call $~lib/util/number/utoa32 local.tee $53 - i32.const 3344 + i32.const 3440 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 210 + i32.const 213 i32.const 0 call $~lib/builtins/abort unreachable @@ -10480,13 +11181,13 @@ i32.const 2147483647 call $~lib/util/number/utoa32 local.tee $54 - i32.const 3240 + i32.const 3336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 211 + i32.const 214 i32.const 0 call $~lib/builtins/abort unreachable @@ -10494,13 +11195,13 @@ i32.const -2147483648 call $~lib/util/number/utoa32 local.tee $55 - i32.const 3368 + i32.const 3464 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 212 + i32.const 215 i32.const 0 call $~lib/builtins/abort unreachable @@ -10508,13 +11209,13 @@ global.get $~lib/builtins/u32.MAX_VALUE call $~lib/util/number/utoa32 local.tee $56 - i32.const 3408 + i32.const 3504 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 213 + i32.const 216 i32.const 0 call $~lib/builtins/abort unreachable @@ -10528,7 +11229,7 @@ if i32.const 0 i32.const 72 - i32.const 215 + i32.const 218 i32.const 0 call $~lib/builtins/abort unreachable @@ -10536,49 +11237,7 @@ i64.const 1234 call $~lib/util/number/utoa64 local.tee $58 - i32.const 3048 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 216 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i64.const 99999999 - call $~lib/util/number/utoa64 - local.tee $59 - i32.const 3448 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 217 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i64.const 100000000 - call $~lib/util/number/utoa64 - local.tee $60 - i32.const 3480 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 218 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i64.const 4294967295 - call $~lib/util/number/utoa64 - local.tee $61 - i32.const 3408 + i32.const 3144 call $~lib/string/String.__eq i32.eqz if @@ -10589,10 +11248,10 @@ call $~lib/builtins/abort unreachable end - i64.const 68719476735 + i64.const 99999999 call $~lib/util/number/utoa64 - local.tee $62 - i32.const 3520 + local.tee $59 + i32.const 3544 call $~lib/string/String.__eq i32.eqz if @@ -10603,10 +11262,10 @@ call $~lib/builtins/abort unreachable end - i64.const 868719476735 + i64.const 100000000 call $~lib/util/number/utoa64 - local.tee $63 - i32.const 3560 + local.tee $60 + i32.const 3576 call $~lib/string/String.__eq i32.eqz if @@ -10617,10 +11276,10 @@ call $~lib/builtins/abort unreachable end - i64.const 999868719476735 + i64.const 4294967295 call $~lib/util/number/utoa64 - local.tee $64 - i32.const 3600 + local.tee $61 + i32.const 3504 call $~lib/string/String.__eq i32.eqz if @@ -10631,10 +11290,10 @@ call $~lib/builtins/abort unreachable end - i64.const 9999868719476735 + i64.const 68719476735 call $~lib/util/number/utoa64 - local.tee $65 - i32.const 3648 + local.tee $62 + i32.const 3616 call $~lib/string/String.__eq i32.eqz if @@ -10645,10 +11304,10 @@ call $~lib/builtins/abort unreachable end - i64.const 19999868719476735 + i64.const 868719476735 call $~lib/util/number/utoa64 - local.tee $66 - i32.const 3696 + local.tee $63 + i32.const 3656 call $~lib/string/String.__eq i32.eqz if @@ -10659,10 +11318,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/u64.MAX_VALUE + i64.const 999868719476735 call $~lib/util/number/utoa64 - local.tee $67 - i32.const 3752 + local.tee $64 + i32.const 3696 call $~lib/string/String.__eq i32.eqz if @@ -10673,6 +11332,48 @@ call $~lib/builtins/abort unreachable end + i64.const 9999868719476735 + call $~lib/util/number/utoa64 + local.tee $65 + i32.const 3744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 226 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + i64.const 19999868719476735 + call $~lib/util/number/utoa64 + local.tee $66 + i32.const 3792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 227 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/u64.MAX_VALUE + call $~lib/util/number/utoa64 + local.tee $67 + i32.const 3848 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 228 + i32.const 0 + call $~lib/builtins/abort + unreachable + end i64.const 0 call $~lib/util/number/itoa64 local.tee $68 @@ -10682,7 +11383,7 @@ if i32.const 0 i32.const 72 - i32.const 227 + i32.const 230 i32.const 0 call $~lib/builtins/abort unreachable @@ -10690,49 +11391,7 @@ i64.const -1234 call $~lib/util/number/itoa64 local.tee $69 - i32.const 3808 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 228 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i64.const 4294967295 - call $~lib/util/number/itoa64 - local.tee $70 - i32.const 3408 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 229 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i64.const -4294967295 - call $~lib/util/number/itoa64 - local.tee $71 - i32.const 3840 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 230 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - i64.const 68719476735 - call $~lib/util/number/itoa64 - local.tee $72 - i32.const 3520 + i32.const 3904 call $~lib/string/String.__eq i32.eqz if @@ -10743,10 +11402,10 @@ call $~lib/builtins/abort unreachable end - i64.const -68719476735 + i64.const 4294967295 call $~lib/util/number/itoa64 - local.tee $73 - i32.const 3880 + local.tee $70 + i32.const 3504 call $~lib/string/String.__eq i32.eqz if @@ -10757,10 +11416,10 @@ call $~lib/builtins/abort unreachable end - i64.const -868719476735 + i64.const -4294967295 call $~lib/util/number/itoa64 - local.tee $74 - i32.const 3920 + local.tee $71 + i32.const 3936 call $~lib/string/String.__eq i32.eqz if @@ -10771,10 +11430,10 @@ call $~lib/builtins/abort unreachable end - i64.const -999868719476735 + i64.const 68719476735 call $~lib/util/number/itoa64 - local.tee $75 - i32.const 3968 + local.tee $72 + i32.const 3616 call $~lib/string/String.__eq i32.eqz if @@ -10785,10 +11444,10 @@ call $~lib/builtins/abort unreachable end - i64.const -19999868719476735 + i64.const -68719476735 call $~lib/util/number/itoa64 - local.tee $76 - i32.const 4016 + local.tee $73 + i32.const 3976 call $~lib/string/String.__eq i32.eqz if @@ -10799,10 +11458,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/i64.MAX_VALUE + i64.const -868719476735 call $~lib/util/number/itoa64 - local.tee $77 - i32.const 4072 + local.tee $74 + i32.const 4016 call $~lib/string/String.__eq i32.eqz if @@ -10813,10 +11472,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/i64.MIN_VALUE + i64.const -999868719476735 call $~lib/util/number/itoa64 - local.tee $78 - i32.const 4128 + local.tee $75 + i32.const 4064 call $~lib/string/String.__eq i32.eqz if @@ -10827,10 +11486,38 @@ call $~lib/builtins/abort unreachable end - f64.const 0 - call $~lib/util/number/dtoa - local.tee $79 - i32.const 4184 + i64.const -19999868719476735 + call $~lib/util/number/itoa64 + local.tee $76 + i32.const 4112 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 238 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/i64.MAX_VALUE + call $~lib/util/number/itoa64 + local.tee $77 + i32.const 4168 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 239 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/builtins/i64.MIN_VALUE + call $~lib/util/number/itoa64 + local.tee $78 + i32.const 4224 call $~lib/string/String.__eq i32.eqz if @@ -10841,38 +11528,10 @@ call $~lib/builtins/abort unreachable end - f64.const -0 + f64.const 0 call $~lib/util/number/dtoa - local.tee $80 - i32.const 4184 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 241 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const nan:0x8000000000000 - call $~lib/util/number/dtoa - local.tee $81 - i32.const 4208 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 242 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const inf - call $~lib/util/number/dtoa - local.tee $82 - i32.const 4272 + local.tee $79 + i32.const 4280 call $~lib/string/String.__eq i32.eqz if @@ -10883,11 +11542,10 @@ call $~lib/builtins/abort unreachable end - f64.const inf - f64.neg + f64.const -0 call $~lib/util/number/dtoa - local.tee $83 - i32.const 4232 + local.tee $80 + i32.const 4280 call $~lib/string/String.__eq i32.eqz if @@ -10898,10 +11556,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/f64.EPSILON + f64.const nan:0x8000000000000 call $~lib/util/number/dtoa - local.tee $84 - i32.const 5360 + local.tee $81 + i32.const 4304 call $~lib/string/String.__eq i32.eqz if @@ -10912,11 +11570,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/f64.EPSILON - f64.neg + f64.const inf call $~lib/util/number/dtoa - local.tee $85 - i32.const 5424 + local.tee $82 + i32.const 4368 call $~lib/string/String.__eq i32.eqz if @@ -10927,10 +11584,11 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/f64.MAX_VALUE + f64.const inf + f64.neg call $~lib/util/number/dtoa - local.tee $86 - i32.const 5488 + local.tee $83 + i32.const 4328 call $~lib/string/String.__eq i32.eqz if @@ -10941,11 +11599,10 @@ call $~lib/builtins/abort unreachable end - global.get $~lib/builtins/f64.MAX_VALUE - f64.neg + global.get $~lib/builtins/f64.EPSILON call $~lib/util/number/dtoa - local.tee $87 - i32.const 5552 + local.tee $84 + i32.const 5456 call $~lib/string/String.__eq i32.eqz if @@ -10956,10 +11613,11 @@ call $~lib/builtins/abort unreachable end - f64.const 4185580496821356722454785e274 + global.get $~lib/builtins/f64.EPSILON + f64.neg call $~lib/util/number/dtoa - local.tee $88 - i32.const 5616 + local.tee $85 + i32.const 5520 call $~lib/string/String.__eq i32.eqz if @@ -10970,10 +11628,10 @@ call $~lib/builtins/abort unreachable end - f64.const 2.2250738585072014e-308 + global.get $~lib/builtins/f64.MAX_VALUE call $~lib/util/number/dtoa - local.tee $89 - i32.const 5680 + local.tee $86 + i32.const 5584 call $~lib/string/String.__eq i32.eqz if @@ -10984,10 +11642,39 @@ call $~lib/builtins/abort unreachable end - f64.const 4.940656e-318 + global.get $~lib/builtins/f64.MAX_VALUE + f64.neg call $~lib/util/number/dtoa - local.tee $90 - i32.const 5744 + local.tee $87 + i32.const 5648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 251 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 4185580496821356722454785e274 + call $~lib/util/number/dtoa + local.tee $88 + i32.const 5712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 252 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 2.2250738585072014e-308 + call $~lib/util/number/dtoa + local.tee $89 + i32.const 5776 call $~lib/string/String.__eq i32.eqz if @@ -10998,38 +11685,10 @@ call $~lib/builtins/abort unreachable end - f64.const 9060801153433600 + f64.const 4.940656e-318 call $~lib/util/number/dtoa - local.tee $91 - i32.const 5792 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 254 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 4708356024711512064 - call $~lib/util/number/dtoa - local.tee $92 - i32.const 5848 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 255 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 9409340012568248320 - call $~lib/util/number/dtoa - local.tee $93 - i32.const 5912 + local.tee $90 + i32.const 5840 call $~lib/string/String.__eq i32.eqz if @@ -11040,10 +11699,10 @@ call $~lib/builtins/abort unreachable end - f64.const 5e-324 + f64.const 9060801153433600 call $~lib/util/number/dtoa - local.tee $94 - i32.const 5976 + local.tee $91 + i32.const 5888 call $~lib/string/String.__eq i32.eqz if @@ -11054,52 +11713,52 @@ call $~lib/builtins/abort unreachable end - f64.const 1 + f64.const 4708356024711512064 call $~lib/util/number/dtoa - local.tee $95 + local.tee $92 + i32.const 5944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 258 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 9409340012568248320 + call $~lib/util/number/dtoa + local.tee $93 i32.const 6008 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 263 + i32.const 259 i32.const 0 call $~lib/builtins/abort unreachable end - f64.const 0.1 + f64.const 5e-324 call $~lib/util/number/dtoa - local.tee $96 - i32.const 1376 + local.tee $94 + i32.const 6072 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 72 - i32.const 264 + i32.const 260 i32.const 0 call $~lib/builtins/abort unreachable end - f64.const -1 + f64.const 1 call $~lib/util/number/dtoa - local.tee $97 - i32.const 6032 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 265 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const -0.1 - call $~lib/util/number/dtoa - local.tee $98 - i32.const 6056 + local.tee $95 + i32.const 6104 call $~lib/string/String.__eq i32.eqz if @@ -11110,10 +11769,24 @@ call $~lib/builtins/abort unreachable end - f64.const 1e6 + f64.const 0.1 call $~lib/util/number/dtoa - local.tee $99 - i32.const 6080 + local.tee $96 + i32.const 1472 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 267 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const -1 + call $~lib/util/number/dtoa + local.tee $97 + i32.const 6128 call $~lib/string/String.__eq i32.eqz if @@ -11124,10 +11797,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e-06 + f64.const -0.1 call $~lib/util/number/dtoa - local.tee $100 - i32.const 6120 + local.tee $98 + i32.const 6152 call $~lib/string/String.__eq i32.eqz if @@ -11138,24 +11811,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1e6 + f64.const 1e6 call $~lib/util/number/dtoa - local.tee $101 - i32.const 6152 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 270 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const -1e-06 - call $~lib/util/number/dtoa - local.tee $102 - i32.const 6192 + local.tee $99 + i32.const 6176 call $~lib/string/String.__eq i32.eqz if @@ -11166,10 +11825,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e7 + f64.const 1e-06 call $~lib/util/number/dtoa - local.tee $103 - i32.const 6232 + local.tee $100 + i32.const 6216 call $~lib/string/String.__eq i32.eqz if @@ -11180,10 +11839,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e-07 + f64.const -1e6 call $~lib/util/number/dtoa - local.tee $104 - i32.const 6272 + local.tee $101 + i32.const 6248 call $~lib/string/String.__eq i32.eqz if @@ -11194,10 +11853,24 @@ call $~lib/builtins/abort unreachable end - f64.const 1.e+308 + f64.const -1e-06 call $~lib/util/number/dtoa - local.tee $105 - i32.const 6296 + local.tee $102 + i32.const 6288 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 274 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 1e7 + call $~lib/util/number/dtoa + local.tee $103 + i32.const 6328 call $~lib/string/String.__eq i32.eqz if @@ -11208,10 +11881,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1.e+308 + f64.const 1e-07 call $~lib/util/number/dtoa - local.tee $106 - i32.const 6328 + local.tee $104 + i32.const 6368 call $~lib/string/String.__eq i32.eqz if @@ -11222,24 +11895,10 @@ call $~lib/builtins/abort unreachable end - f64.const inf + f64.const 1.e+308 call $~lib/util/number/dtoa - local.tee $107 - i32.const 4272 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 277 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const -inf - call $~lib/util/number/dtoa - local.tee $108 - i32.const 4232 + local.tee $105 + i32.const 6392 call $~lib/string/String.__eq i32.eqz if @@ -11250,10 +11909,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e-308 + f64.const -1.e+308 call $~lib/util/number/dtoa - local.tee $109 - i32.const 6360 + local.tee $106 + i32.const 6424 call $~lib/string/String.__eq i32.eqz if @@ -11264,10 +11923,10 @@ call $~lib/builtins/abort unreachable end - f64.const -1e-308 + f64.const inf call $~lib/util/number/dtoa - local.tee $110 - i32.const 6392 + local.tee $107 + i32.const 4368 call $~lib/string/String.__eq i32.eqz if @@ -11278,10 +11937,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1e-323 + f64.const -inf call $~lib/util/number/dtoa - local.tee $111 - i32.const 6424 + local.tee $108 + i32.const 4328 call $~lib/string/String.__eq i32.eqz if @@ -11292,9 +11951,9 @@ call $~lib/builtins/abort unreachable end - f64.const -1e-323 + f64.const 1e-308 call $~lib/util/number/dtoa - local.tee $112 + local.tee $109 i32.const 6456 call $~lib/string/String.__eq i32.eqz @@ -11306,10 +11965,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0 + f64.const -1e-308 call $~lib/util/number/dtoa - local.tee $113 - i32.const 4184 + local.tee $110 + i32.const 6488 call $~lib/string/String.__eq i32.eqz if @@ -11320,10 +11979,24 @@ call $~lib/builtins/abort unreachable end - f64.const 4294967272 + f64.const 1e-323 call $~lib/util/number/dtoa - local.tee $114 - i32.const 6488 + local.tee $111 + i32.const 6520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 284 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const -1e-323 + call $~lib/util/number/dtoa + local.tee $112 + i32.const 6552 call $~lib/string/String.__eq i32.eqz if @@ -11334,10 +12007,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1.2312145673456234e-08 + f64.const 0 call $~lib/util/number/dtoa - local.tee $115 - i32.const 6528 + local.tee $113 + i32.const 4280 call $~lib/string/String.__eq i32.eqz if @@ -11348,10 +12021,10 @@ call $~lib/builtins/abort unreachable end - f64.const 555555555.5555556 + f64.const 4294967272 call $~lib/util/number/dtoa - local.tee $116 - i32.const 6592 + local.tee $114 + i32.const 6584 call $~lib/string/String.__eq i32.eqz if @@ -11362,10 +12035,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0.9999999999999999 + f64.const 1.2312145673456234e-08 call $~lib/util/number/dtoa - local.tee $117 - i32.const 6648 + local.tee $115 + i32.const 6624 call $~lib/string/String.__eq i32.eqz if @@ -11376,24 +12049,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1 + f64.const 555555555.5555556 call $~lib/util/number/dtoa - local.tee $118 - i32.const 6008 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 290 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 12.34 - call $~lib/util/number/dtoa - local.tee $119 - i32.const 6704 + local.tee $116 + i32.const 6688 call $~lib/string/String.__eq i32.eqz if @@ -11404,12 +12063,24 @@ call $~lib/builtins/abort unreachable end - f64.const 1 - f64.const 3 - f64.div + f64.const 0.9999999999999999 call $~lib/util/number/dtoa - local.tee $120 - i32.const 6736 + local.tee $117 + i32.const 6744 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 292 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/util/number/dtoa + local.tee $118 + i32.const 6104 call $~lib/string/String.__eq i32.eqz if @@ -11420,10 +12091,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1234e17 + f64.const 12.34 call $~lib/util/number/dtoa - local.tee $121 - i32.const 6792 + local.tee $119 + i32.const 6800 call $~lib/string/String.__eq i32.eqz if @@ -11434,24 +12105,12 @@ call $~lib/builtins/abort unreachable end - f64.const 1234e18 + f64.const 1 + f64.const 3 + f64.div call $~lib/util/number/dtoa - local.tee $122 - i32.const 6856 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 72 - i32.const 295 - i32.const 0 - call $~lib/builtins/abort - unreachable - end - f64.const 2.71828 - call $~lib/util/number/dtoa - local.tee $123 - i32.const 6896 + local.tee $120 + i32.const 6832 call $~lib/string/String.__eq i32.eqz if @@ -11462,10 +12121,10 @@ call $~lib/builtins/abort unreachable end - f64.const 0.0271828 + f64.const 1234e17 call $~lib/util/number/dtoa - local.tee $124 - i32.const 6928 + local.tee $121 + i32.const 6888 call $~lib/string/String.__eq i32.eqz if @@ -11476,10 +12135,10 @@ call $~lib/builtins/abort unreachable end - f64.const 271.828 + f64.const 1234e18 call $~lib/util/number/dtoa - local.tee $125 - i32.const 6968 + local.tee $122 + i32.const 6952 call $~lib/string/String.__eq i32.eqz if @@ -11490,10 +12149,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1.1e+128 + f64.const 2.71828 call $~lib/util/number/dtoa - local.tee $126 - i32.const 7000 + local.tee $123 + i32.const 6992 call $~lib/string/String.__eq i32.eqz if @@ -11504,10 +12163,10 @@ call $~lib/builtins/abort unreachable end - f64.const 1.1e-64 + f64.const 0.0271828 call $~lib/util/number/dtoa - local.tee $127 - i32.const 7032 + local.tee $124 + i32.const 7024 call $~lib/string/String.__eq i32.eqz if @@ -11518,9 +12177,9 @@ call $~lib/builtins/abort unreachable end - f64.const 0.000035689 + f64.const 271.828 call $~lib/util/number/dtoa - local.tee $128 + local.tee $125 i32.const 7064 call $~lib/string/String.__eq i32.eqz @@ -11532,6 +12191,48 @@ call $~lib/builtins/abort unreachable end + f64.const 1.1e+128 + call $~lib/util/number/dtoa + local.tee $126 + i32.const 7096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 302 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 1.1e-64 + call $~lib/util/number/dtoa + local.tee $127 + i32.const 7128 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 303 + i32.const 0 + call $~lib/builtins/abort + unreachable + end + f64.const 0.000035689 + call $~lib/util/number/dtoa + local.tee $128 + i32.const 7160 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 72 + i32.const 304 + i32.const 0 + call $~lib/builtins/abort + unreachable + end global.get $std/string/str call $~lib/rt/pure/__release local.get $0 @@ -11793,11 +12494,11 @@ local.get $128 call $~lib/rt/pure/__release ) - (func $std/string/getString (; 84 ;) (type $FUNCSIG$i) (result i32) + (func $std/string/getString (; 88 ;) (type $FUNCSIG$i) (result i32) global.get $std/string/str call $~lib/rt/pure/__retain ) - (func $start (; 85 ;) (type $FUNCSIG$v) + (func $start (; 89 ;) (type $FUNCSIG$v) global.get $~lib/started if return @@ -11807,7 +12508,7 @@ end call $start:std/string ) - (func $~lib/rt/pure/markGray (; 86 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/markGray (; 90 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -11834,7 +12535,7 @@ call $~lib/rt/__visit_members end ) - (func $~lib/rt/pure/scanBlack (; 87 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scanBlack (; 91 ;) (type $FUNCSIG$vi) (param $0 i32) local.get $0 local.get $0 i32.load offset=4 @@ -11851,7 +12552,7 @@ i32.const 4 call $~lib/rt/__visit_members ) - (func $~lib/rt/pure/scan (; 88 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/scan (; 92 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -11888,7 +12589,7 @@ end end ) - (func $~lib/rt/pure/collectWhite (; 89 ;) (type $FUNCSIG$vi) (param $0 i32) + (func $~lib/rt/pure/collectWhite (; 93 ;) (type $FUNCSIG$vi) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -11926,7 +12627,7 @@ call $~lib/rt/tlsf/freeBlock end ) - (func $~lib/rt/pure/__visit (; 90 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -12060,7 +12761,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 91 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12099,19 +12800,19 @@ unreachable end ) - (func $~lib/array/Array#__visit_impl (; 92 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 96 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 93 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 97 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 94 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 98 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 95 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 99 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) nop ) - (func $~lib/rt/__visit_members (; 96 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 100 ;) (type $FUNCSIG$vii) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default @@ -12169,6 +12870,6 @@ end return ) - (func $null (; 97 ;) (type $FUNCSIG$v) + (func $null (; 101 ;) (type $FUNCSIG$v) ) )