From 201bd5f2b1586e0976e3618025b9f11db26d0e1a Mon Sep 17 00:00:00 2001 From: LiaoPeng Date: Thu, 10 Jan 2019 19:10:23 +0800 Subject: [PATCH] Implement String#slice (#404) --- std/assembly/index.d.ts | 1 + std/assembly/string.ts | 11 + std/portable/index.d.ts | 1 + tests/compiler/std/string-utf8.optimized.wat | 8 +- tests/compiler/std/string-utf8.untouched.wat | 8 +- tests/compiler/std/string.optimized.wat | 3998 +++++++++--------- tests/compiler/std/string.ts | 11 +- tests/compiler/std/string.untouched.wat | 2035 +++++---- 8 files changed, 3270 insertions(+), 2803 deletions(-) diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 7ecc015e..a1aabd73 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -682,6 +682,7 @@ declare class String { padStart(targetLength: i32, padString?: string): string; padEnd(targetLength: i32, padString?: string): string; repeat(count?: i32): string; + slice(beginIndex: i32, endIndex?: i32): string; split(separator?: string, limit?: i32): string[]; toString(): string; static fromUTF8(ptr: usize, len: usize): string; diff --git a/std/assembly/string.ts b/std/assembly/string.ts index 857848de..a6676fb0 100644 --- a/std/assembly/string.ts +++ b/std/assembly/string.ts @@ -413,6 +413,17 @@ export class String { return result; } + slice(beginIndex: i32, endIndex: i32 = i32.MAX_VALUE): String { + var length = this.length; + var begin = (beginIndex < 0) ? max(beginIndex + length, 0) : min(beginIndex, length); + var end = (endIndex < 0) ? max(endIndex + length, 0) : min(endIndex, length); + var len = end - begin; + if (len <= 0) return changetype(""); + var out = allocateUnsafe(len); + copyUnsafe(out, 0, this, begin, len); + return out; + } + split(separator: String = null, limit: i32 = i32.MAX_VALUE): String[] { assert(this !== null); if (!limit) return new Array(); diff --git a/std/portable/index.d.ts b/std/portable/index.d.ts index 5ea4bdf6..80934d10 100644 --- a/std/portable/index.d.ts +++ b/std/portable/index.d.ts @@ -427,6 +427,7 @@ declare class String { padEnd(targetLength: i32, padString?: string): string; replace(search: string, replacement: string): string; repeat(count?: i32): string; + slice(beginIndex: i32, endIndex?: i32): string; split(separator?: string, limit?: i32): string[]; toString(): string; } diff --git a/tests/compiler/std/string-utf8.optimized.wat b/tests/compiler/std/string-utf8.optimized.wat index eb2de1f4..cc44337d 100644 --- a/tests/compiler/std/string-utf8.optimized.wat +++ b/tests/compiler/std/string-utf8.optimized.wat @@ -1575,7 +1575,7 @@ if i32.const 0 i32.const 72 - i32.const 510 + i32.const 521 i32.const 8 call $~lib/env/abort unreachable @@ -1622,7 +1622,7 @@ if i32.const 0 i32.const 72 - i32.const 514 + i32.const 525 i32.const 8 call $~lib/env/abort unreachable @@ -1695,7 +1695,7 @@ if i32.const 0 i32.const 72 - i32.const 526 + i32.const 537 i32.const 8 call $~lib/env/abort unreachable @@ -1748,7 +1748,7 @@ if i32.const 0 i32.const 72 - i32.const 535 + i32.const 546 i32.const 4 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/string-utf8.untouched.wat b/tests/compiler/std/string-utf8.untouched.wat index 60eaecec..1e9513e8 100644 --- a/tests/compiler/std/string-utf8.untouched.wat +++ b/tests/compiler/std/string-utf8.untouched.wat @@ -2001,7 +2001,7 @@ if i32.const 0 i32.const 72 - i32.const 510 + i32.const 521 i32.const 8 call $~lib/env/abort unreachable @@ -2055,7 +2055,7 @@ if i32.const 0 i32.const 72 - i32.const 514 + i32.const 525 i32.const 8 call $~lib/env/abort unreachable @@ -2150,7 +2150,7 @@ if i32.const 0 i32.const 72 - i32.const 526 + i32.const 537 i32.const 8 call $~lib/env/abort unreachable @@ -2213,7 +2213,7 @@ if i32.const 0 i32.const 72 - i32.const 535 + i32.const 546 i32.const 4 call $~lib/env/abort unreachable diff --git a/tests/compiler/std/string.optimized.wat b/tests/compiler/std/string.optimized.wat index de1f158f..8c6dae3f 100644 --- a/tests/compiler/std/string.optimized.wat +++ b/tests/compiler/std/string.optimized.wat @@ -78,103 +78,109 @@ (data (i32.const 920) "\05\00\00\00a\00a\00a\00a\00a") (data (i32.const 936) "\06\00\00\00a\00a\00a\00a\00a\00a") (data (i32.const 952) "\07\00\00\00a\00a\00a\00a\00a\00a\00a") - (data (i32.const 976) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data (i32.const 1008) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 1072) "\04") - (data (i32.const 1081) "\01") - (data (i32.const 1088) "0\04\00\00\01") - (data (i32.const 1096) "\05\00\00\00a\00,\00b\00,\00c") - (data (i32.const 1112) "\01\00\00\00.") - (data (i32.const 1120) "\01\00\00\00c") - (data (i32.const 1128) "\07\00\00\00a\00,\00 \00b\00,\00 \00c") - (data (i32.const 1152) "\02\00\00\00,\00 ") - (data (i32.const 1160) "\06\00\00\00a\00,\00b\00,\00,\00c") - (data (i32.const 1176) "\06\00\00\00,\00a\00,\00b\00,\00c") - (data (i32.const 1192) "\06\00\00\00a\00,\00b\00,\00c\00,") - (data (i32.const 1208) "\90\01\00\00\00\00\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 1720) "\b8\04\00\00d") - (data (i32.const 1728) "\01\00\00\008") - (data (i32.const 1736) "\05\00\00\00-\001\000\000\000") - (data (i32.const 1752) "\04\00\00\001\002\003\004") - (data (i32.const 1768) "\05\00\00\001\002\003\004\005") - (data (i32.const 1784) "\06\00\00\001\002\003\004\005\006") - (data (i32.const 1800) "\07\00\00\001\001\001\001\001\001\001") - (data (i32.const 1824) "\07\00\00\001\002\003\004\005\006\007") - (data (i32.const 1848) "\n\00\00\002\001\004\007\004\008\003\006\004\006") - (data (i32.const 1872) "\n\00\00\002\001\004\007\004\008\003\006\004\007") - (data (i32.const 1896) "\0b\00\00\00-\002\001\004\007\004\008\003\006\004\008") - (data (i32.const 1928) "\02\00\00\00-\001") - (data (i32.const 1936) "\04\00\00\001\000\000\000") - (data (i32.const 1952) "\n\00\00\002\001\004\007\004\008\003\006\004\008") - (data (i32.const 1976) "\n\00\00\004\002\009\004\009\006\007\002\009\005") - (data (i32.const 2000) "\90\01\00\00\00\00\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 2512) "\d0\07\00\00d") - (data (i32.const 2520) "\08\00\00\009\009\009\009\009\009\009\009") - (data (i32.const 2544) "\t\00\00\001\000\000\000\000\000\000\000\000") - (data (i32.const 2568) "\0b\00\00\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2600) "\0c\00\00\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2632) "\0f\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2672) "\10\00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2712) "\11\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2752) "\14\00\00\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005") - (data (i32.const 2800) "\05\00\00\00-\001\002\003\004") - (data (i32.const 2816) "\0b\00\00\00-\004\002\009\004\009\006\007\002\009\005") - (data (i32.const 2848) "\0c\00\00\00-\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2880) "\0d\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2912) "\10\00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2952) "\12\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005") - (data (i32.const 2992) "\13\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") - (data (i32.const 3040) "\14\00\00\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008") - (data (i32.const 3088) "\03\00\00\000\00.\000") - (data (i32.const 3104) "\03\00\00\00N\00a\00N") - (data (i32.const 3120) "\t\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 3144) "\08\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 3168) "\b8\02\00\00\00\00\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\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#constructor (; 35 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (; 37 ;) (type $FUNCSIG$ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3283,7 +3399,7 @@ i32.gt_u if i32.const 0 - i32.const 976 + i32.const 1096 i32.const 45 i32.const 39 call $~lib/env/abort @@ -3316,7 +3432,7 @@ call $~lib/internal/memory/memset get_local $1 ) - (func $~lib/internal/arraybuffer/reallocateUnsafe (; 36 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/arraybuffer/reallocateUnsafe (; 38 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) get_local $1 @@ -3330,7 +3446,7 @@ i32.gt_s if i32.const 0 - i32.const 1008 + i32.const 1128 i32.const 40 i32.const 4 call $~lib/env/abort @@ -3385,7 +3501,7 @@ i32.lt_s if i32.const 0 - i32.const 1008 + i32.const 1128 i32.const 62 i32.const 4 call $~lib/env/abort @@ -3398,7 +3514,7 @@ end get_local $0 ) - (func $~lib/array/Array#push (; 37 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 39 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3422,7 +3538,7 @@ i32.ge_u if i32.const 0 - i32.const 976 + i32.const 1096 i32.const 184 i32.const 42 call $~lib/env/abort @@ -3449,7 +3565,7 @@ i32.store offset=8 get_local $3 ) - (func $~lib/string/String#split (; 38 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split (; 40 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3463,7 +3579,7 @@ if i32.const 0 i32.const 80 - i32.const 417 + i32.const 428 i32.const 4 call $~lib/env/abort unreachable @@ -3480,31 +3596,32 @@ if i32.const 1 call $~lib/array/Array#constructor - tee_local $6 + tee_local $4 i32.load get_local $0 i32.store offset=8 - get_local $6 + get_local $4 return end get_local $0 i32.load set_local $3 - i32.const 2147483647 - get_local $2 + get_local $1 + i32.load + set_local $8 get_local $2 i32.const 0 i32.lt_s - select - set_local $2 - get_local $1 - i32.load - tee_local $9 + if + i32.const 2147483647 + set_local $2 + end + get_local $8 if get_local $3 i32.eqz if - i32.const 1088 + i32.const 1208 return end else @@ -3516,6 +3633,7 @@ return end get_local $3 + tee_local $4 get_local $2 get_local $3 get_local $2 @@ -3523,7 +3641,7 @@ select tee_local $3 call $~lib/array/Array#constructor - tee_local $6 + tee_local $4 i32.load set_local $7 i32.const 0 @@ -3557,23 +3675,23 @@ br $repeat|0 end end - get_local $6 + get_local $4 return end i32.const 0 call $~lib/array/Array#constructor - set_local $4 + set_local $5 loop $continue|1 get_local $0 get_local $1 - get_local $5 + get_local $6 call $~lib/string/String#indexOf - tee_local $8 + tee_local $9 i32.const -1 i32.ne if - get_local $8 - get_local $5 + get_local $9 + get_local $6 i32.sub tee_local $7 i32.const 0 @@ -3581,18 +3699,18 @@ if get_local $7 call $~lib/internal/string/allocateUnsafe - tee_local $6 + tee_local $4 i32.const 0 get_local $0 - get_local $5 + get_local $6 get_local $7 call $~lib/internal/string/copyUnsafe + get_local $5 get_local $4 - get_local $6 call $~lib/array/Array#push drop else - get_local $4 + get_local $5 i32.const 256 call $~lib/array/Array#push drop @@ -3604,17 +3722,17 @@ get_local $2 i32.eq if - get_local $4 + get_local $5 return end get_local $8 get_local $9 i32.add - set_local $5 + set_local $6 br $continue|1 end end - get_local $5 + get_local $6 i32.eqz if i32.const 1 @@ -3627,7 +3745,7 @@ return end get_local $3 - get_local $5 + get_local $6 i32.sub tee_local $1 i32.const 0 @@ -3638,22 +3756,22 @@ tee_local $2 i32.const 0 get_local $0 - get_local $5 + get_local $6 get_local $1 call $~lib/internal/string/copyUnsafe - get_local $4 + get_local $5 get_local $2 call $~lib/array/Array#push drop else - get_local $4 + get_local $5 i32.const 256 call $~lib/array/Array#push drop end - get_local $4 + get_local $5 ) - (func $~lib/string/String#split|trampoline (; 39 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#split|trampoline (; 41 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) block $2of2 block $1of2 @@ -3675,7 +3793,7 @@ get_local $2 call $~lib/string/String#split ) - (func $~lib/internal/number/decimalCount32 (; 40 ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/decimalCount32 (; 42 ;) (type $ii) (param $0 i32) (result i32) get_local $0 i32.const 100000 i32.lt_u @@ -3729,10 +3847,10 @@ end end ) - (func $~lib/internal/number/utoa32_lut (; 41 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/number/utoa32_lut (; 43 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) - i32.const 1720 + i32.const 1840 i32.load set_local $3 loop $continue|0 @@ -3839,7 +3957,7 @@ i32.store16 offset=4 end ) - (func $~lib/internal/number/itoa32 (; 42 ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/itoa32 (; 44 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3877,7 +3995,7 @@ end get_local $2 ) - (func $~lib/internal/number/utoa32 (; 43 ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/utoa32 (; 45 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) get_local $0 @@ -3896,7 +4014,7 @@ call $~lib/internal/number/utoa32_lut get_local $2 ) - (func $~lib/internal/number/decimalCount64 (; 44 ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/decimalCount64 (; 46 ;) (type $Ii) (param $0 i64) (result i32) get_local $0 i64.const 1000000000000000 i64.lt_u @@ -3950,12 +4068,12 @@ end end ) - (func $~lib/internal/number/utoa64_lut (; 45 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/internal/number/utoa64_lut (; 47 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - i32.const 2512 + i32.const 2632 i32.load set_local $3 loop $continue|0 @@ -4047,7 +4165,7 @@ get_local $2 call $~lib/internal/number/utoa32_lut ) - (func $~lib/internal/number/utoa64 (; 46 ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/utoa64 (; 48 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4083,7 +4201,7 @@ end get_local $2 ) - (func $~lib/internal/number/itoa64 (; 47 ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/itoa64 (; 49 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4094,21 +4212,19 @@ i32.const 480 return end - block (result i32) - get_local $0 + get_local $0 + i64.const 0 + i64.lt_s + tee_local $1 + if i64.const 0 - i64.lt_s - tee_local $1 - if - i64.const 0 - get_local $0 - i64.sub - set_local $0 - end get_local $0 - i64.const 4294967295 - i64.le_u + i64.sub + set_local $0 end + get_local $0 + i64.const 4294967295 + i64.le_u if get_local $0 i32.wrap/i64 @@ -4142,7 +4258,7 @@ end get_local $3 ) - (func $~lib/internal/number/genDigits (; 48 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/internal/number/genDigits (; 50 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i32) @@ -4177,7 +4293,7 @@ tee_local $7 call $~lib/internal/number/decimalCount32 set_local $9 - i32.const 4528 + i32.const 4648 i32.load set_local $12 loop $continue|0 @@ -4468,91 +4584,93 @@ i64.and tee_local $1 get_local $5 - i64.ge_u - br_if $continue|3 - get_global $~lib/internal/number/_K - get_local $9 - i32.add - set_global $~lib/internal/number/_K - get_local $12 - i32.const 0 - get_local $9 - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u offset=8 - get_local $8 - i64.mul - set_local $8 - get_local $6 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - get_local $0 - i32.add - tee_local $7 - i32.load16_u offset=4 - set_local $4 - loop $continue|4 - get_local $1 + i64.lt_u + if (result i32) + get_global $~lib/internal/number/_K + get_local $9 + i32.add + set_global $~lib/internal/number/_K + get_local $12 + i32.const 0 + get_local $9 + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u offset=8 get_local $8 - i64.lt_u - tee_local $2 - if - get_local $5 + i64.mul + set_local $8 + get_local $6 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + get_local $0 + i32.add + tee_local $7 + i32.load16_u offset=4 + set_local $4 + loop $continue|4 get_local $1 - i64.sub - get_local $10 - i64.ge_u - set_local $2 - end - get_local $2 - if - get_local $1 - get_local $10 - i64.add get_local $8 i64.lt_u tee_local $2 - i32.eqz if - get_local $8 + get_local $5 get_local $1 i64.sub + get_local $10 + i64.ge_u + set_local $2 + end + get_local $2 + if get_local $1 get_local $10 i64.add get_local $8 - i64.sub - i64.gt_u - set_local $2 + i64.lt_u + tee_local $2 + i32.eqz + if + get_local $8 + get_local $1 + i64.sub + get_local $1 + get_local $10 + i64.add + get_local $8 + i64.sub + i64.gt_u + set_local $2 + end + end + get_local $2 + if + get_local $4 + i32.const 1 + i32.sub + set_local $4 + get_local $1 + get_local $10 + i64.add + set_local $1 + br $continue|4 end end - get_local $2 - if - get_local $4 - i32.const 1 - i32.sub - set_local $4 - get_local $1 - get_local $10 - i64.add - set_local $1 - br $continue|4 - end + get_local $7 + get_local $4 + i32.store16 offset=4 + get_local $6 + else + br $continue|3 end - get_local $7 - get_local $4 - i32.store16 offset=4 - get_local $6 end ) - (func $~lib/internal/number/prettify (; 49 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/number/prettify (; 51 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) - (local $5 i32) get_local $2 i32.eqz if @@ -4572,11 +4690,11 @@ get_local $1 get_local $2 i32.add - tee_local $5 + tee_local $4 i32.le_s tee_local $3 if - get_local $5 + get_local $4 i32.const 21 i32.le_s set_local $3 @@ -4588,7 +4706,7 @@ loop $repeat|0 block $break|0 get_local $3 - get_local $5 + get_local $4 i32.ge_s br_if $break|0 get_local $3 @@ -4605,41 +4723,40 @@ br $repeat|0 end end - get_local $5 + get_local $4 i32.const 1 i32.shl get_local $0 i32.add i32.const 3145774 i32.store offset=4 - get_local $5 + get_local $4 i32.const 2 i32.add else - get_local $5 + get_local $4 i32.const 0 i32.gt_s tee_local $3 if - get_local $5 + get_local $4 i32.const 21 i32.le_s set_local $3 end get_local $3 if (result i32) - get_local $5 + get_local $4 i32.const 1 i32.shl get_local $0 i32.add tee_local $3 + i32.const 6 + i32.add + get_local $3 i32.const 4 i32.add - tee_local $0 - i32.const 2 - i32.add - get_local $0 i32.const 0 get_local $2 i32.sub @@ -4654,11 +4771,11 @@ i32.add else i32.const -6 - get_local $5 + get_local $4 i32.lt_s tee_local $3 if - get_local $5 + get_local $4 i32.const 0 i32.le_s set_local $3 @@ -4668,15 +4785,16 @@ get_local $0 i32.const 4 i32.add - tee_local $2 i32.const 2 - get_local $5 + get_local $4 i32.sub tee_local $3 i32.const 1 i32.shl i32.add - get_local $2 + get_local $0 + i32.const 4 + i32.add get_local $1 i32.const 1 i32.shl @@ -4685,24 +4803,24 @@ i32.const 3014704 i32.store offset=4 i32.const 2 - set_local $4 + set_local $2 loop $repeat|1 block $break|1 - get_local $4 + get_local $2 get_local $3 i32.ge_s br_if $break|1 - get_local $4 + get_local $2 i32.const 1 i32.shl get_local $0 i32.add i32.const 48 i32.store16 offset=4 - get_local $4 + get_local $2 i32.const 1 i32.add - set_local $4 + set_local $2 br $repeat|1 end end @@ -4720,52 +4838,48 @@ get_local $0 i32.const 4 i32.add - tee_local $3 - block (result i32) - get_local $5 - i32.const 1 - i32.sub - tee_local $4 - i32.const 0 - i32.lt_s - tee_local $2 - if - i32.const 0 - get_local $4 - i32.sub - set_local $4 - end - get_local $4 - end + set_local $3 get_local $4 + i32.const 1 + i32.sub + tee_local $2 + i32.const 0 + i32.lt_s + tee_local $0 + if + i32.const 0 + get_local $2 + i32.sub + set_local $2 + end + get_local $3 + get_local $2 + get_local $2 call $~lib/internal/number/decimalCount32 i32.const 1 i32.add - tee_local $4 + tee_local $2 call $~lib/internal/number/utoa32_lut get_local $3 i32.const 45 i32.const 43 - get_local $2 + get_local $0 select i32.store16 offset=4 - get_local $4 + get_local $2 i32.const 2 i32.add else get_local $0 - i32.const 4 + i32.const 8 i32.add - tee_local $3 - i32.const 4 - i32.add - get_local $3 - i32.const 2 + get_local $0 + i32.const 6 i32.add get_local $1 i32.const 1 i32.shl - tee_local $4 + tee_local $2 i32.const 2 i32.sub call $~lib/internal/memory/memmove @@ -4773,7 +4887,7 @@ i32.const 46 i32.store16 offset=6 get_local $0 - get_local $4 + get_local $2 i32.add tee_local $0 i32.const 101 @@ -4781,37 +4895,36 @@ get_local $0 i32.const 4 i32.add - tee_local $3 - block (result i32) - get_local $5 - i32.const 1 - i32.sub - tee_local $4 - i32.const 0 - i32.lt_s - tee_local $2 - if - i32.const 0 - get_local $4 - i32.sub - set_local $4 - end - get_local $4 - end + set_local $3 get_local $4 + i32.const 1 + i32.sub + tee_local $2 + i32.const 0 + i32.lt_s + tee_local $0 + if + i32.const 0 + get_local $2 + i32.sub + set_local $2 + end + get_local $3 + get_local $2 + get_local $2 call $~lib/internal/number/decimalCount32 i32.const 1 i32.add - tee_local $0 + tee_local $2 call $~lib/internal/number/utoa32_lut get_local $3 i32.const 45 i32.const 43 - get_local $2 + get_local $0 select i32.store16 offset=4 - get_local $0 get_local $1 + get_local $2 i32.add i32.const 2 i32.add @@ -4820,12 +4933,12 @@ end end ) - (func $~lib/internal/number/dtoa_core (; 50 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/internal/number/dtoa_core (; 52 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) (local $4 i32) - (local $5 i64) - (local $6 i32) + (local $5 i32) + (local $6 i64) (local $7 i64) (local $8 i32) (local $9 i64) @@ -4839,15 +4952,15 @@ f64.const 0 f64.lt tee_local $13 - if (result f64) + if + get_local $1 + f64.neg + set_local $1 get_local $0 i32.const 45 i32.store16 offset=4 - get_local $1 - f64.neg - else - get_local $1 end + get_local $1 i64.reinterpret/f64 tee_local $2 i64.const 9218868437227405312 @@ -4862,7 +4975,7 @@ get_local $8 i32.const 0 i32.ne - tee_local $6 + tee_local $5 i64.extend_u/i32 i64.const 52 i64.shl @@ -4870,24 +4983,24 @@ set_local $2 get_local $8 i32.const 1 - get_local $6 + get_local $5 select i32.const 1075 i32.sub tee_local $8 i32.const 1 i32.sub - set_local $6 + set_local $5 get_local $2 i64.const 1 i64.shl i64.const 1 i64.add - tee_local $5 + tee_local $6 i64.clz i32.wrap/i64 set_local $4 - get_local $5 + get_local $6 get_local $4 i64.extend_s/i32 i64.shl @@ -4906,15 +5019,15 @@ get_local $8 get_local $14 i32.sub - get_local $6 + get_local $5 get_local $4 i32.sub - tee_local $6 + tee_local $5 i32.sub i64.extend_s/i32 i64.shl set_global $~lib/internal/number/_frc_minus - get_local $6 + get_local $5 set_global $~lib/internal/number/_exp i32.const 348 i32.const -61 @@ -4937,24 +5050,24 @@ i32.shr_s i32.const 1 i32.add - tee_local $6 + tee_local $5 i32.const 3 i32.shl i32.sub set_global $~lib/internal/number/_K - i32.const 4456 + i32.const 4576 i32.load set_local $4 - i32.const 4192 + i32.const 4312 i32.load - get_local $6 + get_local $5 i32.const 3 i32.shl i32.add i64.load offset=8 set_global $~lib/internal/number/_frc_pow get_local $4 - get_local $6 + get_local $5 i32.const 1 i32.shl i32.add @@ -4972,13 +5085,13 @@ i64.and tee_local $7 get_global $~lib/internal/number/_frc_pow - tee_local $5 + tee_local $6 i64.const 4294967295 i64.and tee_local $9 i64.mul set_local $10 - get_local $5 + get_local $6 i64.const 32 i64.shr_u tee_local $11 @@ -4998,6 +5111,7 @@ i64.const 4294967295 i64.and i64.add + tee_local $2 i64.const 2147483647 i64.add i64.const 32 @@ -5011,7 +5125,7 @@ i64.add i64.add set_local $2 - get_local $5 + get_local $6 i64.const 4294967295 i64.and tee_local $11 @@ -5023,7 +5137,7 @@ i64.mul set_local $7 get_local $10 - get_local $5 + get_local $6 i64.const 32 i64.shr_u tee_local $9 @@ -5042,6 +5156,7 @@ i64.const 4294967295 i64.and i64.add + tee_local $7 i64.const 2147483647 i64.add i64.const 32 @@ -5060,13 +5175,13 @@ i64.const 4294967295 i64.and tee_local $7 - get_local $5 + get_local $6 i64.const 4294967295 i64.and tee_local $9 i64.mul set_local $10 - get_local $5 + get_local $6 i64.const 32 i64.shr_u tee_local $11 @@ -5086,7 +5201,7 @@ i64.const 4294967295 i64.and i64.add - set_local $5 + set_local $6 get_local $15 i64.const 1 i64.sub @@ -5098,7 +5213,7 @@ i64.const 32 i64.shr_u i64.add - get_local $5 + get_local $6 i64.const 2147483647 i64.add i64.const 32 @@ -5123,6 +5238,7 @@ i32.add i32.const -64 i32.sub + tee_local $5 get_local $7 get_local $4 get_global $~lib/internal/number/_exp @@ -5139,7 +5255,7 @@ get_local $13 i32.add ) - (func $~lib/string/String#substring (; 51 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 53 ;) (type $FUNCSIG$iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5199,14 +5315,14 @@ get_local $4 i32.eqz tee_local $2 - if (result i32) + if get_local $0 i32.load get_local $1 i32.eq - else - get_local $2 + set_local $2 end + get_local $2 if get_local $0 return @@ -5221,14 +5337,14 @@ call $~lib/internal/string/copyUnsafe get_local $2 ) - (func $~lib/internal/number/dtoa (; 52 ;) (type $Fi) (param $0 f64) (result i32) + (func $~lib/internal/number/dtoa (; 54 ;) (type $Fi) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) get_local $0 f64.const 0 f64.eq if - i32.const 3088 + i32.const 3208 return end get_local $0 @@ -5241,11 +5357,11 @@ get_local $0 f64.ne if - i32.const 3104 + i32.const 3224 return end - i32.const 3120 - i32.const 3144 + i32.const 3240 + i32.const 3264 get_local $0 f64.const 0 f64.lt @@ -5274,10 +5390,10 @@ end get_local $1 ) - (func $start (; 53 ;) (type $v) + (func $start (; 55 ;) (type $v) (local $0 i32) (local $1 i32) - i32.const 5784 + i32.const 5904 set_global $~lib/allocator/arena/startOffset get_global $~lib/allocator/arena/startOffset set_global $~lib/allocator/arena/offset @@ -5287,7 +5403,7 @@ if i32.const 0 i32.const 48 - i32.const 17 + i32.const 16 i32.const 0 call $~lib/env/abort unreachable @@ -5299,7 +5415,7 @@ if i32.const 0 i32.const 48 - i32.const 19 + i32.const 18 i32.const 0 call $~lib/env/abort unreachable @@ -5311,7 +5427,7 @@ if i32.const 0 i32.const 48 - i32.const 20 + i32.const 19 i32.const 0 call $~lib/env/abort unreachable @@ -5324,7 +5440,7 @@ if i32.const 0 i32.const 48 - i32.const 22 + i32.const 21 i32.const 0 call $~lib/env/abort unreachable @@ -5337,7 +5453,7 @@ if i32.const 0 i32.const 48 - i32.const 23 + i32.const 22 i32.const 0 call $~lib/env/abort unreachable @@ -5350,7 +5466,7 @@ if i32.const 0 i32.const 48 - i32.const 24 + i32.const 23 i32.const 0 call $~lib/env/abort unreachable @@ -5363,7 +5479,7 @@ if i32.const 0 i32.const 48 - i32.const 26 + i32.const 25 i32.const 0 call $~lib/env/abort unreachable @@ -5376,7 +5492,7 @@ if i32.const 0 i32.const 48 - i32.const 27 + i32.const 26 i32.const 0 call $~lib/env/abort unreachable @@ -5387,7 +5503,7 @@ if i32.const 184 i32.const 48 - i32.const 28 + i32.const 27 i32.const 0 call $~lib/env/abort unreachable @@ -5398,7 +5514,7 @@ if i32.const 0 i32.const 48 - i32.const 30 + i32.const 29 i32.const 0 call $~lib/env/abort unreachable @@ -5428,7 +5544,7 @@ if i32.const 0 i32.const 48 - i32.const 31 + i32.const 30 i32.const 0 call $~lib/env/abort unreachable @@ -5442,7 +5558,7 @@ if i32.const 0 i32.const 48 - i32.const 32 + i32.const 31 i32.const 0 call $~lib/env/abort unreachable @@ -5458,7 +5574,7 @@ if i32.const 0 i32.const 48 - i32.const 34 + i32.const 33 i32.const 0 call $~lib/env/abort unreachable @@ -5474,7 +5590,7 @@ if i32.const 0 i32.const 48 - i32.const 35 + i32.const 34 i32.const 0 call $~lib/env/abort unreachable @@ -5490,7 +5606,7 @@ if i32.const 0 i32.const 48 - i32.const 36 + i32.const 35 i32.const 0 call $~lib/env/abort unreachable @@ -5505,7 +5621,7 @@ if i32.const 0 i32.const 48 - i32.const 37 + i32.const 36 i32.const 0 call $~lib/env/abort unreachable @@ -5520,7 +5636,7 @@ if i32.const 0 i32.const 48 - i32.const 38 + i32.const 37 i32.const 0 call $~lib/env/abort unreachable @@ -5536,7 +5652,7 @@ if i32.const 0 i32.const 48 - i32.const 39 + i32.const 38 i32.const 0 call $~lib/env/abort unreachable @@ -5551,7 +5667,7 @@ if i32.const 0 i32.const 48 - i32.const 40 + i32.const 39 i32.const 0 call $~lib/env/abort unreachable @@ -5566,7 +5682,7 @@ if i32.const 0 i32.const 48 - i32.const 41 + i32.const 40 i32.const 0 call $~lib/env/abort unreachable @@ -5582,7 +5698,7 @@ if i32.const 0 i32.const 48 - i32.const 43 + i32.const 42 i32.const 0 call $~lib/env/abort unreachable @@ -5598,7 +5714,7 @@ if i32.const 0 i32.const 48 - i32.const 44 + i32.const 43 i32.const 0 call $~lib/env/abort unreachable @@ -5614,7 +5730,7 @@ if i32.const 0 i32.const 48 - i32.const 45 + i32.const 44 i32.const 0 call $~lib/env/abort unreachable @@ -5629,7 +5745,7 @@ if i32.const 0 i32.const 48 - i32.const 46 + i32.const 45 i32.const 0 call $~lib/env/abort unreachable @@ -5644,7 +5760,7 @@ if i32.const 0 i32.const 48 - i32.const 47 + i32.const 46 i32.const 0 call $~lib/env/abort unreachable @@ -5660,7 +5776,7 @@ if i32.const 0 i32.const 48 - i32.const 48 + i32.const 47 i32.const 0 call $~lib/env/abort unreachable @@ -5675,7 +5791,7 @@ if i32.const 0 i32.const 48 - i32.const 49 + i32.const 48 i32.const 0 call $~lib/env/abort unreachable @@ -5690,7 +5806,7 @@ if i32.const 0 i32.const 48 - i32.const 50 + i32.const 49 i32.const 0 call $~lib/env/abort unreachable @@ -5702,7 +5818,7 @@ if i32.const 0 i32.const 48 - i32.const 52 + i32.const 51 i32.const 0 call $~lib/env/abort unreachable @@ -5716,7 +5832,7 @@ if i32.const 0 i32.const 48 - i32.const 53 + i32.const 52 i32.const 0 call $~lib/env/abort unreachable @@ -5725,6 +5841,18 @@ i32.const 280 i32.const 0 call $~lib/string/String#indexOf + if + i32.const 0 + i32.const 48 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + get_global $std/string/str + i32.const 0 + call $~lib/string/String#indexOf if i32.const 0 i32.const 48 @@ -5734,26 +5862,13 @@ unreachable end get_global $std/string/str - tee_local $0 - get_local $0 - i32.const 0 - call $~lib/string/String#indexOf - if - i32.const 0 - i32.const 48 - i32.const 55 - i32.const 0 - call $~lib/env/abort - unreachable - end - get_global $std/string/str i32.const 256 i32.const 0 call $~lib/string/String#indexOf if i32.const 0 i32.const 48 - i32.const 56 + i32.const 55 i32.const 0 call $~lib/env/abort unreachable @@ -5767,7 +5882,7 @@ if i32.const 0 i32.const 48 - i32.const 57 + i32.const 56 i32.const 0 call $~lib/env/abort unreachable @@ -5781,7 +5896,7 @@ if i32.const 0 i32.const 48 - i32.const 58 + i32.const 57 i32.const 0 call $~lib/env/abort unreachable @@ -5795,7 +5910,7 @@ if i32.const 0 i32.const 48 - i32.const 59 + i32.const 58 i32.const 0 call $~lib/env/abort unreachable @@ -5809,7 +5924,7 @@ if i32.const 0 i32.const 48 - i32.const 60 + i32.const 59 i32.const 0 call $~lib/env/abort unreachable @@ -5823,7 +5938,7 @@ if i32.const 0 i32.const 48 - i32.const 61 + i32.const 60 i32.const 0 call $~lib/env/abort unreachable @@ -5836,7 +5951,7 @@ if i32.const 0 i32.const 48 - i32.const 63 + i32.const 62 i32.const 0 call $~lib/env/abort unreachable @@ -5851,7 +5966,7 @@ if i32.const 0 i32.const 48 - i32.const 64 + i32.const 63 i32.const 0 call $~lib/env/abort unreachable @@ -5867,7 +5982,7 @@ if i32.const 0 i32.const 48 - i32.const 65 + i32.const 64 i32.const 0 call $~lib/env/abort unreachable @@ -5882,7 +5997,7 @@ if i32.const 0 i32.const 48 - i32.const 66 + i32.const 65 i32.const 0 call $~lib/env/abort unreachable @@ -5897,7 +6012,7 @@ if i32.const 0 i32.const 48 - i32.const 67 + i32.const 66 i32.const 0 call $~lib/env/abort unreachable @@ -5912,7 +6027,7 @@ if i32.const 0 i32.const 48 - i32.const 68 + i32.const 67 i32.const 0 call $~lib/env/abort unreachable @@ -5926,7 +6041,7 @@ if i32.const 0 i32.const 48 - i32.const 69 + i32.const 68 i32.const 0 call $~lib/env/abort unreachable @@ -5940,7 +6055,7 @@ if i32.const 0 i32.const 48 - i32.const 70 + i32.const 69 i32.const 0 call $~lib/env/abort unreachable @@ -5954,7 +6069,7 @@ if i32.const 0 i32.const 48 - i32.const 71 + i32.const 70 i32.const 0 call $~lib/env/abort unreachable @@ -5968,7 +6083,7 @@ if i32.const 0 i32.const 48 - i32.const 72 + i32.const 71 i32.const 0 call $~lib/env/abort unreachable @@ -5980,7 +6095,7 @@ if i32.const 0 i32.const 48 - i32.const 73 + i32.const 72 i32.const 0 call $~lib/env/abort unreachable @@ -5992,7 +6107,7 @@ if i32.const 0 i32.const 48 - i32.const 79 + i32.const 78 i32.const 0 call $~lib/env/abort unreachable @@ -6004,7 +6119,7 @@ if i32.const 0 i32.const 48 - i32.const 80 + i32.const 79 i32.const 0 call $~lib/env/abort unreachable @@ -6016,7 +6131,7 @@ if i32.const 0 i32.const 48 - i32.const 81 + i32.const 80 i32.const 0 call $~lib/env/abort unreachable @@ -6028,7 +6143,7 @@ if i32.const 0 i32.const 48 - i32.const 82 + i32.const 81 i32.const 0 call $~lib/env/abort unreachable @@ -6040,7 +6155,7 @@ if i32.const 0 i32.const 48 - i32.const 83 + i32.const 82 i32.const 0 call $~lib/env/abort unreachable @@ -6052,7 +6167,7 @@ if i32.const 0 i32.const 48 - i32.const 84 + i32.const 83 i32.const 0 call $~lib/env/abort unreachable @@ -6064,7 +6179,7 @@ if i32.const 0 i32.const 48 - i32.const 85 + i32.const 84 i32.const 0 call $~lib/env/abort unreachable @@ -6076,7 +6191,7 @@ if i32.const 0 i32.const 48 - i32.const 86 + i32.const 85 i32.const 0 call $~lib/env/abort unreachable @@ -6088,7 +6203,7 @@ if i32.const 0 i32.const 48 - i32.const 88 + i32.const 87 i32.const 0 call $~lib/env/abort unreachable @@ -6100,7 +6215,7 @@ if i32.const 0 i32.const 48 - i32.const 89 + i32.const 88 i32.const 0 call $~lib/env/abort unreachable @@ -6112,7 +6227,7 @@ if i32.const 0 i32.const 48 - i32.const 90 + i32.const 89 i32.const 0 call $~lib/env/abort unreachable @@ -6124,7 +6239,7 @@ if i32.const 0 i32.const 48 - i32.const 91 + i32.const 90 i32.const 0 call $~lib/env/abort unreachable @@ -6136,7 +6251,7 @@ if i32.const 0 i32.const 48 - i32.const 92 + i32.const 91 i32.const 0 call $~lib/env/abort unreachable @@ -6152,7 +6267,7 @@ if i32.const 0 i32.const 48 - i32.const 95 + i32.const 94 i32.const 0 call $~lib/env/abort unreachable @@ -6164,7 +6279,7 @@ if i32.const 0 i32.const 48 - i32.const 96 + i32.const 95 i32.const 0 call $~lib/env/abort unreachable @@ -6176,7 +6291,7 @@ if i32.const 0 i32.const 48 - i32.const 97 + i32.const 96 i32.const 0 call $~lib/env/abort unreachable @@ -6188,7 +6303,7 @@ if i32.const 0 i32.const 48 - i32.const 98 + i32.const 97 i32.const 0 call $~lib/env/abort unreachable @@ -6197,6 +6312,18 @@ i32.const 256 call $~lib/string/String.__ne i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 98 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 648 + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 48 @@ -6206,25 +6333,13 @@ unreachable end i32.const 280 - i32.const 648 - call $~lib/string/String.__ne - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 100 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 280 i32.const 280 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 101 + i32.const 100 i32.const 0 call $~lib/env/abort unreachable @@ -6236,7 +6351,7 @@ if i32.const 0 i32.const 48 - i32.const 102 + i32.const 101 i32.const 0 call $~lib/env/abort unreachable @@ -6248,7 +6363,7 @@ if i32.const 0 i32.const 48 - i32.const 103 + i32.const 102 i32.const 0 call $~lib/env/abort unreachable @@ -6260,7 +6375,7 @@ if i32.const 0 i32.const 48 - i32.const 104 + i32.const 103 i32.const 0 call $~lib/env/abort unreachable @@ -6272,7 +6387,7 @@ if i32.const 0 i32.const 48 - i32.const 105 + i32.const 104 i32.const 0 call $~lib/env/abort unreachable @@ -6284,7 +6399,7 @@ if i32.const 0 i32.const 48 - i32.const 106 + i32.const 105 i32.const 0 call $~lib/env/abort unreachable @@ -6296,7 +6411,7 @@ if i32.const 0 i32.const 48 - i32.const 107 + i32.const 106 i32.const 0 call $~lib/env/abort unreachable @@ -6308,7 +6423,7 @@ if i32.const 0 i32.const 48 - i32.const 108 + i32.const 107 i32.const 0 call $~lib/env/abort unreachable @@ -6317,6 +6432,18 @@ i32.const 280 call $~lib/string/String.__gt i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 109 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 864 + i32.const 280 + call $~lib/string/String.__gt + i32.eqz if i32.const 0 i32.const 48 @@ -6326,8 +6453,8 @@ unreachable end i32.const 864 - i32.const 280 - call $~lib/string/String.__gt + i32.const 872 + call $~lib/string/String.__gte i32.eqz if i32.const 0 @@ -6338,8 +6465,8 @@ unreachable end i32.const 864 - i32.const 872 - call $~lib/string/String.__gte + i32.const 656 + call $~lib/string/String.__gt i32.eqz if i32.const 0 @@ -6351,8 +6478,7 @@ end i32.const 864 i32.const 656 - call $~lib/string/String.__gt - i32.eqz + call $~lib/string/String.__lt if i32.const 0 i32.const 48 @@ -6361,19 +6487,19 @@ call $~lib/env/abort unreachable end - i32.const 864 - i32.const 656 + i32.const 648 + get_global $std/string/nullStr call $~lib/string/String.__lt if i32.const 0 i32.const 48 - i32.const 114 + i32.const 115 i32.const 0 call $~lib/env/abort unreachable end - i32.const 648 get_global $std/string/nullStr + i32.const 648 call $~lib/string/String.__lt if i32.const 0 @@ -6383,20 +6509,21 @@ call $~lib/env/abort unreachable end - get_global $std/string/nullStr - i32.const 648 - call $~lib/string/String.__lt + i32.const 288 + i32.const 256 + call $~lib/string/String.__gt + i32.eqz if i32.const 0 i32.const 48 - i32.const 117 + i32.const 118 i32.const 0 call $~lib/env/abort unreachable end - i32.const 288 i32.const 256 - call $~lib/string/String.__gt + i32.const 288 + call $~lib/string/String.__lt i32.eqz if i32.const 0 @@ -6406,9 +6533,9 @@ call $~lib/env/abort unreachable end - i32.const 256 i32.const 288 - call $~lib/string/String.__lt + i32.const 256 + call $~lib/string/String.__gte i32.eqz if i32.const 0 @@ -6419,8 +6546,7 @@ unreachable end i32.const 288 - i32.const 256 - call $~lib/string/String.__gte + call $~lib/string/String.__lte i32.eqz if i32.const 0 @@ -6431,8 +6557,8 @@ unreachable end i32.const 288 - call $~lib/string/String.__lte - i32.eqz + i32.const 256 + call $~lib/string/String.__lt if i32.const 0 i32.const 48 @@ -6441,9 +6567,9 @@ call $~lib/env/abort unreachable end - i32.const 288 i32.const 256 - call $~lib/string/String.__lt + i32.const 288 + call $~lib/string/String.__gt if i32.const 0 i32.const 48 @@ -6453,8 +6579,8 @@ unreachable end i32.const 256 - i32.const 288 - call $~lib/string/String.__gt + i32.const 256 + call $~lib/string/String.__lt if i32.const 0 i32.const 48 @@ -6465,22 +6591,11 @@ end i32.const 256 i32.const 256 - call $~lib/string/String.__lt - if - i32.const 0 - i32.const 48 - i32.const 125 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 256 - i32.const 256 call $~lib/string/String.__gt if i32.const 0 i32.const 48 - i32.const 126 + i32.const 125 i32.const 0 call $~lib/env/abort unreachable @@ -6492,7 +6607,7 @@ if i32.const 0 i32.const 48 - i32.const 127 + i32.const 126 i32.const 0 call $~lib/env/abort unreachable @@ -6503,7 +6618,7 @@ if i32.const 0 i32.const 48 - i32.const 128 + i32.const 127 i32.const 0 call $~lib/env/abort unreachable @@ -6524,7 +6639,7 @@ if i32.const 0 i32.const 48 - i32.const 132 + i32.const 131 i32.const 0 call $~lib/env/abort unreachable @@ -6536,7 +6651,7 @@ if i32.const 0 i32.const 48 - i32.const 134 + i32.const 133 i32.const 0 call $~lib/env/abort unreachable @@ -6550,7 +6665,7 @@ if i32.const 0 i32.const 48 - i32.const 136 + i32.const 135 i32.const 0 call $~lib/env/abort unreachable @@ -6564,7 +6679,7 @@ if i32.const 0 i32.const 48 - i32.const 137 + i32.const 136 i32.const 0 call $~lib/env/abort unreachable @@ -6578,7 +6693,7 @@ if i32.const 0 i32.const 48 - i32.const 138 + i32.const 137 i32.const 0 call $~lib/env/abort unreachable @@ -6592,7 +6707,7 @@ if i32.const 0 i32.const 48 - i32.const 139 + i32.const 138 i32.const 0 call $~lib/env/abort unreachable @@ -6606,7 +6721,7 @@ if i32.const 0 i32.const 48 - i32.const 140 + i32.const 139 i32.const 0 call $~lib/env/abort unreachable @@ -6620,7 +6735,7 @@ if i32.const 0 i32.const 48 - i32.const 141 + i32.const 140 i32.const 0 call $~lib/env/abort unreachable @@ -6634,7 +6749,7 @@ if i32.const 0 i32.const 48 - i32.const 142 + i32.const 141 i32.const 0 call $~lib/env/abort unreachable @@ -6648,7 +6763,7 @@ if i32.const 0 i32.const 48 - i32.const 143 + i32.const 142 i32.const 0 call $~lib/env/abort unreachable @@ -6662,42 +6777,52 @@ if i32.const 0 i32.const 48 - i32.const 144 + i32.const 143 i32.const 0 call $~lib/env/abort unreachable end - i32.const 0 - set_global $~argc - i32.const 256 - i32.const 0 - call $~lib/string/String#split|trampoline - set_global $std/string/sa - get_global $std/string/sa - i32.load offset=4 + i32.const 976 + set_global $std/string/str i32.const 1 - i32.eq - tee_local $0 - if (result i32) + set_global $~argc + get_global $std/string/str + i32.const 0 + call $~lib/string/String#slice|trampoline + i32.const 976 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 256 - call $~lib/string/String.__eq - else - get_local $0 + i32.const 48 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const -1 + call $~lib/string/String#slice|trampoline + i32.const 1008 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 148 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const -5 + call $~lib/string/String#slice|trampoline + i32.const 1016 + call $~lib/string/String.__eq i32.eqz if i32.const 0 @@ -6707,14 +6832,28 @@ call $~lib/env/abort unreachable end - i32.const 1 - set_global $~argc - i32.const 256 - i32.const 256 - call $~lib/string/String#split|trampoline - set_global $std/string/sa - get_global $std/string/sa - i32.load offset=4 + get_global $std/string/str + i32.const 2 + i32.const 7 + call $~lib/string/String#slice + i32.const 1032 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 150 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const -11 + i32.const -6 + call $~lib/string/String#slice + i32.const 1048 + call $~lib/string/String.__eq + i32.eqz if i32.const 0 i32.const 48 @@ -6723,37 +6862,27 @@ call $~lib/env/abort unreachable end - i32.const 1 - set_global $~argc + get_global $std/string/str + i32.const 4 + i32.const 3 + call $~lib/string/String#slice i32.const 256 - i32.const 432 - call $~lib/string/String#split|trampoline - set_global $std/string/sa - get_global $std/string/sa - i32.load offset=4 - i32.const 1 - i32.eq - tee_local $0 - if (result i32) + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 256 - call $~lib/string/String.__eq - else - get_local $0 + i32.const 48 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable end + get_global $std/string/str + i32.const 0 + i32.const -1 + call $~lib/string/String#slice + i32.const 1064 + call $~lib/string/String.__eq i32.eqz if i32.const 0 @@ -6763,10 +6892,10 @@ call $~lib/env/abort unreachable end - i32.const 1 + i32.const 0 set_global $~argc - i32.const 1096 - i32.const 1112 + i32.const 256 + i32.const 0 call $~lib/string/String#split|trampoline set_global $std/string/sa get_global $std/string/sa @@ -6774,94 +6903,8 @@ i32.const 1 i32.eq tee_local $0 - if (result i32) - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 1096 - call $~lib/string/String.__eq - else - get_local $0 - end - i32.eqz if i32.const 0 - i32.const 48 - i32.const 155 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 1 - set_global $~argc - i32.const 1096 - i32.const 432 - call $~lib/string/String#split|trampoline - set_global $std/string/sa - block (result i32) - block (result i32) - get_global $std/string/sa - i32.load offset=4 - i32.const 3 - i32.eq - tee_local $0 - if - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 280 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if - i32.const 1 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 4 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 648 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if (result i32) - i32.const 2 get_global $std/string/sa i32.load tee_local $0 @@ -6871,446 +6914,623 @@ i32.lt_u if (result i32) get_local $0 - i32.const 8 - i32.add i32.load offset=8 else unreachable end - i32.const 1120 - call $~lib/string/String.__eq - else - get_local $0 - end - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 157 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 1 - set_global $~argc - i32.const 1128 - i32.const 1152 - call $~lib/string/String#split|trampoline - set_global $std/string/sa - block (result i32) - block (result i32) - get_global $std/string/sa - i32.load offset=4 - i32.const 3 - i32.eq - tee_local $0 - if - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 280 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if - i32.const 1 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 4 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 648 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if (result i32) - i32.const 2 - get_global $std/string/sa - i32.load tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 8 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 1120 - call $~lib/string/String.__eq - else - get_local $0 - end - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 159 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 1 - set_global $~argc - i32.const 1160 - i32.const 432 - call $~lib/string/String#split|trampoline - set_global $std/string/sa - block (result i32) - block (result i32) - block (result i32) - get_global $std/string/sa - i32.load offset=4 - i32.const 4 - i32.eq - tee_local $0 - if - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 280 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if - i32.const 1 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 4 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 648 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if - i32.const 2 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 8 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 256 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if (result i32) - i32.const 3 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 12 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 1120 - call $~lib/string/String.__eq - else - get_local $0 - end - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 161 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 1 - set_global $~argc - i32.const 1176 - i32.const 432 - call $~lib/string/String#split|trampoline - set_global $std/string/sa - block (result i32) - block (result i32) - block (result i32) - get_global $std/string/sa - i32.load offset=4 - i32.const 4 - i32.eq - tee_local $0 - if - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 256 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if - i32.const 1 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 4 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 280 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if - i32.const 2 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 8 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 648 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if (result i32) - i32.const 3 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 12 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 1120 - call $~lib/string/String.__eq - else - get_local $0 - end - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 163 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 1 - set_global $~argc - i32.const 1192 - i32.const 432 - call $~lib/string/String#split|trampoline - set_global $std/string/sa - block (result i32) - block (result i32) - block (result i32) - get_global $std/string/sa - i32.load offset=4 - i32.const 4 - i32.eq - tee_local $0 - if - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 280 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if - i32.const 1 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 4 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 648 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if - i32.const 2 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 8 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 1120 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 - end - if (result i32) - i32.const 3 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 12 - i32.add - i32.load offset=8 - else - unreachable - end i32.const 256 call $~lib/string/String.__eq - else - get_local $0 + set_local $0 end + get_local $0 i32.eqz if i32.const 0 i32.const 48 - i32.const 165 + i32.const 158 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 256 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + if + i32.const 0 + i32.const 48 + i32.const 160 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 256 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 1 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 256 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 162 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 1216 + i32.const 1232 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 1 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 1216 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 164 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 1216 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 1 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 2 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 8 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 1240 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 166 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 1248 + i32.const 1272 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 1 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 2 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 8 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 1240 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 168 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 1280 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 4 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 1 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 2 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 8 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 256 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 3 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 12 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 1240 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 170 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 1296 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 4 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 256 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 1 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 2 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 8 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 3 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 12 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 1240 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 172 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1 + set_global $~argc + i32.const 1312 + i32.const 432 + call $~lib/string/String#split|trampoline + set_global $std/string/sa + get_global $std/string/sa + i32.load offset=4 + i32.const 4 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 280 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 1 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 2 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 8 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 1240 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if + i32.const 3 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 12 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 256 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 174 i32.const 0 call $~lib/env/abort unreachable @@ -7321,58 +7541,56 @@ i32.const 256 call $~lib/string/String#split|trampoline set_global $std/string/sa - block (result i32) - block (result i32) - get_global $std/string/sa - i32.load offset=4 - i32.const 3 - i32.eq - tee_local $0 - if - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 280 - call $~lib/string/String.__eq - set_local $0 - end + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) get_local $0 + i32.load offset=8 + else + unreachable end - if - i32.const 1 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 4 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 648 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 + tee_local $0 + i32.const 280 + call $~lib/string/String.__eq + set_local $0 end - if (result i32) + get_local $0 + if + i32.const 1 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if i32.const 2 get_global $std/string/sa i32.load @@ -7389,16 +7607,17 @@ else unreachable end - i32.const 1120 + tee_local $0 + i32.const 1240 call $~lib/string/String.__eq - else - get_local $0 + set_local $0 end + get_local $0 i32.eqz if i32.const 0 i32.const 48 - i32.const 167 + i32.const 176 i32.const 0 call $~lib/env/abort unreachable @@ -7413,7 +7632,7 @@ if i32.const 0 i32.const 48 - i32.const 169 + i32.const 178 i32.const 0 call $~lib/env/abort unreachable @@ -7428,7 +7647,7 @@ i32.const 1 i32.eq tee_local $0 - if (result i32) + if i32.const 0 get_global $std/string/sa i32.load @@ -7443,21 +7662,22 @@ else unreachable end + tee_local $0 i32.const 280 call $~lib/string/String.__eq - else - get_local $0 + set_local $0 end + get_local $0 i32.eqz if i32.const 0 i32.const 48 - i32.const 171 + i32.const 180 i32.const 0 call $~lib/env/abort unreachable end - i32.const 1096 + i32.const 1216 i32.const 432 i32.const 1 call $~lib/string/String#split @@ -7467,7 +7687,7 @@ i32.const 1 i32.eq tee_local $0 - if (result i32) + if i32.const 0 get_global $std/string/sa i32.load @@ -7482,16 +7702,17 @@ else unreachable end + tee_local $0 i32.const 280 call $~lib/string/String.__eq - else - get_local $0 + set_local $0 end + get_local $0 i32.eqz if i32.const 0 i32.const 48 - i32.const 173 + i32.const 182 i32.const 0 call $~lib/env/abort unreachable @@ -7501,58 +7722,56 @@ i32.const 4 call $~lib/string/String#split set_global $std/string/sa - block (result i32) - block (result i32) - get_global $std/string/sa - i32.load offset=4 - i32.const 3 - i32.eq - tee_local $0 - if - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 280 - call $~lib/string/String.__eq - set_local $0 - end + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) get_local $0 + i32.load offset=8 + else + unreachable end - if - i32.const 1 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 4 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 648 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 + tee_local $0 + i32.const 280 + call $~lib/string/String.__eq + set_local $0 end - if (result i32) + get_local $0 + if + i32.const 1 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if i32.const 2 get_global $std/string/sa i32.load @@ -7569,16 +7788,17 @@ else unreachable end - i32.const 1120 + tee_local $0 + i32.const 1240 call $~lib/string/String.__eq - else - get_local $0 + set_local $0 end + get_local $0 i32.eqz if i32.const 0 i32.const 48 - i32.const 175 + i32.const 184 i32.const 0 call $~lib/env/abort unreachable @@ -7588,58 +7808,56 @@ i32.const -1 call $~lib/string/String#split set_global $std/string/sa - block (result i32) - block (result i32) - get_global $std/string/sa - i32.load offset=4 - i32.const 3 - i32.eq - tee_local $0 - if - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 280 - call $~lib/string/String.__eq - set_local $0 - end + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) get_local $0 + i32.load offset=8 + else + unreachable end - if - i32.const 1 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 4 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 648 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 + tee_local $0 + i32.const 280 + call $~lib/string/String.__eq + set_local $0 end - if (result i32) + get_local $0 + if + i32.const 1 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if i32.const 2 get_global $std/string/sa i32.load @@ -7656,77 +7874,76 @@ else unreachable end - i32.const 1120 + tee_local $0 + i32.const 1240 call $~lib/string/String.__eq - else - get_local $0 + set_local $0 end + get_local $0 i32.eqz if i32.const 0 i32.const 48 - i32.const 177 + i32.const 186 i32.const 0 call $~lib/env/abort unreachable end - i32.const 1096 + i32.const 1216 i32.const 432 i32.const -1 call $~lib/string/String#split set_global $std/string/sa - block (result i32) - block (result i32) - get_global $std/string/sa - i32.load offset=4 - i32.const 3 - i32.eq - tee_local $0 - if - i32.const 0 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.load offset=8 - else - unreachable - end - i32.const 280 - call $~lib/string/String.__eq - set_local $0 - end + get_global $std/string/sa + i32.load offset=4 + i32.const 3 + i32.eq + tee_local $0 + if + i32.const 0 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) get_local $0 + i32.load offset=8 + else + unreachable end - if - i32.const 1 - get_global $std/string/sa - i32.load - tee_local $0 - i32.load - i32.const 2 - i32.shr_u - i32.lt_u - if (result i32) - get_local $0 - i32.const 4 - i32.add - i32.load offset=8 - else - unreachable - end - i32.const 648 - call $~lib/string/String.__eq - set_local $0 - end - get_local $0 + tee_local $0 + i32.const 280 + call $~lib/string/String.__eq + set_local $0 end - if (result i32) + get_local $0 + if + i32.const 1 + get_global $std/string/sa + i32.load + tee_local $0 + i32.load + i32.const 2 + i32.shr_u + i32.lt_u + if (result i32) + get_local $0 + i32.const 4 + i32.add + i32.load offset=8 + else + unreachable + end + tee_local $0 + i32.const 648 + call $~lib/string/String.__eq + set_local $0 + end + get_local $0 + if i32.const 2 get_global $std/string/sa i32.load @@ -7743,16 +7960,17 @@ else unreachable end - i32.const 1120 + tee_local $0 + i32.const 1240 call $~lib/string/String.__eq - else - get_local $0 + set_local $0 end + get_local $0 i32.eqz if i32.const 0 i32.const 48 - i32.const 179 + i32.const 188 i32.const 0 call $~lib/env/abort unreachable @@ -7765,7 +7983,7 @@ if i32.const 0 i32.const 48 - i32.const 181 + i32.const 190 i32.const 0 call $~lib/env/abort unreachable @@ -7778,20 +7996,20 @@ if i32.const 0 i32.const 48 - i32.const 182 + i32.const 191 i32.const 0 call $~lib/env/abort unreachable end i32.const 8 call $~lib/internal/number/itoa32 - i32.const 1728 + i32.const 1848 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 183 + i32.const 192 i32.const 0 call $~lib/env/abort unreachable @@ -7804,137 +8022,137 @@ if i32.const 0 i32.const 48 - i32.const 184 + i32.const 193 i32.const 0 call $~lib/env/abort unreachable end i32.const -1000 call $~lib/internal/number/itoa32 - i32.const 1736 + i32.const 1856 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 185 + i32.const 194 i32.const 0 call $~lib/env/abort unreachable end i32.const 1234 call $~lib/internal/number/itoa32 - i32.const 1752 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 186 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 12345 - call $~lib/internal/number/itoa32 - i32.const 1768 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 187 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 123456 - call $~lib/internal/number/itoa32 - i32.const 1784 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 188 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 1111111 - call $~lib/internal/number/itoa32 - i32.const 1800 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 189 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 1234567 - call $~lib/internal/number/itoa32 - i32.const 1824 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 190 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 2147483646 - call $~lib/internal/number/itoa32 - i32.const 1848 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 191 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 2147483647 - call $~lib/internal/number/itoa32 i32.const 1872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 192 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 12345 + call $~lib/internal/number/itoa32 + i32.const 1888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 196 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 123456 + call $~lib/internal/number/itoa32 + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 197 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1111111 + call $~lib/internal/number/itoa32 + i32.const 1920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 198 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1234567 + call $~lib/internal/number/itoa32 + i32.const 1944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 199 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483646 + call $~lib/internal/number/itoa32 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 200 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483647 + call $~lib/internal/number/itoa32 + i32.const 1992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 201 i32.const 0 call $~lib/env/abort unreachable end i32.const -2147483648 call $~lib/internal/number/itoa32 - i32.const 1896 + i32.const 2016 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 193 + i32.const 202 i32.const 0 call $~lib/env/abort unreachable end i32.const -1 call $~lib/internal/number/itoa32 - i32.const 1928 + i32.const 2048 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 194 + i32.const 203 i32.const 0 call $~lib/env/abort unreachable @@ -7947,118 +8165,14 @@ if i32.const 0 i32.const 48 - i32.const 196 + i32.const 205 i32.const 0 call $~lib/env/abort unreachable end i32.const 1000 call $~lib/internal/number/utoa32 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 197 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 2147483647 - call $~lib/internal/number/utoa32 - i32.const 1872 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 198 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const -2147483648 - call $~lib/internal/number/utoa32 - i32.const 1952 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 199 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const -1 - call $~lib/internal/number/utoa32 - i32.const 1976 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 200 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 0 - call $~lib/internal/number/utoa64 - i32.const 480 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 202 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 1234 - call $~lib/internal/number/utoa64 - i32.const 1752 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 203 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 99999999 - call $~lib/internal/number/utoa64 - i32.const 2520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 204 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 100000000 - call $~lib/internal/number/utoa64 - i32.const 2544 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 205 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 4294967295 - call $~lib/internal/number/utoa64 - i32.const 1976 + i32.const 2056 call $~lib/string/String.__eq i32.eqz if @@ -8069,9 +8183,9 @@ call $~lib/env/abort unreachable end - i64.const 68719476735 - call $~lib/internal/number/utoa64 - i32.const 2568 + i32.const 2147483647 + call $~lib/internal/number/utoa32 + i32.const 1992 call $~lib/string/String.__eq i32.eqz if @@ -8082,9 +8196,9 @@ call $~lib/env/abort unreachable end - i64.const 868719476735 - call $~lib/internal/number/utoa64 - i32.const 2600 + i32.const -2147483648 + call $~lib/internal/number/utoa32 + i32.const 2072 call $~lib/string/String.__eq i32.eqz if @@ -8095,9 +8209,9 @@ call $~lib/env/abort unreachable end - i64.const 999868719476735 - call $~lib/internal/number/utoa64 - i32.const 2632 + i32.const -1 + call $~lib/internal/number/utoa32 + i32.const 2096 call $~lib/string/String.__eq i32.eqz if @@ -8108,22 +8222,9 @@ call $~lib/env/abort unreachable end - i64.const 9999868719476735 + i64.const 0 call $~lib/internal/number/utoa64 - i32.const 2672 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 210 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 19999868719476735 - call $~lib/internal/number/utoa64 - i32.const 2712 + i32.const 480 call $~lib/string/String.__eq i32.eqz if @@ -8134,7 +8235,85 @@ call $~lib/env/abort unreachable end - i64.const -1 + i64.const 1234 + call $~lib/internal/number/utoa64 + i32.const 1872 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 212 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 99999999 + call $~lib/internal/number/utoa64 + i32.const 2640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 213 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 100000000 + call $~lib/internal/number/utoa64 + i32.const 2664 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 214 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4294967295 + call $~lib/internal/number/utoa64 + i32.const 2096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 215 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 68719476735 + call $~lib/internal/number/utoa64 + i32.const 2688 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 216 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 868719476735 + call $~lib/internal/number/utoa64 + i32.const 2720 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 217 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 999868719476735 call $~lib/internal/number/utoa64 i32.const 2752 call $~lib/string/String.__eq @@ -8142,7 +8321,46 @@ if i32.const 0 i32.const 48 - i32.const 212 + i32.const 218 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 9999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 219 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 19999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2832 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 220 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -1 + call $~lib/internal/number/utoa64 + i32.const 2872 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 221 i32.const 0 call $~lib/env/abort unreachable @@ -8155,131 +8373,14 @@ if i32.const 0 i32.const 48 - i32.const 214 + i32.const 223 i32.const 0 call $~lib/env/abort unreachable end i64.const -1234 call $~lib/internal/number/itoa64 - i32.const 2800 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 215 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 4294967295 - call $~lib/internal/number/itoa64 - i32.const 1976 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 216 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -4294967295 - call $~lib/internal/number/itoa64 - i32.const 2816 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 217 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 68719476735 - call $~lib/internal/number/itoa64 - i32.const 2568 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 218 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -68719476735 - call $~lib/internal/number/itoa64 - i32.const 2848 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 219 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -868719476735 - call $~lib/internal/number/itoa64 - i32.const 2880 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 220 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -999868719476735 - call $~lib/internal/number/itoa64 - i32.const 2912 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 221 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -19999868719476735 - call $~lib/internal/number/itoa64 - i32.const 2952 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 222 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 9223372036854775807 - call $~lib/internal/number/itoa64 - i32.const 2992 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 223 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -9223372036854775808 - call $~lib/internal/number/itoa64 - i32.const 3040 + i32.const 2920 call $~lib/string/String.__eq i32.eqz if @@ -8290,9 +8391,35 @@ call $~lib/env/abort unreachable end - f64.const 0 - call $~lib/internal/number/dtoa - i32.const 3088 + i64.const 4294967295 + call $~lib/internal/number/itoa64 + i32.const 2096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 225 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -4294967295 + call $~lib/internal/number/itoa64 + i32.const 2936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 226 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 68719476735 + call $~lib/internal/number/itoa64 + i32.const 2688 call $~lib/string/String.__eq i32.eqz if @@ -8303,9 +8430,9 @@ call $~lib/env/abort unreachable end - f64.const -0 - call $~lib/internal/number/dtoa - i32.const 3088 + i64.const -68719476735 + call $~lib/internal/number/itoa64 + i32.const 2968 call $~lib/string/String.__eq i32.eqz if @@ -8316,9 +8443,9 @@ call $~lib/env/abort unreachable end - f64.const nan:0x8000000000000 - call $~lib/internal/number/dtoa - i32.const 3104 + i64.const -868719476735 + call $~lib/internal/number/itoa64 + i32.const 3000 call $~lib/string/String.__eq i32.eqz if @@ -8329,9 +8456,9 @@ call $~lib/env/abort unreachable end - f64.const inf - call $~lib/internal/number/dtoa - i32.const 3144 + i64.const -999868719476735 + call $~lib/internal/number/itoa64 + i32.const 3032 call $~lib/string/String.__eq i32.eqz if @@ -8342,9 +8469,9 @@ call $~lib/env/abort unreachable end - f64.const -inf - call $~lib/internal/number/dtoa - i32.const 3120 + i64.const -19999868719476735 + call $~lib/internal/number/itoa64 + i32.const 3072 call $~lib/string/String.__eq i32.eqz if @@ -8355,9 +8482,9 @@ call $~lib/env/abort unreachable end - f64.const 2.220446049250313e-16 - call $~lib/internal/number/dtoa - i32.const 4536 + i64.const 9223372036854775807 + call $~lib/internal/number/itoa64 + i32.const 3112 call $~lib/string/String.__eq i32.eqz if @@ -8368,9 +8495,9 @@ call $~lib/env/abort unreachable end - f64.const -2.220446049250313e-16 - call $~lib/internal/number/dtoa - i32.const 4584 + i64.const -9223372036854775808 + call $~lib/internal/number/itoa64 + i32.const 3160 call $~lib/string/String.__eq i32.eqz if @@ -8381,35 +8508,9 @@ call $~lib/env/abort unreachable end - f64.const 1797693134862315708145274e284 + f64.const 0 call $~lib/internal/number/dtoa - i32.const 4632 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 234 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const -1797693134862315708145274e284 - call $~lib/internal/number/dtoa - i32.const 4688 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 235 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 4185580496821356722454785e274 - call $~lib/internal/number/dtoa - i32.const 4744 + i32.const 3208 call $~lib/string/String.__eq i32.eqz if @@ -8420,9 +8521,9 @@ call $~lib/env/abort unreachable end - f64.const 2.2250738585072014e-308 + f64.const -0 call $~lib/internal/number/dtoa - i32.const 4792 + i32.const 3208 call $~lib/string/String.__eq i32.eqz if @@ -8433,9 +8534,35 @@ call $~lib/env/abort unreachable end - f64.const 4.940656e-318 + f64.const nan:0x8000000000000 call $~lib/internal/number/dtoa - i32.const 4848 + i32.const 3224 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 238 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + call $~lib/internal/number/dtoa + i32.const 3264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 239 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const -inf + call $~lib/internal/number/dtoa + i32.const 3240 call $~lib/string/String.__eq i32.eqz if @@ -8446,9 +8573,9 @@ call $~lib/env/abort unreachable end - f64.const 9060801153433600 + f64.const 2.220446049250313e-16 call $~lib/internal/number/dtoa - i32.const 4880 + i32.const 4656 call $~lib/string/String.__eq i32.eqz if @@ -8459,9 +8586,9 @@ call $~lib/env/abort unreachable end - f64.const 4708356024711512064 + f64.const -2.220446049250313e-16 call $~lib/internal/number/dtoa - i32.const 4920 + i32.const 4704 call $~lib/string/String.__eq i32.eqz if @@ -8472,9 +8599,9 @@ call $~lib/env/abort unreachable end - f64.const 9409340012568248320 + f64.const 1797693134862315708145274e284 call $~lib/internal/number/dtoa - i32.const 4968 + i32.const 4752 call $~lib/string/String.__eq i32.eqz if @@ -8485,9 +8612,9 @@ call $~lib/env/abort unreachable end - f64.const 5e-324 + f64.const -1797693134862315708145274e284 call $~lib/internal/number/dtoa - i32.const 5016 + i32.const 4808 call $~lib/string/String.__eq i32.eqz if @@ -8498,9 +8625,48 @@ call $~lib/env/abort unreachable end - f64.const 1 + f64.const 4185580496821356722454785e274 call $~lib/internal/number/dtoa - i32.const 5032 + i32.const 4864 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 245 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072014e-308 + call $~lib/internal/number/dtoa + i32.const 4912 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 246 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.940656e-318 + call $~lib/internal/number/dtoa + i32.const 4968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9060801153433600 + call $~lib/internal/number/dtoa + i32.const 5000 call $~lib/string/String.__eq i32.eqz if @@ -8511,6 +8677,58 @@ call $~lib/env/abort unreachable end + f64.const 4708356024711512064 + call $~lib/internal/number/dtoa + i32.const 5040 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 251 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9409340012568248320 + call $~lib/internal/number/dtoa + i32.const 5088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 252 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + call $~lib/internal/number/dtoa + i32.const 5136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 253 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + call $~lib/internal/number/dtoa + i32.const 5152 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 259 + i32.const 0 + call $~lib/env/abort + unreachable + end f64.const 0.1 call $~lib/internal/number/dtoa i32.const 592 @@ -8519,118 +8737,27 @@ if i32.const 0 i32.const 48 - i32.const 251 + i32.const 260 i32.const 0 call $~lib/env/abort unreachable end f64.const -1 call $~lib/internal/number/dtoa - i32.const 5048 + i32.const 5168 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 252 + i32.const 261 i32.const 0 call $~lib/env/abort unreachable end f64.const -0.1 call $~lib/internal/number/dtoa - i32.const 5064 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 253 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1e6 - call $~lib/internal/number/dtoa - i32.const 5080 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 255 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1e-06 - call $~lib/internal/number/dtoa - i32.const 5104 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 256 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const -1e6 - call $~lib/internal/number/dtoa - i32.const 5128 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 257 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const -1e-06 - call $~lib/internal/number/dtoa - i32.const 5152 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 258 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1e7 - call $~lib/internal/number/dtoa - i32.const 5176 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 259 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1e-07 - call $~lib/internal/number/dtoa - i32.const 5200 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 260 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1.e+308 - call $~lib/internal/number/dtoa - i32.const 5216 + i32.const 5184 call $~lib/string/String.__eq i32.eqz if @@ -8641,22 +8768,9 @@ call $~lib/env/abort unreachable end - f64.const -1.e+308 + f64.const 1e6 call $~lib/internal/number/dtoa - i32.const 5232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 263 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const inf - call $~lib/internal/number/dtoa - i32.const 3144 + i32.const 5200 call $~lib/string/String.__eq i32.eqz if @@ -8667,9 +8781,9 @@ call $~lib/env/abort unreachable end - f64.const -inf + f64.const 1e-06 call $~lib/internal/number/dtoa - i32.const 3120 + i32.const 5224 call $~lib/string/String.__eq i32.eqz if @@ -8680,9 +8794,9 @@ call $~lib/env/abort unreachable end - f64.const 1e-308 + f64.const -1e6 call $~lib/internal/number/dtoa - i32.const 5256 + i32.const 5248 call $~lib/string/String.__eq i32.eqz if @@ -8693,7 +8807,7 @@ call $~lib/env/abort unreachable end - f64.const -1e-308 + f64.const -1e-06 call $~lib/internal/number/dtoa i32.const 5272 call $~lib/string/String.__eq @@ -8706,7 +8820,7 @@ call $~lib/env/abort unreachable end - f64.const 1e-323 + f64.const 1e7 call $~lib/internal/number/dtoa i32.const 5296 call $~lib/string/String.__eq @@ -8719,9 +8833,9 @@ call $~lib/env/abort unreachable end - f64.const -1e-323 + f64.const 1e-07 call $~lib/internal/number/dtoa - i32.const 5312 + i32.const 5320 call $~lib/string/String.__eq i32.eqz if @@ -8732,22 +8846,22 @@ call $~lib/env/abort unreachable end - f64.const 0 + f64.const 1.e+308 call $~lib/internal/number/dtoa - i32.const 3088 + i32.const 5336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 270 + i32.const 271 i32.const 0 call $~lib/env/abort unreachable end - f64.const 4294967272 + f64.const -1.e+308 call $~lib/internal/number/dtoa - i32.const 5336 + i32.const 5352 call $~lib/string/String.__eq i32.eqz if @@ -8758,9 +8872,9 @@ call $~lib/env/abort unreachable end - f64.const 1.2312145673456234e-08 + f64.const inf call $~lib/internal/number/dtoa - i32.const 5368 + i32.const 3264 call $~lib/string/String.__eq i32.eqz if @@ -8771,9 +8885,22 @@ call $~lib/env/abort unreachable end - f64.const 555555555.5555556 + f64.const -inf call $~lib/internal/number/dtoa - i32.const 5416 + i32.const 3240 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 274 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-308 + call $~lib/internal/number/dtoa + i32.const 5376 call $~lib/string/String.__eq i32.eqz if @@ -8784,9 +8911,9 @@ call $~lib/env/abort unreachable end - f64.const 0.9999999999999999 + f64.const -1e-308 call $~lib/internal/number/dtoa - i32.const 5456 + i32.const 5392 call $~lib/string/String.__eq i32.eqz if @@ -8797,9 +8924,9 @@ call $~lib/env/abort unreachable end - f64.const 1 + f64.const 1e-323 call $~lib/internal/number/dtoa - i32.const 5032 + i32.const 5416 call $~lib/string/String.__eq i32.eqz if @@ -8810,9 +8937,9 @@ call $~lib/env/abort unreachable end - f64.const 12.34 + f64.const -1e-323 call $~lib/internal/number/dtoa - i32.const 5496 + i32.const 5432 call $~lib/string/String.__eq i32.eqz if @@ -8823,22 +8950,22 @@ call $~lib/env/abort unreachable end - f64.const 0.3333333333333333 + f64.const 0 call $~lib/internal/number/dtoa - i32.const 5512 + i32.const 3208 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 280 + i32.const 279 i32.const 0 call $~lib/env/abort unreachable end - f64.const 1234e17 + f64.const 4294967272 call $~lib/internal/number/dtoa - i32.const 5552 + i32.const 5456 call $~lib/string/String.__eq i32.eqz if @@ -8849,9 +8976,9 @@ call $~lib/env/abort unreachable end - f64.const 1234e18 + f64.const 1.2312145673456234e-08 call $~lib/internal/number/dtoa - i32.const 5608 + i32.const 5488 call $~lib/string/String.__eq i32.eqz if @@ -8862,22 +8989,9 @@ call $~lib/env/abort unreachable end - f64.const 2.71828 + f64.const 555555555.5555556 call $~lib/internal/number/dtoa - i32.const 5632 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 283 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 0.0271828 - call $~lib/internal/number/dtoa - i32.const 5656 + i32.const 5536 call $~lib/string/String.__eq i32.eqz if @@ -8888,9 +9002,9 @@ call $~lib/env/abort unreachable end - f64.const 271.828 + f64.const 0.9999999999999999 call $~lib/internal/number/dtoa - i32.const 5680 + i32.const 5576 call $~lib/string/String.__eq i32.eqz if @@ -8901,9 +9015,9 @@ call $~lib/env/abort unreachable end - f64.const 1.1e+128 + f64.const 1 call $~lib/internal/number/dtoa - i32.const 5704 + i32.const 5152 call $~lib/string/String.__eq i32.eqz if @@ -8914,9 +9028,9 @@ call $~lib/env/abort unreachable end - f64.const 1.1e-64 + f64.const 12.34 call $~lib/internal/number/dtoa - i32.const 5728 + i32.const 5616 call $~lib/string/String.__eq i32.eqz if @@ -8927,7 +9041,46 @@ call $~lib/env/abort unreachable end - f64.const 0.000035689 + f64.const 0.3333333333333333 + call $~lib/internal/number/dtoa + i32.const 5632 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 289 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1234e17 + call $~lib/internal/number/dtoa + i32.const 5672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 290 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1234e18 + call $~lib/internal/number/dtoa + i32.const 5728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 291 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.71828 call $~lib/internal/number/dtoa i32.const 5752 call $~lib/string/String.__eq @@ -8935,13 +9088,78 @@ if i32.const 0 i32.const 48 - i32.const 288 + i32.const 292 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.0271828 + call $~lib/internal/number/dtoa + i32.const 5776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 293 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 271.828 + call $~lib/internal/number/dtoa + i32.const 5800 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 294 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1e+128 + call $~lib/internal/number/dtoa + i32.const 5824 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 295 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1e-64 + call $~lib/internal/number/dtoa + i32.const 5848 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 296 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.000035689 + call $~lib/internal/number/dtoa + i32.const 5872 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 297 i32.const 0 call $~lib/env/abort unreachable end ) - (func $null (; 54 ;) (type $v) + (func $null (; 56 ;) (type $v) nop ) ) diff --git a/tests/compiler/std/string.ts b/tests/compiler/std/string.ts index e3008af0..d29fba22 100644 --- a/tests/compiler/std/string.ts +++ b/tests/compiler/std/string.ts @@ -4,7 +4,6 @@ import { itoa32, utoa64, itoa64, - itoa, dtoa } from "internal/number"; @@ -143,6 +142,16 @@ assert("a".repeat(5) == "aaaaa"); assert("a".repeat(6) == "aaaaaa"); assert("a".repeat(7) == "aaaaaaa"); +// test cases for slice method +str = "abcdefghijklmn"; +assert(str.slice(0) == "abcdefghijklmn"); +assert(str.slice(-1) == "n"); +assert(str.slice(-5) == "jklmn"); +assert(str.slice(2, 7) == "cdefg"); +assert(str.slice(-11, -6) == "defgh"); +assert(str.slice(4, 3) == ""); +assert(str.slice(0, -1) == "abcdefghijklm"); + var sa: string[]; sa = "".split(); diff --git a/tests/compiler/std/string.untouched.wat b/tests/compiler/std/string.untouched.wat index 842b2584..d36ac4f3 100644 --- a/tests/compiler/std/string.untouched.wat +++ b/tests/compiler/std/string.untouched.wat @@ -76,102 +76,108 @@ (data (i32.const 920) "\05\00\00\00a\00a\00a\00a\00a\00") (data (i32.const 936) "\06\00\00\00a\00a\00a\00a\00a\00a\00") (data (i32.const 952) "\07\00\00\00a\00a\00a\00a\00a\00a\00a\00") - (data (i32.const 976) "\0d\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00") - (data (i32.const 1008) "\1c\00\00\00~\00l\00i\00b\00/\00i\00n\00t\00e\00r\00n\00a\00l\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00") - (data (i32.const 1072) "\04\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00") - (data (i32.const 1088) "0\04\00\00\01\00\00\00") - (data (i32.const 1096) "\05\00\00\00a\00,\00b\00,\00c\00") - (data (i32.const 1112) "\01\00\00\00.\00") - (data (i32.const 1120) "\01\00\00\00c\00") - (data (i32.const 1128) "\07\00\00\00a\00,\00 \00b\00,\00 \00c\00") - (data (i32.const 1152) "\02\00\00\00,\00 \00") - (data (i32.const 1160) "\06\00\00\00a\00,\00b\00,\00,\00c\00") - (data (i32.const 1176) "\06\00\00\00,\00a\00,\00b\00,\00c\00") - (data (i32.const 1192) "\06\00\00\00a\00,\00b\00,\00c\00,\00") - (data (i32.const 1208) "\90\01\00\00\00\00\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1720) "\b8\04\00\00d\00\00\00") - (data (i32.const 1728) "\01\00\00\008\00") - (data (i32.const 1736) "\05\00\00\00-\001\000\000\000\00") - (data (i32.const 1752) "\04\00\00\001\002\003\004\00") - (data (i32.const 1768) "\05\00\00\001\002\003\004\005\00") - (data (i32.const 1784) "\06\00\00\001\002\003\004\005\006\00") - (data (i32.const 1800) "\07\00\00\001\001\001\001\001\001\001\00") - (data (i32.const 1824) "\07\00\00\001\002\003\004\005\006\007\00") - (data (i32.const 1848) "\n\00\00\002\001\004\007\004\008\003\006\004\006\00") - (data (i32.const 1872) "\n\00\00\002\001\004\007\004\008\003\006\004\007\00") - (data (i32.const 1896) "\0b\00\00\00-\002\001\004\007\004\008\003\006\004\008\00") - (data (i32.const 1928) "\02\00\00\00-\001\00") - (data (i32.const 1936) "\04\00\00\001\000\000\000\00") - (data (i32.const 1952) "\n\00\00\002\001\004\007\004\008\003\006\004\008\00") - (data (i32.const 1976) "\n\00\00\004\002\009\004\009\006\007\002\009\005\00") - (data (i32.const 2000) "\90\01\00\00\00\00\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2512) "\d0\07\00\00d\00\00\00") - (data (i32.const 2520) "\08\00\00\009\009\009\009\009\009\009\009\00") - (data (i32.const 2544) "\t\00\00\001\000\000\000\000\000\000\000\000\00") - (data (i32.const 2568) "\0b\00\00\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2600) "\0c\00\00\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2632) "\0f\00\00\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2672) "\10\00\00\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2712) "\11\00\00\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2752) "\14\00\00\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00") - (data (i32.const 2800) "\05\00\00\00-\001\002\003\004\00") - (data (i32.const 2816) "\0b\00\00\00-\004\002\009\004\009\006\007\002\009\005\00") - (data (i32.const 2848) "\0c\00\00\00-\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2880) "\0d\00\00\00-\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2912) "\10\00\00\00-\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2952) "\12\00\00\00-\001\009\009\009\009\008\006\008\007\001\009\004\007\006\007\003\005\00") - (data (i32.const 2992) "\13\00\00\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00") - (data (i32.const 3040) "\14\00\00\00-\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\008\00") - (data (i32.const 3088) "\03\00\00\000\00.\000\00") - (data (i32.const 3104) "\03\00\00\00N\00a\00N\00") - (data (i32.const 3120) "\t\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 3144) "\08\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 3168) "\b8\02\00\00\00\00\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\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#constructor (; 38 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 40 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4102,7 +4210,7 @@ i32.gt_u if i32.const 0 - i32.const 976 + i32.const 1096 i32.const 45 i32.const 39 call $~lib/env/abort @@ -4151,7 +4259,7 @@ call $~lib/internal/memory/memset get_local $0 ) - (func $~lib/array/Array#__unchecked_set (; 39 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__unchecked_set (; 41 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) get_local $0 @@ -4169,10 +4277,10 @@ get_local $2 i32.store offset=8 ) - (func $~lib/allocator/arena/__memory_free (; 40 ;) (type $iv) (param $0 i32) + (func $~lib/allocator/arena/__memory_free (; 42 ;) (type $iv) (param $0 i32) nop ) - (func $~lib/internal/arraybuffer/reallocateUnsafe (; 41 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/internal/arraybuffer/reallocateUnsafe (; 43 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4190,7 +4298,7 @@ i32.eqz if i32.const 0 - i32.const 1008 + i32.const 1128 i32.const 40 i32.const 4 call $~lib/env/abort @@ -4261,7 +4369,7 @@ i32.eqz if i32.const 0 - i32.const 1008 + i32.const 1128 i32.const 62 i32.const 4 call $~lib/env/abort @@ -4274,7 +4382,7 @@ end get_local $0 ) - (func $~lib/array/Array#push (; 42 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 44 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4304,7 +4412,7 @@ i32.ge_u if i32.const 0 - i32.const 976 + i32.const 1096 i32.const 184 i32.const 42 call $~lib/env/abort @@ -4336,7 +4444,7 @@ i32.store offset=8 get_local $5 ) - (func $~lib/string/String#split (; 43 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split (; 45 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4357,7 +4465,7 @@ if i32.const 0 i32.const 80 - i32.const 417 + i32.const 428 i32.const 4 call $~lib/env/abort unreachable @@ -4475,7 +4583,7 @@ get_local $4 i32.eqz if - i32.const 1088 + i32.const 1208 return end end @@ -4591,7 +4699,7 @@ end get_local $10 ) - (func $~lib/string/String#split|trampoline (; 44 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#split|trampoline (; 46 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) block $2of2 block $1of2 block $0of2 @@ -4612,7 +4720,7 @@ get_local $2 call $~lib/string/String#split ) - (func $~lib/array/Array#__get (; 45 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 47 ;) (type $iii) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) get_local $0 @@ -4639,7 +4747,7 @@ unreachable end ) - (func $~lib/internal/number/decimalCount32 (; 46 ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/decimalCount32 (; 48 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) get_local $0 i32.const 100000 @@ -4708,7 +4816,7 @@ unreachable unreachable ) - (func $~lib/internal/number/utoa32_lut (; 47 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/internal/number/utoa32_lut (; 49 ;) (type $iiiv) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4718,7 +4826,7 @@ (local $9 i64) (local $10 i64) block $~lib/internal/number/DIGITS|inlined.0 (result i32) - i32.const 1720 + i32.const 1840 end i32.load set_local $3 @@ -4878,7 +4986,7 @@ i32.store16 offset=4 end ) - (func $~lib/internal/number/itoa32 (; 48 ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/itoa32 (; 50 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4919,7 +5027,7 @@ end get_local $3 ) - (func $~lib/internal/number/utoa32 (; 49 ;) (type $ii) (param $0 i32) (result i32) + (func $~lib/internal/number/utoa32 (; 51 ;) (type $ii) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) get_local $0 @@ -4940,7 +5048,7 @@ call $~lib/internal/number/utoa32_lut get_local $2 ) - (func $~lib/internal/number/decimalCount64 (; 50 ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/decimalCount64 (; 52 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) get_local $0 i64.const 1000000000000000 @@ -5009,7 +5117,7 @@ unreachable unreachable ) - (func $~lib/internal/number/utoa64_lut (; 51 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/internal/number/utoa64_lut (; 53 ;) (type $iIiv) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -5023,7 +5131,7 @@ (local $13 i64) (local $14 i64) block $~lib/internal/number/DIGITS|inlined.1 (result i32) - i32.const 2512 + i32.const 2632 end i32.load set_local $3 @@ -5164,7 +5272,7 @@ get_local $2 call $~lib/internal/number/utoa32_lut ) - (func $~lib/internal/number/utoa64 (; 52 ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/utoa64 (; 54 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5206,7 +5314,7 @@ end get_local $1 ) - (func $~lib/internal/number/itoa64 (; 53 ;) (type $Ii) (param $0 i64) (result i32) + (func $~lib/internal/number/itoa64 (; 55 ;) (type $Ii) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5270,19 +5378,19 @@ end get_local $2 ) - (func $~lib/builtins/isFinite (; 54 ;) (type $Fi) (param $0 f64) (result i32) + (func $~lib/builtins/isFinite (; 56 ;) (type $Fi) (param $0 f64) (result i32) get_local $0 get_local $0 f64.sub f64.const 0 f64.eq ) - (func $~lib/builtins/isNaN (; 55 ;) (type $Fi) (param $0 f64) (result i32) + (func $~lib/builtins/isNaN (; 57 ;) (type $Fi) (param $0 f64) (result i32) get_local $0 get_local $0 f64.ne ) - (func $~lib/internal/number/genDigits (; 56 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/internal/number/genDigits (; 58 ;) (type $iIiIiIii) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -5334,7 +5442,7 @@ get_local $6 set_local $15 block $~lib/internal/number/POWERS10|inlined.0 (result i32) - i32.const 4528 + i32.const 4648 end i32.load set_local $16 @@ -5838,7 +5946,7 @@ end get_local $15 ) - (func $~lib/internal/number/prettify (; 57 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/internal/number/prettify (; 59 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6182,7 +6290,7 @@ unreachable unreachable ) - (func $~lib/internal/number/dtoa_core (; 58 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/internal/number/dtoa_core (; 60 ;) (type $iFi) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i64) (local $4 i32) @@ -6339,12 +6447,12 @@ i32.sub set_global $~lib/internal/number/_K block $~lib/internal/number/FRC_POWERS|inlined.0 (result i32) - i32.const 4192 + i32.const 4312 end i32.load set_local $12 block $~lib/internal/number/EXP_POWERS|inlined.0 (result i32) - i32.const 4456 + i32.const 4576 end i32.load set_local $13 @@ -6621,7 +6729,7 @@ get_local $2 i32.add ) - (func $~lib/string/String#substring (; 59 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 61 ;) (type $iiii) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6731,7 +6839,7 @@ call $~lib/internal/string/copyUnsafe get_local $10 ) - (func $~lib/internal/number/dtoa (; 60 ;) (type $Fi) (param $0 f64) (result i32) + (func $~lib/internal/number/dtoa (; 62 ;) (type $Fi) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6739,7 +6847,7 @@ f64.const 0 f64.eq if - i32.const 3088 + i32.const 3208 return end get_local $0 @@ -6749,11 +6857,11 @@ get_local $0 call $~lib/builtins/isNaN if - i32.const 3104 + i32.const 3224 return end - i32.const 3120 - i32.const 3144 + i32.const 3240 + i32.const 3264 get_local $0 f64.const 0 f64.lt @@ -6793,7 +6901,7 @@ end get_local $3 ) - (func $start (; 61 ;) (type $v) + (func $start (; 63 ;) (type $v) (local $0 i32) (local $1 i32) (local $2 i32) @@ -6814,7 +6922,7 @@ if i32.const 0 i32.const 48 - i32.const 17 + i32.const 16 i32.const 0 call $~lib/env/abort unreachable @@ -6827,7 +6935,7 @@ if i32.const 0 i32.const 48 - i32.const 19 + i32.const 18 i32.const 0 call $~lib/env/abort unreachable @@ -6841,7 +6949,7 @@ if i32.const 0 i32.const 48 - i32.const 20 + i32.const 19 i32.const 0 call $~lib/env/abort unreachable @@ -6854,7 +6962,7 @@ if i32.const 0 i32.const 48 - i32.const 22 + i32.const 21 i32.const 0 call $~lib/env/abort unreachable @@ -6867,7 +6975,7 @@ if i32.const 0 i32.const 48 - i32.const 23 + i32.const 22 i32.const 0 call $~lib/env/abort unreachable @@ -6882,7 +6990,7 @@ if i32.const 0 i32.const 48 - i32.const 24 + i32.const 23 i32.const 0 call $~lib/env/abort unreachable @@ -6895,7 +7003,7 @@ if i32.const 0 i32.const 48 - i32.const 26 + i32.const 25 i32.const 0 call $~lib/env/abort unreachable @@ -6908,7 +7016,7 @@ if i32.const 0 i32.const 48 - i32.const 27 + i32.const 26 i32.const 0 call $~lib/env/abort unreachable @@ -6919,7 +7027,7 @@ if i32.const 184 i32.const 48 - i32.const 28 + i32.const 27 i32.const 0 call $~lib/env/abort unreachable @@ -6932,7 +7040,7 @@ if i32.const 0 i32.const 48 - i32.const 30 + i32.const 29 i32.const 0 call $~lib/env/abort unreachable @@ -6949,7 +7057,7 @@ if i32.const 0 i32.const 48 - i32.const 31 + i32.const 30 i32.const 0 call $~lib/env/abort unreachable @@ -6974,7 +7082,7 @@ if i32.const 0 i32.const 48 - i32.const 32 + i32.const 31 i32.const 0 call $~lib/env/abort unreachable @@ -6993,7 +7101,7 @@ if i32.const 0 i32.const 48 - i32.const 34 + i32.const 33 i32.const 0 call $~lib/env/abort unreachable @@ -7012,7 +7120,7 @@ if i32.const 0 i32.const 48 - i32.const 35 + i32.const 34 i32.const 0 call $~lib/env/abort unreachable @@ -7031,7 +7139,7 @@ if i32.const 0 i32.const 48 - i32.const 36 + i32.const 35 i32.const 0 call $~lib/env/abort unreachable @@ -7046,7 +7154,7 @@ if i32.const 0 i32.const 48 - i32.const 37 + i32.const 36 i32.const 0 call $~lib/env/abort unreachable @@ -7061,7 +7169,7 @@ if i32.const 0 i32.const 48 - i32.const 38 + i32.const 37 i32.const 0 call $~lib/env/abort unreachable @@ -7080,7 +7188,7 @@ if i32.const 0 i32.const 48 - i32.const 39 + i32.const 38 i32.const 0 call $~lib/env/abort unreachable @@ -7095,7 +7203,7 @@ if i32.const 0 i32.const 48 - i32.const 40 + i32.const 39 i32.const 0 call $~lib/env/abort unreachable @@ -7110,7 +7218,7 @@ if i32.const 0 i32.const 48 - i32.const 41 + i32.const 40 i32.const 0 call $~lib/env/abort unreachable @@ -7129,7 +7237,7 @@ if i32.const 0 i32.const 48 - i32.const 43 + i32.const 42 i32.const 0 call $~lib/env/abort unreachable @@ -7148,7 +7256,7 @@ if i32.const 0 i32.const 48 - i32.const 44 + i32.const 43 i32.const 0 call $~lib/env/abort unreachable @@ -7167,7 +7275,7 @@ if i32.const 0 i32.const 48 - i32.const 45 + i32.const 44 i32.const 0 call $~lib/env/abort unreachable @@ -7182,7 +7290,7 @@ if i32.const 0 i32.const 48 - i32.const 46 + i32.const 45 i32.const 0 call $~lib/env/abort unreachable @@ -7197,7 +7305,7 @@ if i32.const 0 i32.const 48 - i32.const 47 + i32.const 46 i32.const 0 call $~lib/env/abort unreachable @@ -7216,7 +7324,7 @@ if i32.const 0 i32.const 48 - i32.const 48 + i32.const 47 i32.const 0 call $~lib/env/abort unreachable @@ -7231,7 +7339,7 @@ if i32.const 0 i32.const 48 - i32.const 49 + i32.const 48 i32.const 0 call $~lib/env/abort unreachable @@ -7246,7 +7354,7 @@ if i32.const 0 i32.const 48 - i32.const 50 + i32.const 49 i32.const 0 call $~lib/env/abort unreachable @@ -7261,7 +7369,7 @@ if i32.const 0 i32.const 48 - i32.const 52 + i32.const 51 i32.const 0 call $~lib/env/abort unreachable @@ -7276,7 +7384,7 @@ if i32.const 0 i32.const 48 - i32.const 53 + i32.const 52 i32.const 0 call $~lib/env/abort unreachable @@ -7288,6 +7396,21 @@ i32.const 0 i32.eq i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 53 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + get_global $std/string/str + i32.const 0 + call $~lib/string/String#indexOf + i32.const 0 + i32.eq + i32.eqz if i32.const 0 i32.const 48 @@ -7297,7 +7420,7 @@ unreachable end get_global $std/string/str - get_global $std/string/str + i32.const 256 i32.const 0 call $~lib/string/String#indexOf i32.const 0 @@ -7312,21 +7435,6 @@ unreachable end get_global $std/string/str - i32.const 256 - i32.const 0 - call $~lib/string/String#indexOf - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 56 - i32.const 0 - call $~lib/env/abort - unreachable - end - get_global $std/string/str i32.const 432 i32.const 0 call $~lib/string/String#indexOf @@ -7336,7 +7444,7 @@ if i32.const 0 i32.const 48 - i32.const 57 + i32.const 56 i32.const 0 call $~lib/env/abort unreachable @@ -7351,7 +7459,7 @@ if i32.const 0 i32.const 48 - i32.const 58 + i32.const 57 i32.const 0 call $~lib/env/abort unreachable @@ -7366,7 +7474,7 @@ if i32.const 0 i32.const 48 - i32.const 59 + i32.const 58 i32.const 0 call $~lib/env/abort unreachable @@ -7381,7 +7489,7 @@ if i32.const 0 i32.const 48 - i32.const 60 + i32.const 59 i32.const 0 call $~lib/env/abort unreachable @@ -7396,7 +7504,7 @@ if i32.const 0 i32.const 48 - i32.const 61 + i32.const 60 i32.const 0 call $~lib/env/abort unreachable @@ -7415,7 +7523,7 @@ if i32.const 0 i32.const 48 - i32.const 63 + i32.const 62 i32.const 0 call $~lib/env/abort unreachable @@ -7434,7 +7542,7 @@ if i32.const 0 i32.const 48 - i32.const 64 + i32.const 63 i32.const 0 call $~lib/env/abort unreachable @@ -7454,7 +7562,7 @@ if i32.const 0 i32.const 48 - i32.const 65 + i32.const 64 i32.const 0 call $~lib/env/abort unreachable @@ -7473,7 +7581,7 @@ if i32.const 0 i32.const 48 - i32.const 66 + i32.const 65 i32.const 0 call $~lib/env/abort unreachable @@ -7492,7 +7600,7 @@ if i32.const 0 i32.const 48 - i32.const 67 + i32.const 66 i32.const 0 call $~lib/env/abort unreachable @@ -7511,7 +7619,7 @@ if i32.const 0 i32.const 48 - i32.const 68 + i32.const 67 i32.const 0 call $~lib/env/abort unreachable @@ -7526,7 +7634,7 @@ if i32.const 0 i32.const 48 - i32.const 69 + i32.const 68 i32.const 0 call $~lib/env/abort unreachable @@ -7541,7 +7649,7 @@ if i32.const 0 i32.const 48 - i32.const 70 + i32.const 69 i32.const 0 call $~lib/env/abort unreachable @@ -7556,7 +7664,7 @@ if i32.const 0 i32.const 48 - i32.const 71 + i32.const 70 i32.const 0 call $~lib/env/abort unreachable @@ -7571,7 +7679,7 @@ if i32.const 0 i32.const 48 - i32.const 72 + i32.const 71 i32.const 0 call $~lib/env/abort unreachable @@ -7586,7 +7694,7 @@ if i32.const 0 i32.const 48 - i32.const 73 + i32.const 72 i32.const 0 call $~lib/env/abort unreachable @@ -7600,7 +7708,7 @@ if i32.const 0 i32.const 48 - i32.const 79 + i32.const 78 i32.const 0 call $~lib/env/abort unreachable @@ -7614,7 +7722,7 @@ if i32.const 0 i32.const 48 - i32.const 80 + i32.const 79 i32.const 0 call $~lib/env/abort unreachable @@ -7628,7 +7736,7 @@ if i32.const 0 i32.const 48 - i32.const 81 + i32.const 80 i32.const 0 call $~lib/env/abort unreachable @@ -7642,7 +7750,7 @@ if i32.const 0 i32.const 48 - i32.const 82 + i32.const 81 i32.const 0 call $~lib/env/abort unreachable @@ -7656,7 +7764,7 @@ if i32.const 0 i32.const 48 - i32.const 83 + i32.const 82 i32.const 0 call $~lib/env/abort unreachable @@ -7670,7 +7778,7 @@ if i32.const 0 i32.const 48 - i32.const 84 + i32.const 83 i32.const 0 call $~lib/env/abort unreachable @@ -7684,7 +7792,7 @@ if i32.const 0 i32.const 48 - i32.const 85 + i32.const 84 i32.const 0 call $~lib/env/abort unreachable @@ -7698,7 +7806,7 @@ if i32.const 0 i32.const 48 - i32.const 86 + i32.const 85 i32.const 0 call $~lib/env/abort unreachable @@ -7711,7 +7819,7 @@ if i32.const 0 i32.const 48 - i32.const 88 + i32.const 87 i32.const 0 call $~lib/env/abort unreachable @@ -7724,7 +7832,7 @@ if i32.const 0 i32.const 48 - i32.const 89 + i32.const 88 i32.const 0 call $~lib/env/abort unreachable @@ -7737,7 +7845,7 @@ if i32.const 0 i32.const 48 - i32.const 90 + i32.const 89 i32.const 0 call $~lib/env/abort unreachable @@ -7750,7 +7858,7 @@ if i32.const 0 i32.const 48 - i32.const 91 + i32.const 90 i32.const 0 call $~lib/env/abort unreachable @@ -7763,7 +7871,7 @@ if i32.const 0 i32.const 48 - i32.const 92 + i32.const 91 i32.const 0 call $~lib/env/abort unreachable @@ -7779,7 +7887,7 @@ if i32.const 0 i32.const 48 - i32.const 95 + i32.const 94 i32.const 0 call $~lib/env/abort unreachable @@ -7791,7 +7899,7 @@ if i32.const 0 i32.const 48 - i32.const 96 + i32.const 95 i32.const 0 call $~lib/env/abort unreachable @@ -7803,7 +7911,7 @@ if i32.const 0 i32.const 48 - i32.const 97 + i32.const 96 i32.const 0 call $~lib/env/abort unreachable @@ -7815,7 +7923,7 @@ if i32.const 0 i32.const 48 - i32.const 98 + i32.const 97 i32.const 0 call $~lib/env/abort unreachable @@ -7824,6 +7932,18 @@ i32.const 256 call $~lib/string/String.__ne i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 98 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 280 + i32.const 648 + call $~lib/string/String.__ne + i32.eqz if i32.const 0 i32.const 48 @@ -7833,25 +7953,13 @@ unreachable end i32.const 280 - i32.const 648 - call $~lib/string/String.__ne - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 100 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 280 i32.const 280 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 101 + i32.const 100 i32.const 0 call $~lib/env/abort unreachable @@ -7863,7 +7971,7 @@ if i32.const 0 i32.const 48 - i32.const 102 + i32.const 101 i32.const 0 call $~lib/env/abort unreachable @@ -7875,7 +7983,7 @@ if i32.const 0 i32.const 48 - i32.const 103 + i32.const 102 i32.const 0 call $~lib/env/abort unreachable @@ -7887,7 +7995,7 @@ if i32.const 0 i32.const 48 - i32.const 104 + i32.const 103 i32.const 0 call $~lib/env/abort unreachable @@ -7899,7 +8007,7 @@ if i32.const 0 i32.const 48 - i32.const 105 + i32.const 104 i32.const 0 call $~lib/env/abort unreachable @@ -7911,7 +8019,7 @@ if i32.const 0 i32.const 48 - i32.const 106 + i32.const 105 i32.const 0 call $~lib/env/abort unreachable @@ -7923,7 +8031,7 @@ if i32.const 0 i32.const 48 - i32.const 107 + i32.const 106 i32.const 0 call $~lib/env/abort unreachable @@ -7935,7 +8043,7 @@ if i32.const 0 i32.const 48 - i32.const 108 + i32.const 107 i32.const 0 call $~lib/env/abort unreachable @@ -7944,6 +8052,18 @@ i32.const 280 call $~lib/string/String.__gt i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 109 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 864 + i32.const 280 + call $~lib/string/String.__gt + i32.eqz if i32.const 0 i32.const 48 @@ -7953,8 +8073,8 @@ unreachable end i32.const 864 - i32.const 280 - call $~lib/string/String.__gt + i32.const 872 + call $~lib/string/String.__gte i32.eqz if i32.const 0 @@ -7965,8 +8085,8 @@ unreachable end i32.const 864 - i32.const 872 - call $~lib/string/String.__gte + i32.const 656 + call $~lib/string/String.__gt i32.eqz if i32.const 0 @@ -7978,7 +8098,8 @@ end i32.const 864 i32.const 656 - call $~lib/string/String.__gt + call $~lib/string/String.__lt + i32.eqz i32.eqz if i32.const 0 @@ -7988,21 +8109,21 @@ call $~lib/env/abort unreachable end - i32.const 864 - i32.const 656 + i32.const 648 + get_global $std/string/nullStr call $~lib/string/String.__lt i32.eqz i32.eqz if i32.const 0 i32.const 48 - i32.const 114 + i32.const 115 i32.const 0 call $~lib/env/abort unreachable end - i32.const 648 get_global $std/string/nullStr + i32.const 648 call $~lib/string/String.__lt i32.eqz i32.eqz @@ -8014,19 +8135,6 @@ call $~lib/env/abort unreachable end - get_global $std/string/nullStr - i32.const 648 - call $~lib/string/String.__lt - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 117 - i32.const 0 - call $~lib/env/abort - unreachable - end i32.const 288 i32.const 256 call $~lib/string/String.__gt @@ -8034,7 +8142,7 @@ if i32.const 0 i32.const 48 - i32.const 119 + i32.const 118 i32.const 0 call $~lib/env/abort unreachable @@ -8046,7 +8154,7 @@ if i32.const 0 i32.const 48 - i32.const 120 + i32.const 119 i32.const 0 call $~lib/env/abort unreachable @@ -8058,7 +8166,7 @@ if i32.const 0 i32.const 48 - i32.const 121 + i32.const 120 i32.const 0 call $~lib/env/abort unreachable @@ -8070,7 +8178,7 @@ if i32.const 0 i32.const 48 - i32.const 122 + i32.const 121 i32.const 0 call $~lib/env/abort unreachable @@ -8083,7 +8191,7 @@ if i32.const 0 i32.const 48 - i32.const 123 + i32.const 122 i32.const 0 call $~lib/env/abort unreachable @@ -8093,6 +8201,19 @@ call $~lib/string/String.__gt i32.eqz i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 123 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 256 + i32.const 256 + call $~lib/string/String.__lt + i32.eqz + i32.eqz if i32.const 0 i32.const 48 @@ -8103,7 +8224,7 @@ end i32.const 256 i32.const 256 - call $~lib/string/String.__lt + call $~lib/string/String.__gt i32.eqz i32.eqz if @@ -8116,8 +8237,7 @@ end i32.const 256 i32.const 256 - call $~lib/string/String.__gt - i32.eqz + call $~lib/string/String.__gte i32.eqz if i32.const 0 @@ -8129,24 +8249,12 @@ end i32.const 256 i32.const 256 - call $~lib/string/String.__gte - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 127 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 256 - i32.const 256 call $~lib/string/String.__lte i32.eqz if i32.const 0 i32.const 48 - i32.const 128 + i32.const 127 i32.const 0 call $~lib/env/abort unreachable @@ -8167,7 +8275,7 @@ if i32.const 0 i32.const 48 - i32.const 132 + i32.const 131 i32.const 0 call $~lib/env/abort unreachable @@ -8180,7 +8288,7 @@ if i32.const 0 i32.const 48 - i32.const 134 + i32.const 133 i32.const 0 call $~lib/env/abort unreachable @@ -8194,7 +8302,7 @@ if i32.const 0 i32.const 48 - i32.const 136 + i32.const 135 i32.const 0 call $~lib/env/abort unreachable @@ -8208,7 +8316,7 @@ if i32.const 0 i32.const 48 - i32.const 137 + i32.const 136 i32.const 0 call $~lib/env/abort unreachable @@ -8222,7 +8330,7 @@ if i32.const 0 i32.const 48 - i32.const 138 + i32.const 137 i32.const 0 call $~lib/env/abort unreachable @@ -8236,7 +8344,7 @@ if i32.const 0 i32.const 48 - i32.const 139 + i32.const 138 i32.const 0 call $~lib/env/abort unreachable @@ -8250,7 +8358,7 @@ if i32.const 0 i32.const 48 - i32.const 140 + i32.const 139 i32.const 0 call $~lib/env/abort unreachable @@ -8264,7 +8372,7 @@ if i32.const 0 i32.const 48 - i32.const 141 + i32.const 140 i32.const 0 call $~lib/env/abort unreachable @@ -8278,7 +8386,7 @@ if i32.const 0 i32.const 48 - i32.const 142 + i32.const 141 i32.const 0 call $~lib/env/abort unreachable @@ -8292,7 +8400,7 @@ if i32.const 0 i32.const 48 - i32.const 143 + i32.const 142 i32.const 0 call $~lib/env/abort unreachable @@ -8306,7 +8414,126 @@ if i32.const 0 i32.const 48 - i32.const 144 + i32.const 143 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 976 + set_global $std/string/str + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const 0 + i32.const 0 + call $~lib/string/String#slice|trampoline + end + i32.const 976 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 147 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const -1 + i32.const 0 + call $~lib/string/String#slice|trampoline + end + i32.const 1008 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 148 + i32.const 0 + call $~lib/env/abort + unreachable + end + block (result i32) + i32.const 1 + set_global $~argc + get_global $std/string/str + i32.const -5 + i32.const 0 + call $~lib/string/String#slice|trampoline + end + i32.const 1016 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 149 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 2 + i32.const 7 + call $~lib/string/String#slice + i32.const 1032 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 150 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const -11 + i32.const -6 + call $~lib/string/String#slice + i32.const 1048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 151 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 4 + i32.const 3 + call $~lib/string/String#slice + i32.const 256 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 152 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $std/string/str + i32.const 0 + i32.const -1 + call $~lib/string/String#slice + i32.const 1064 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 153 i32.const 0 call $~lib/env/abort unreachable @@ -8342,7 +8569,7 @@ if i32.const 0 i32.const 48 - i32.const 149 + i32.const 158 i32.const 0 call $~lib/env/abort unreachable @@ -8368,7 +8595,7 @@ if i32.const 0 i32.const 48 - i32.const 151 + i32.const 160 i32.const 0 call $~lib/env/abort unreachable @@ -8404,7 +8631,7 @@ if i32.const 0 i32.const 48 - i32.const 153 + i32.const 162 i32.const 0 call $~lib/env/abort unreachable @@ -8412,8 +8639,8 @@ block (result i32) i32.const 1 set_global $~argc - i32.const 1096 - i32.const 1112 + i32.const 1216 + i32.const 1232 i32.const 0 call $~lib/string/String#split|trampoline end @@ -8431,7 +8658,7 @@ get_global $std/string/sa i32.const 0 call $~lib/array/Array#__get - i32.const 1096 + i32.const 1216 call $~lib/string/String.__eq else get_local $2 @@ -8440,7 +8667,7 @@ if i32.const 0 i32.const 48 - i32.const 155 + i32.const 164 i32.const 0 call $~lib/env/abort unreachable @@ -8448,7 +8675,7 @@ block (result i32) i32.const 1 set_global $~argc - i32.const 1096 + i32.const 1216 i32.const 432 i32.const 0 call $~lib/string/String#split|trampoline @@ -8487,7 +8714,7 @@ get_global $std/string/sa i32.const 2 call $~lib/array/Array#__get - i32.const 1120 + i32.const 1240 call $~lib/string/String.__eq else get_local $2 @@ -8496,7 +8723,7 @@ if i32.const 0 i32.const 48 - i32.const 157 + i32.const 166 i32.const 0 call $~lib/env/abort unreachable @@ -8504,8 +8731,8 @@ block (result i32) i32.const 1 set_global $~argc - i32.const 1128 - i32.const 1152 + i32.const 1248 + i32.const 1272 i32.const 0 call $~lib/string/String#split|trampoline end @@ -8543,7 +8770,7 @@ get_global $std/string/sa i32.const 2 call $~lib/array/Array#__get - i32.const 1120 + i32.const 1240 call $~lib/string/String.__eq else get_local $2 @@ -8552,7 +8779,7 @@ if i32.const 0 i32.const 48 - i32.const 159 + i32.const 168 i32.const 0 call $~lib/env/abort unreachable @@ -8560,7 +8787,7 @@ block (result i32) i32.const 1 set_global $~argc - i32.const 1160 + i32.const 1280 i32.const 432 i32.const 0 call $~lib/string/String#split|trampoline @@ -8609,7 +8836,7 @@ get_global $std/string/sa i32.const 3 call $~lib/array/Array#__get - i32.const 1120 + i32.const 1240 call $~lib/string/String.__eq else get_local $2 @@ -8618,7 +8845,7 @@ if i32.const 0 i32.const 48 - i32.const 161 + i32.const 170 i32.const 0 call $~lib/env/abort unreachable @@ -8626,7 +8853,7 @@ block (result i32) i32.const 1 set_global $~argc - i32.const 1176 + i32.const 1296 i32.const 432 i32.const 0 call $~lib/string/String#split|trampoline @@ -8675,7 +8902,7 @@ get_global $std/string/sa i32.const 3 call $~lib/array/Array#__get - i32.const 1120 + i32.const 1240 call $~lib/string/String.__eq else get_local $2 @@ -8684,7 +8911,7 @@ if i32.const 0 i32.const 48 - i32.const 163 + i32.const 172 i32.const 0 call $~lib/env/abort unreachable @@ -8692,7 +8919,7 @@ block (result i32) i32.const 1 set_global $~argc - i32.const 1192 + i32.const 1312 i32.const 432 i32.const 0 call $~lib/string/String#split|trampoline @@ -8731,7 +8958,7 @@ get_global $std/string/sa i32.const 2 call $~lib/array/Array#__get - i32.const 1120 + i32.const 1240 call $~lib/string/String.__eq else get_local $2 @@ -8750,7 +8977,7 @@ if i32.const 0 i32.const 48 - i32.const 165 + i32.const 174 i32.const 0 call $~lib/env/abort unreachable @@ -8797,7 +9024,7 @@ get_global $std/string/sa i32.const 2 call $~lib/array/Array#__get - i32.const 1120 + i32.const 1240 call $~lib/string/String.__eq else get_local $2 @@ -8806,7 +9033,7 @@ if i32.const 0 i32.const 48 - i32.const 167 + i32.const 176 i32.const 0 call $~lib/env/abort unreachable @@ -8828,7 +9055,7 @@ if i32.const 0 i32.const 48 - i32.const 169 + i32.const 178 i32.const 0 call $~lib/env/abort unreachable @@ -8860,12 +9087,12 @@ if i32.const 0 i32.const 48 - i32.const 171 + i32.const 180 i32.const 0 call $~lib/env/abort unreachable end - i32.const 1096 + i32.const 1216 i32.const 432 i32.const 1 call $~lib/string/String#split @@ -8892,7 +9119,7 @@ if i32.const 0 i32.const 48 - i32.const 173 + i32.const 182 i32.const 0 call $~lib/env/abort unreachable @@ -8935,7 +9162,7 @@ get_global $std/string/sa i32.const 2 call $~lib/array/Array#__get - i32.const 1120 + i32.const 1240 call $~lib/string/String.__eq else get_local $2 @@ -8944,7 +9171,7 @@ if i32.const 0 i32.const 48 - i32.const 175 + i32.const 184 i32.const 0 call $~lib/env/abort unreachable @@ -8987,7 +9214,7 @@ get_global $std/string/sa i32.const 2 call $~lib/array/Array#__get - i32.const 1120 + i32.const 1240 call $~lib/string/String.__eq else get_local $2 @@ -8996,12 +9223,12 @@ if i32.const 0 i32.const 48 - i32.const 177 + i32.const 186 i32.const 0 call $~lib/env/abort unreachable end - i32.const 1096 + i32.const 1216 i32.const 432 i32.const -1 call $~lib/string/String#split @@ -9039,7 +9266,7 @@ get_global $std/string/sa i32.const 2 call $~lib/array/Array#__get - i32.const 1120 + i32.const 1240 call $~lib/string/String.__eq else get_local $2 @@ -9048,7 +9275,7 @@ if i32.const 0 i32.const 48 - i32.const 179 + i32.const 188 i32.const 0 call $~lib/env/abort unreachable @@ -9061,7 +9288,7 @@ if i32.const 0 i32.const 48 - i32.const 181 + i32.const 190 i32.const 0 call $~lib/env/abort unreachable @@ -9074,20 +9301,20 @@ if i32.const 0 i32.const 48 - i32.const 182 + i32.const 191 i32.const 0 call $~lib/env/abort unreachable end i32.const 8 call $~lib/internal/number/itoa32 - i32.const 1728 + i32.const 1848 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 183 + i32.const 192 i32.const 0 call $~lib/env/abort unreachable @@ -9100,137 +9327,137 @@ if i32.const 0 i32.const 48 - i32.const 184 + i32.const 193 i32.const 0 call $~lib/env/abort unreachable end i32.const -1000 call $~lib/internal/number/itoa32 - i32.const 1736 + i32.const 1856 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 185 + i32.const 194 i32.const 0 call $~lib/env/abort unreachable end i32.const 1234 call $~lib/internal/number/itoa32 - i32.const 1752 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 186 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 12345 - call $~lib/internal/number/itoa32 - i32.const 1768 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 187 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 123456 - call $~lib/internal/number/itoa32 - i32.const 1784 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 188 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 1111111 - call $~lib/internal/number/itoa32 - i32.const 1800 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 189 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 1234567 - call $~lib/internal/number/itoa32 - i32.const 1824 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 190 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 2147483646 - call $~lib/internal/number/itoa32 - i32.const 1848 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 191 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 2147483647 - call $~lib/internal/number/itoa32 i32.const 1872 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 192 + i32.const 195 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 12345 + call $~lib/internal/number/itoa32 + i32.const 1888 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 196 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 123456 + call $~lib/internal/number/itoa32 + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 197 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1111111 + call $~lib/internal/number/itoa32 + i32.const 1920 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 198 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 1234567 + call $~lib/internal/number/itoa32 + i32.const 1944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 199 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483646 + call $~lib/internal/number/itoa32 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 200 + i32.const 0 + call $~lib/env/abort + unreachable + end + i32.const 2147483647 + call $~lib/internal/number/itoa32 + i32.const 1992 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 201 i32.const 0 call $~lib/env/abort unreachable end i32.const -2147483648 call $~lib/internal/number/itoa32 - i32.const 1896 + i32.const 2016 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 193 + i32.const 202 i32.const 0 call $~lib/env/abort unreachable end i32.const -1 call $~lib/internal/number/itoa32 - i32.const 1928 + i32.const 2048 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 194 + i32.const 203 i32.const 0 call $~lib/env/abort unreachable @@ -9243,118 +9470,14 @@ if i32.const 0 i32.const 48 - i32.const 196 + i32.const 205 i32.const 0 call $~lib/env/abort unreachable end i32.const 1000 call $~lib/internal/number/utoa32 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 197 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const 2147483647 - call $~lib/internal/number/utoa32 - i32.const 1872 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 198 - i32.const 0 - call $~lib/env/abort - unreachable - end - i32.const -2147483648 - call $~lib/internal/number/utoa32 - i32.const 1952 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 199 - i32.const 0 - call $~lib/env/abort - unreachable - end - get_global $~lib/builtins/u32.MAX_VALUE - call $~lib/internal/number/utoa32 - i32.const 1976 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 200 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 0 - call $~lib/internal/number/utoa64 - i32.const 480 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 202 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 1234 - call $~lib/internal/number/utoa64 - i32.const 1752 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 203 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 99999999 - call $~lib/internal/number/utoa64 - i32.const 2520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 204 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 100000000 - call $~lib/internal/number/utoa64 - i32.const 2544 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 205 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 4294967295 - call $~lib/internal/number/utoa64 - i32.const 1976 + i32.const 2056 call $~lib/string/String.__eq i32.eqz if @@ -9365,9 +9488,9 @@ call $~lib/env/abort unreachable end - i64.const 68719476735 - call $~lib/internal/number/utoa64 - i32.const 2568 + i32.const 2147483647 + call $~lib/internal/number/utoa32 + i32.const 1992 call $~lib/string/String.__eq i32.eqz if @@ -9378,9 +9501,9 @@ call $~lib/env/abort unreachable end - i64.const 868719476735 - call $~lib/internal/number/utoa64 - i32.const 2600 + i32.const -2147483648 + call $~lib/internal/number/utoa32 + i32.const 2072 call $~lib/string/String.__eq i32.eqz if @@ -9391,9 +9514,9 @@ call $~lib/env/abort unreachable end - i64.const 999868719476735 - call $~lib/internal/number/utoa64 - i32.const 2632 + get_global $~lib/builtins/u32.MAX_VALUE + call $~lib/internal/number/utoa32 + i32.const 2096 call $~lib/string/String.__eq i32.eqz if @@ -9404,22 +9527,9 @@ call $~lib/env/abort unreachable end - i64.const 9999868719476735 + i64.const 0 call $~lib/internal/number/utoa64 - i32.const 2672 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 210 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 19999868719476735 - call $~lib/internal/number/utoa64 - i32.const 2712 + i32.const 480 call $~lib/string/String.__eq i32.eqz if @@ -9430,7 +9540,85 @@ call $~lib/env/abort unreachable end - get_global $~lib/builtins/u64.MAX_VALUE + i64.const 1234 + call $~lib/internal/number/utoa64 + i32.const 1872 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 212 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 99999999 + call $~lib/internal/number/utoa64 + i32.const 2640 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 213 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 100000000 + call $~lib/internal/number/utoa64 + i32.const 2664 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 214 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 4294967295 + call $~lib/internal/number/utoa64 + i32.const 2096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 215 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 68719476735 + call $~lib/internal/number/utoa64 + i32.const 2688 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 216 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 868719476735 + call $~lib/internal/number/utoa64 + i32.const 2720 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 217 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 999868719476735 call $~lib/internal/number/utoa64 i32.const 2752 call $~lib/string/String.__eq @@ -9438,7 +9626,46 @@ if i32.const 0 i32.const 48 - i32.const 212 + i32.const 218 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 9999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 219 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 19999868719476735 + call $~lib/internal/number/utoa64 + i32.const 2832 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 220 + i32.const 0 + call $~lib/env/abort + unreachable + end + get_global $~lib/builtins/u64.MAX_VALUE + call $~lib/internal/number/utoa64 + i32.const 2872 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 221 i32.const 0 call $~lib/env/abort unreachable @@ -9451,131 +9678,14 @@ if i32.const 0 i32.const 48 - i32.const 214 + i32.const 223 i32.const 0 call $~lib/env/abort unreachable end i64.const -1234 call $~lib/internal/number/itoa64 - i32.const 2800 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 215 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 4294967295 - call $~lib/internal/number/itoa64 - i32.const 1976 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 216 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -4294967295 - call $~lib/internal/number/itoa64 - i32.const 2816 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 217 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const 68719476735 - call $~lib/internal/number/itoa64 - i32.const 2568 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 218 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -68719476735 - call $~lib/internal/number/itoa64 - i32.const 2848 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 219 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -868719476735 - call $~lib/internal/number/itoa64 - i32.const 2880 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 220 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -999868719476735 - call $~lib/internal/number/itoa64 - i32.const 2912 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 221 - i32.const 0 - call $~lib/env/abort - unreachable - end - i64.const -19999868719476735 - call $~lib/internal/number/itoa64 - i32.const 2952 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 222 - i32.const 0 - call $~lib/env/abort - unreachable - end - get_global $~lib/builtins/i64.MAX_VALUE - call $~lib/internal/number/itoa64 - i32.const 2992 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 223 - i32.const 0 - call $~lib/env/abort - unreachable - end - get_global $~lib/builtins/i64.MIN_VALUE - call $~lib/internal/number/itoa64 - i32.const 3040 + i32.const 2920 call $~lib/string/String.__eq i32.eqz if @@ -9586,9 +9696,35 @@ call $~lib/env/abort unreachable end - f64.const 0 - call $~lib/internal/number/dtoa - i32.const 3088 + i64.const 4294967295 + call $~lib/internal/number/itoa64 + i32.const 2096 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 225 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const -4294967295 + call $~lib/internal/number/itoa64 + i32.const 2936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 226 + i32.const 0 + call $~lib/env/abort + unreachable + end + i64.const 68719476735 + call $~lib/internal/number/itoa64 + i32.const 2688 call $~lib/string/String.__eq i32.eqz if @@ -9599,9 +9735,9 @@ call $~lib/env/abort unreachable end - f64.const -0 - call $~lib/internal/number/dtoa - i32.const 3088 + i64.const -68719476735 + call $~lib/internal/number/itoa64 + i32.const 2968 call $~lib/string/String.__eq i32.eqz if @@ -9612,9 +9748,9 @@ call $~lib/env/abort unreachable end - f64.const nan:0x8000000000000 - call $~lib/internal/number/dtoa - i32.const 3104 + i64.const -868719476735 + call $~lib/internal/number/itoa64 + i32.const 3000 call $~lib/string/String.__eq i32.eqz if @@ -9625,9 +9761,9 @@ call $~lib/env/abort unreachable end - f64.const inf - call $~lib/internal/number/dtoa - i32.const 3144 + i64.const -999868719476735 + call $~lib/internal/number/itoa64 + i32.const 3032 call $~lib/string/String.__eq i32.eqz if @@ -9638,10 +9774,9 @@ call $~lib/env/abort unreachable end - f64.const inf - f64.neg - call $~lib/internal/number/dtoa - i32.const 3120 + i64.const -19999868719476735 + call $~lib/internal/number/itoa64 + i32.const 3072 call $~lib/string/String.__eq i32.eqz if @@ -9652,9 +9787,9 @@ call $~lib/env/abort unreachable end - get_global $~lib/builtins/f64.EPSILON - call $~lib/internal/number/dtoa - i32.const 4536 + get_global $~lib/builtins/i64.MAX_VALUE + call $~lib/internal/number/itoa64 + i32.const 3112 call $~lib/string/String.__eq i32.eqz if @@ -9665,10 +9800,9 @@ call $~lib/env/abort unreachable end - get_global $~lib/builtins/f64.EPSILON - f64.neg - call $~lib/internal/number/dtoa - i32.const 4584 + get_global $~lib/builtins/i64.MIN_VALUE + call $~lib/internal/number/itoa64 + i32.const 3160 call $~lib/string/String.__eq i32.eqz if @@ -9679,36 +9813,9 @@ call $~lib/env/abort unreachable end - get_global $~lib/builtins/f64.MAX_VALUE + f64.const 0 call $~lib/internal/number/dtoa - i32.const 4632 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 234 - i32.const 0 - call $~lib/env/abort - unreachable - end - get_global $~lib/builtins/f64.MAX_VALUE - f64.neg - call $~lib/internal/number/dtoa - i32.const 4688 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 235 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 4185580496821356722454785e274 - call $~lib/internal/number/dtoa - i32.const 4744 + i32.const 3208 call $~lib/string/String.__eq i32.eqz if @@ -9719,9 +9826,9 @@ call $~lib/env/abort unreachable end - f64.const 2.2250738585072014e-308 + f64.const -0 call $~lib/internal/number/dtoa - i32.const 4792 + i32.const 3208 call $~lib/string/String.__eq i32.eqz if @@ -9732,9 +9839,36 @@ call $~lib/env/abort unreachable end - f64.const 4.940656e-318 + f64.const nan:0x8000000000000 call $~lib/internal/number/dtoa - i32.const 4848 + i32.const 3224 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 238 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + call $~lib/internal/number/dtoa + i32.const 3264 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 239 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const inf + f64.neg + call $~lib/internal/number/dtoa + i32.const 3240 call $~lib/string/String.__eq i32.eqz if @@ -9745,9 +9879,9 @@ call $~lib/env/abort unreachable end - f64.const 9060801153433600 + get_global $~lib/builtins/f64.EPSILON call $~lib/internal/number/dtoa - i32.const 4880 + i32.const 4656 call $~lib/string/String.__eq i32.eqz if @@ -9758,9 +9892,10 @@ call $~lib/env/abort unreachable end - f64.const 4708356024711512064 + get_global $~lib/builtins/f64.EPSILON + f64.neg call $~lib/internal/number/dtoa - i32.const 4920 + i32.const 4704 call $~lib/string/String.__eq i32.eqz if @@ -9771,9 +9906,9 @@ call $~lib/env/abort unreachable end - f64.const 9409340012568248320 + get_global $~lib/builtins/f64.MAX_VALUE call $~lib/internal/number/dtoa - i32.const 4968 + i32.const 4752 call $~lib/string/String.__eq i32.eqz if @@ -9784,9 +9919,10 @@ call $~lib/env/abort unreachable end - f64.const 5e-324 + get_global $~lib/builtins/f64.MAX_VALUE + f64.neg call $~lib/internal/number/dtoa - i32.const 5016 + i32.const 4808 call $~lib/string/String.__eq i32.eqz if @@ -9797,9 +9933,48 @@ call $~lib/env/abort unreachable end - f64.const 1 + f64.const 4185580496821356722454785e274 call $~lib/internal/number/dtoa - i32.const 5032 + i32.const 4864 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 245 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.2250738585072014e-308 + call $~lib/internal/number/dtoa + i32.const 4912 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 246 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 4.940656e-318 + call $~lib/internal/number/dtoa + i32.const 4968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 249 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9060801153433600 + call $~lib/internal/number/dtoa + i32.const 5000 call $~lib/string/String.__eq i32.eqz if @@ -9810,6 +9985,58 @@ call $~lib/env/abort unreachable end + f64.const 4708356024711512064 + call $~lib/internal/number/dtoa + i32.const 5040 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 251 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 9409340012568248320 + call $~lib/internal/number/dtoa + i32.const 5088 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 252 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 5e-324 + call $~lib/internal/number/dtoa + i32.const 5136 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 253 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1 + call $~lib/internal/number/dtoa + i32.const 5152 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 259 + i32.const 0 + call $~lib/env/abort + unreachable + end f64.const 0.1 call $~lib/internal/number/dtoa i32.const 592 @@ -9818,118 +10045,27 @@ if i32.const 0 i32.const 48 - i32.const 251 + i32.const 260 i32.const 0 call $~lib/env/abort unreachable end f64.const -1 call $~lib/internal/number/dtoa - i32.const 5048 + i32.const 5168 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 252 + i32.const 261 i32.const 0 call $~lib/env/abort unreachable end f64.const -0.1 call $~lib/internal/number/dtoa - i32.const 5064 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 253 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1e6 - call $~lib/internal/number/dtoa - i32.const 5080 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 255 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1e-06 - call $~lib/internal/number/dtoa - i32.const 5104 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 256 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const -1e6 - call $~lib/internal/number/dtoa - i32.const 5128 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 257 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const -1e-06 - call $~lib/internal/number/dtoa - i32.const 5152 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 258 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1e7 - call $~lib/internal/number/dtoa - i32.const 5176 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 259 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1e-07 - call $~lib/internal/number/dtoa - i32.const 5200 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 260 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 1.e+308 - call $~lib/internal/number/dtoa - i32.const 5216 + i32.const 5184 call $~lib/string/String.__eq i32.eqz if @@ -9940,22 +10076,9 @@ call $~lib/env/abort unreachable end - f64.const -1.e+308 + f64.const 1e6 call $~lib/internal/number/dtoa - i32.const 5232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 263 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const inf - call $~lib/internal/number/dtoa - i32.const 3144 + i32.const 5200 call $~lib/string/String.__eq i32.eqz if @@ -9966,9 +10089,9 @@ call $~lib/env/abort unreachable end - f64.const -inf + f64.const 1e-06 call $~lib/internal/number/dtoa - i32.const 3120 + i32.const 5224 call $~lib/string/String.__eq i32.eqz if @@ -9979,9 +10102,9 @@ call $~lib/env/abort unreachable end - f64.const 1e-308 + f64.const -1e6 call $~lib/internal/number/dtoa - i32.const 5256 + i32.const 5248 call $~lib/string/String.__eq i32.eqz if @@ -9992,7 +10115,7 @@ call $~lib/env/abort unreachable end - f64.const -1e-308 + f64.const -1e-06 call $~lib/internal/number/dtoa i32.const 5272 call $~lib/string/String.__eq @@ -10005,7 +10128,7 @@ call $~lib/env/abort unreachable end - f64.const 1e-323 + f64.const 1e7 call $~lib/internal/number/dtoa i32.const 5296 call $~lib/string/String.__eq @@ -10018,9 +10141,9 @@ call $~lib/env/abort unreachable end - f64.const -1e-323 + f64.const 1e-07 call $~lib/internal/number/dtoa - i32.const 5312 + i32.const 5320 call $~lib/string/String.__eq i32.eqz if @@ -10031,22 +10154,22 @@ call $~lib/env/abort unreachable end - f64.const 0 + f64.const 1.e+308 call $~lib/internal/number/dtoa - i32.const 3088 + i32.const 5336 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 270 + i32.const 271 i32.const 0 call $~lib/env/abort unreachable end - f64.const 4294967272 + f64.const -1.e+308 call $~lib/internal/number/dtoa - i32.const 5336 + i32.const 5352 call $~lib/string/String.__eq i32.eqz if @@ -10057,9 +10180,9 @@ call $~lib/env/abort unreachable end - f64.const 1.2312145673456234e-08 + f64.const inf call $~lib/internal/number/dtoa - i32.const 5368 + i32.const 3264 call $~lib/string/String.__eq i32.eqz if @@ -10070,9 +10193,22 @@ call $~lib/env/abort unreachable end - f64.const 555555555.5555556 + f64.const -inf call $~lib/internal/number/dtoa - i32.const 5416 + i32.const 3240 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 274 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1e-308 + call $~lib/internal/number/dtoa + i32.const 5376 call $~lib/string/String.__eq i32.eqz if @@ -10083,9 +10219,9 @@ call $~lib/env/abort unreachable end - f64.const 0.9999999999999999 + f64.const -1e-308 call $~lib/internal/number/dtoa - i32.const 5456 + i32.const 5392 call $~lib/string/String.__eq i32.eqz if @@ -10096,9 +10232,9 @@ call $~lib/env/abort unreachable end - f64.const 1 + f64.const 1e-323 call $~lib/internal/number/dtoa - i32.const 5032 + i32.const 5416 call $~lib/string/String.__eq i32.eqz if @@ -10109,9 +10245,9 @@ call $~lib/env/abort unreachable end - f64.const 12.34 + f64.const -1e-323 call $~lib/internal/number/dtoa - i32.const 5496 + i32.const 5432 call $~lib/string/String.__eq i32.eqz if @@ -10122,24 +10258,22 @@ call $~lib/env/abort unreachable end - f64.const 1 - f64.const 3 - f64.div + f64.const 0 call $~lib/internal/number/dtoa - i32.const 5512 + i32.const 3208 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 48 - i32.const 280 + i32.const 279 i32.const 0 call $~lib/env/abort unreachable end - f64.const 1234e17 + f64.const 4294967272 call $~lib/internal/number/dtoa - i32.const 5552 + i32.const 5456 call $~lib/string/String.__eq i32.eqz if @@ -10150,9 +10284,9 @@ call $~lib/env/abort unreachable end - f64.const 1234e18 + f64.const 1.2312145673456234e-08 call $~lib/internal/number/dtoa - i32.const 5608 + i32.const 5488 call $~lib/string/String.__eq i32.eqz if @@ -10163,22 +10297,9 @@ call $~lib/env/abort unreachable end - f64.const 2.71828 + f64.const 555555555.5555556 call $~lib/internal/number/dtoa - i32.const 5632 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 48 - i32.const 283 - i32.const 0 - call $~lib/env/abort - unreachable - end - f64.const 0.0271828 - call $~lib/internal/number/dtoa - i32.const 5656 + i32.const 5536 call $~lib/string/String.__eq i32.eqz if @@ -10189,9 +10310,9 @@ call $~lib/env/abort unreachable end - f64.const 271.828 + f64.const 0.9999999999999999 call $~lib/internal/number/dtoa - i32.const 5680 + i32.const 5576 call $~lib/string/String.__eq i32.eqz if @@ -10202,9 +10323,9 @@ call $~lib/env/abort unreachable end - f64.const 1.1e+128 + f64.const 1 call $~lib/internal/number/dtoa - i32.const 5704 + i32.const 5152 call $~lib/string/String.__eq i32.eqz if @@ -10215,9 +10336,9 @@ call $~lib/env/abort unreachable end - f64.const 1.1e-64 + f64.const 12.34 call $~lib/internal/number/dtoa - i32.const 5728 + i32.const 5616 call $~lib/string/String.__eq i32.eqz if @@ -10228,7 +10349,48 @@ call $~lib/env/abort unreachable end - f64.const 0.000035689 + f64.const 1 + f64.const 3 + f64.div + call $~lib/internal/number/dtoa + i32.const 5632 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 289 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1234e17 + call $~lib/internal/number/dtoa + i32.const 5672 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 290 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1234e18 + call $~lib/internal/number/dtoa + i32.const 5728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 291 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 2.71828 call $~lib/internal/number/dtoa i32.const 5752 call $~lib/string/String.__eq @@ -10236,12 +10398,77 @@ if i32.const 0 i32.const 48 - i32.const 288 + i32.const 292 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.0271828 + call $~lib/internal/number/dtoa + i32.const 5776 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 293 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 271.828 + call $~lib/internal/number/dtoa + i32.const 5800 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 294 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1e+128 + call $~lib/internal/number/dtoa + i32.const 5824 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 295 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 1.1e-64 + call $~lib/internal/number/dtoa + i32.const 5848 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 296 + i32.const 0 + call $~lib/env/abort + unreachable + end + f64.const 0.000035689 + call $~lib/internal/number/dtoa + i32.const 5872 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 48 + i32.const 297 i32.const 0 call $~lib/env/abort unreachable end ) - (func $null (; 62 ;) (type $v) + (func $null (; 64 ;) (type $v) ) )