diff --git a/std/assembly/console.ts b/std/assembly/console.ts index 21b589ed15..cd7bc59799 100644 --- a/std/assembly/console.ts +++ b/std/assembly/console.ts @@ -7,77 +7,70 @@ import { export namespace console { - export function assert(condition: T, message: string): void { + export function assert(condition: T, message: string | null = null): void { if (!condition) { let stderr = process.stderr; stderr.write("Assertion failed: "); - stderr.write(message); - stderr.write("\n"); + stderr.writeLn(message !== null ? message : "console.assert"); } } - export function log(message: string): void { - var stdout = process.stdout; - stdout.write(message); - stdout.write("\n"); + export function log(message: string = ""): void { + process.stdout.writeLn(message); } - export function debug(message: string): void { + export function debug(message: string = ""): void { var stdout = process.stdout; stdout.write("Debug: "); - stdout.write(message); - stdout.write("\n"); + stdout.writeLn(message); } - export function info(message: string): void { + export function info(message: string = ""): void { var stdout = process.stdout; stdout.write("Info: "); - stdout.write(message); - stdout.write("\n"); + stdout.writeLn(message); } - export function warn(message: string): void { - var stdout = process.stdout; - stdout.write("Warning: "); - stdout.write(message); - stdout.write("\n"); + export function warn(message: string = ""): void { + var stderr = process.stderr; + stderr.write("Warning: "); + stderr.writeLn(message); } - export function error(message: string): void { - var stdout = process.stdout; - stdout.write("Error: "); - stdout.write(message); - stdout.write("\n"); + export function error(message: string = ""): void { + var stderr = process.stderr; + stderr.write("Error: "); + stderr.writeLn(message); } - export function time(label: string): void { - var stdout = process.stdout; + export function time(label: string = "default"): void { if (timers.has(label)) { - stdout.write("Warning: Label '"); - stdout.write(label); - stdout.write("' already exists for console.time()\n"); + let stderr = process.stderr; + stderr.write("Warning: Label '"); + stderr.write(label); + stderr.write("' already exists for console.time()\n"); return; } timers.set(label, process.hrtime()); } - export function timeLog(label: string): void { - var stdout = process.stdout; + export function timeLog(label: string = "default"): void { if (!timers.has(label)) { - stdout.write("Warning: No such label '"); - stdout.write(label); - stdout.write("' for console.timeLog()\n"); + let stderr = process.stderr; + stderr.write("Warning: No such label '"); + stderr.write(label); + stderr.write("' for console.timeLog()\n"); return; } timeLogImpl(label); } - export function timeEnd(label: string): void { - var stdout = process.stdout; + export function timeEnd(label: string = "default"): void { if (!timers.has(label)) { - stdout.write("Warning: No such label '"); - stdout.write(label); - stdout.write("' for console.timeEnd()\n"); + let stderr = process.stderr; + stderr.write("Warning: No such label '"); + stderr.write(label); + stderr.write("' for console.timeEnd()\n"); return; } timeLogImpl(label); diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index a5f254ed30..3c8c974f2f 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2133,23 +2133,23 @@ declare namespace process { /** Browser-like console on top of WASI. */ declare namespace console { /** Logs `message` to console if `assertion` is false-ish. */ - export function assert(assertion: T, message: string): void; + export function assert(assertion: T, message?: string): void; /** Outputs `message` to the console. */ - export function log(message: string): void; + export function log(message?: string): void; /** Outputs `message` to the console, prefixed with "Debug:". */ - export function debug(message: string): void; + export function debug(message?: string): void; /** Outputs `message` to the console, prefixed with "Info:". */ - export function info(message: string): void; + export function info(message?: string): void; /** Outputs `message` to the console, prefixed with "Warning:". */ - export function warn(message: string): void; + export function warn(message?: string): void; /** Outputs `message` to the console, prefixed with "Error:". */ - export function error(message: string): void; + export function error(message?: string): void; /** Starts a new timer using the specified `label`. */ - export function time(label: string): void; + export function time(label?: string): void; /** Logs the current value of a timer previously started with `console.time`. */ - export function timeLog(label: string): void; + export function timeLog(label?: string): void; /** Logs the current value of a timer previously started with `console.time` and discards the timer. */ - export function timeEnd(label: string): void; + export function timeEnd(label?: string): void; } /** Browser-like crypto utilities on top of WASI. */ diff --git a/std/assembly/process.ts b/std/assembly/process.ts index 7378f30fa2..49ba9554c1 100644 --- a/std/assembly/process.ts +++ b/std/assembly/process.ts @@ -127,6 +127,10 @@ abstract class WritableStream extends Stream { ERROR("String or ArrayBuffer expected"); } } + + writeLn(data: string): void { + writeString(changetype(this), changetype(data), true); + } } @unmanaged @@ -151,37 +155,43 @@ function writeBuffer(fd: fd, data: ArrayBuffer): void { if (err) throw new Error(errnoToString(err)); } -function writeString(fd: fd, data: string): void { - var char2 = -1; - var char3 = -1; - var char4 = -1; - switch (data.length) { - case 4: { // "null" - char4 = load(changetype(data), 6); - if (char4 >= 0x80) break; - } - case 3: { // "ms\n" - char3 = load(changetype(data), 4); - if (char3 >= 0x80) break; - } - case 2: { // "\r\n" - char2 = load(changetype(data), 2); - if (char2 >= 0x80) break; - } - case 1: { // "\n" - let char1 = load(changetype(data)); - if (char1 >= 0x80) break; - store(iobuf, iobuf + 2 * sizeof()); - store(iobuf, 1 + i32(char2 != -1) + i32(char3 != -1) + i32(char4 != -1), sizeof()); - store(iobuf, char1 | char2 << 8 | char3 << 16 | char4 << 24, 2 * sizeof()); - let err = fd_write(fd, iobuf, 1, iobuf + 3 * sizeof()); - if (err) throw new Error(errnoToString(err)); +function writeString(fd: fd, data: string, newLine: bool = false): void { + var len = data.length; + if (!newLine) { + let + char2: u32 = 0, + char3: u32 = 0, + char4: u32 = 0; + + switch (len) { + case 4: { // "null" + char4 = load(changetype(data), 6); + if (char4 >= 0x80) break; + } + case 3: { // "ms\n" + char3 = load(changetype(data), 4); + if (char3 >= 0x80) break; + } + case 2: { // "\r\n" + char2 = load(changetype(data), 2); + if (char2 >= 0x80) break; + } + case 1: { // "\n" + let char1 = load(changetype(data)); + if (char1 >= 0x80) break; + store(iobuf, iobuf + 2 * sizeof()); + store(iobuf, len, sizeof()); + store(iobuf, char1 | char2 << 8 | char3 << 16 | char4 << 24, 2 * sizeof()); + let err = fd_write(fd, iobuf, 1, iobuf + 3 * sizeof()); + if (err) throw new Error(errnoToString(err)); + } + case 0: return; } - case 0: return; } var utf8len = String.UTF8.byteLength(data); - var utf8buf = __alloc(utf8len); - assert(String.UTF8.encodeUnsafe(changetype(data), data.length, utf8buf) == utf8len); + var utf8buf = __alloc(utf8len + usize(newLine)); + assert(String.UTF8.encodeUnsafe(changetype(data), len, utf8buf) == utf8len); + if (newLine) store(utf8buf + utf8len, 0x0A); // \n store(iobuf, utf8buf); store(iobuf, utf8len, sizeof()); var err = fd_write(fd, iobuf, 1, iobuf + 2 * sizeof()); diff --git a/tests/compiler/std-wasi/console.optimized.wat b/tests/compiler/std-wasi/console.optimized.wat index 82fe1b35f4..6f79be361b 100644 --- a/tests/compiler/std-wasi/console.optimized.wat +++ b/tests/compiler/std-wasi/console.optimized.wat @@ -2,8 +2,8 @@ (type $i32_=>_none (func (param i32))) (type $i32_i32_=>_none (func (param i32 i32))) (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) @@ -27,7 +27,7 @@ (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) (global $~lib/console/timers (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 24356)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 24372)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 1036) "\1c") @@ -200,83 +200,83 @@ (data (i32.const 4328) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") (data (i32.const 4380) "<") (data (i32.const 4392) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 4444) "\1c") - (data (i32.const 4456) "\01\00\00\00\02\00\00\00\n") - (data (i32.const 4476) "\1c") - (data (i32.const 4488) "\01\00\00\00\08\00\00\00p\00h\00e\00w") - (data (i32.const 4508) ",") - (data (i32.const 4520) "\01\00\00\00\12\00\00\00h\00e\00l\00l\00o\00 \00l\00o\00g") - (data (i32.const 4556) ",") - (data (i32.const 4568) "\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00d\00e\00b\00u\00g") - (data (i32.const 4604) ",") - (data (i32.const 4616) "\01\00\00\00\0e\00\00\00D\00e\00b\00u\00g\00:\00 ") - (data (i32.const 4652) ",") - (data (i32.const 4664) "\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00i\00n\00f\00o") - (data (i32.const 4700) "\1c") - (data (i32.const 4712) "\01\00\00\00\0c\00\00\00I\00n\00f\00o\00:\00 ") - (data (i32.const 4732) ",") - (data (i32.const 4744) "\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00w\00a\00r\00n") - (data (i32.const 4780) ",") - (data (i32.const 4792) "\01\00\00\00\12\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 ") - (data (i32.const 4828) ",") - (data (i32.const 4840) "\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00e\00r\00r\00o\00r") - (data (i32.const 4876) ",") - (data (i32.const 4888) "\01\00\00\00\0e\00\00\00E\00r\00r\00o\00r\00:\00 ") - (data (i32.const 4924) ",") - (data (i32.const 4936) "\01\00\00\00\12\00\00\00s\00o\00m\00e\00L\00a\00b\00e\00l") - (data (i32.const 4972) "<") - (data (i32.const 4984) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data (i32.const 5100) "<") - (data (i32.const 5112) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 5164) ",") - (data (i32.const 5176) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 5244) ",") - (data (i32.const 5256) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data (i32.const 5292) "<") - (data (i32.const 5304) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 5356) "<") - (data (i32.const 5368) "\01\00\00\00 \00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00L\00a\00b\00e\00l\00 \00\'") - (data (i32.const 5420) "\\") - (data (i32.const 5432) "\01\00\00\00H\00\00\00\'\00 \00a\00l\00r\00e\00a\00d\00y\00 \00e\00x\00i\00s\00t\00s\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00(\00)\00\n") - (data (i32.const 5516) "L") - (data (i32.const 5528) "\01\00\00\000\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00N\00o\00 \00s\00u\00c\00h\00 \00l\00a\00b\00e\00l\00 \00\'") - (data (i32.const 5596) "L") - (data (i32.const 5608) "\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00L\00o\00g\00(\00)\00\n") - (data (i32.const 5676) "<") - (data (i32.const 5688) "\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data (i32.const 5740) ",") - (data (i32.const 5752) "\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data (i32.const 5788) "|") - (data (i32.const 5800) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") - (data (i32.const 5916) "<") - (data (i32.const 5928) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 5980) "\1c") - (data (i32.const 5992) "\01\00\00\00\02\00\00\000") - (data (i32.const 6012) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 6412) "\1c\04") - (data (i32.const 6424) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") - (data (i32.const 7468) "\\") - (data (i32.const 7480) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") - (data (i32.const 7564) "\1c") - (data (i32.const 7576) "\01\00\00\00\04\00\00\00:\00 ") - (data (i32.const 7596) "\1c") - (data (i32.const 7608) "\01\00\00\00\06\00\00\00m\00s\00\n") - (data (i32.const 7628) "L") - (data (i32.const 7640) "\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00E\00n\00d\00(\00)\00\n") - (data (i32.const 7708) ",") - (data (i32.const 7720) "\01\00\00\00\14\00\00\00w\00r\00o\00n\00g\00L\00a\00b\00e\00l") - (data (i32.const 7756) ",") - (data (i32.const 7768) "\01\00\00\00\1c\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00L\00a\00b\00e\00l") - (data (i32.const 7804) "\1c") - (data (i32.const 7816) "\01\00\00\00\02\00\00\001") - (data (i32.const 7836) "\1c") - (data (i32.const 7848) "\01\00\00\00\04\00\00\001\002") - (data (i32.const 7868) "\1c") - (data (i32.const 7880) "\01\00\00\00\06\00\00\001\002\003") - (data (i32.const 7900) "\1c") - (data (i32.const 7912) "\01\00\00\00\08\00\00\001\002\003\004") - (data (i32.const 7936) "\04\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 7964) "\10\02\82") + (data (i32.const 4444) ",") + (data (i32.const 4456) "\01\00\00\00\1c\00\00\00c\00o\00n\00s\00o\00l\00e\00.\00a\00s\00s\00e\00r\00t") + (data (i32.const 4492) "\1c") + (data (i32.const 4504) "\01\00\00\00\08\00\00\00p\00h\00e\00w") + (data (i32.const 4524) ",") + (data (i32.const 4536) "\01\00\00\00\12\00\00\00h\00e\00l\00l\00o\00 \00l\00o\00g") + (data (i32.const 4572) ",") + (data (i32.const 4584) "\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00d\00e\00b\00u\00g") + (data (i32.const 4620) ",") + (data (i32.const 4632) "\01\00\00\00\0e\00\00\00D\00e\00b\00u\00g\00:\00 ") + (data (i32.const 4668) ",") + (data (i32.const 4680) "\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00i\00n\00f\00o") + (data (i32.const 4716) "\1c") + (data (i32.const 4728) "\01\00\00\00\0c\00\00\00I\00n\00f\00o\00:\00 ") + (data (i32.const 4748) ",") + (data (i32.const 4760) "\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00w\00a\00r\00n") + (data (i32.const 4796) ",") + (data (i32.const 4808) "\01\00\00\00\12\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 ") + (data (i32.const 4844) ",") + (data (i32.const 4856) "\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00e\00r\00r\00o\00r") + (data (i32.const 4892) ",") + (data (i32.const 4904) "\01\00\00\00\0e\00\00\00E\00r\00r\00o\00r\00:\00 ") + (data (i32.const 4940) ",") + (data (i32.const 4952) "\01\00\00\00\12\00\00\00s\00o\00m\00e\00L\00a\00b\00e\00l") + (data (i32.const 4988) "<") + (data (i32.const 5000) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 5116) "<") + (data (i32.const 5128) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data (i32.const 5180) ",") + (data (i32.const 5192) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 5260) ",") + (data (i32.const 5272) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data (i32.const 5308) "<") + (data (i32.const 5320) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 5372) "<") + (data (i32.const 5384) "\01\00\00\00 \00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00L\00a\00b\00e\00l\00 \00\'") + (data (i32.const 5436) "\\") + (data (i32.const 5448) "\01\00\00\00H\00\00\00\'\00 \00a\00l\00r\00e\00a\00d\00y\00 \00e\00x\00i\00s\00t\00s\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00(\00)\00\n") + (data (i32.const 5532) "L") + (data (i32.const 5544) "\01\00\00\000\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00N\00o\00 \00s\00u\00c\00h\00 \00l\00a\00b\00e\00l\00 \00\'") + (data (i32.const 5612) "L") + (data (i32.const 5624) "\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00L\00o\00g\00(\00)\00\n") + (data (i32.const 5692) "<") + (data (i32.const 5704) "\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data (i32.const 5756) ",") + (data (i32.const 5768) "\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data (i32.const 5804) "|") + (data (i32.const 5816) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") + (data (i32.const 5932) "<") + (data (i32.const 5944) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") + (data (i32.const 5996) "\1c") + (data (i32.const 6008) "\01\00\00\00\02\00\00\000") + (data (i32.const 6028) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") + (data (i32.const 6428) "\1c\04") + (data (i32.const 6440) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") + (data (i32.const 7484) "\\") + (data (i32.const 7496) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") + (data (i32.const 7580) "\1c") + (data (i32.const 7592) "\01\00\00\00\04\00\00\00:\00 ") + (data (i32.const 7612) "\1c") + (data (i32.const 7624) "\01\00\00\00\06\00\00\00m\00s\00\n") + (data (i32.const 7644) "L") + (data (i32.const 7656) "\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00E\00n\00d\00(\00)\00\n") + (data (i32.const 7724) ",") + (data (i32.const 7736) "\01\00\00\00\14\00\00\00w\00r\00o\00n\00g\00L\00a\00b\00e\00l") + (data (i32.const 7772) ",") + (data (i32.const 7784) "\01\00\00\00\1c\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00L\00a\00b\00e\00l") + (data (i32.const 7820) "\1c") + (data (i32.const 7832) "\01\00\00\00\02\00\00\001") + (data (i32.const 7852) "\1c") + (data (i32.const 7864) "\01\00\00\00\04\00\00\001\002") + (data (i32.const 7884) "\1c") + (data (i32.const 7896) "\01\00\00\00\06\00\00\001\002\003") + (data (i32.const 7916) "\1c") + (data (i32.const 7928) "\01\00\00\00\08\00\00\001\002\003\004") + (data (i32.const 7952) "\04\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 7980) "\10\02\82") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -1539,10 +1539,10 @@ if unreachable end - i32.const 24368 + i32.const 24384 i32.const 0 i32.store - i32.const 25936 + i32.const 25952 i32.const 0 i32.store loop $for-loop|0 @@ -1553,7 +1553,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 24368 + i32.const 24384 i32.add i32.const 0 i32.store offset=4 @@ -1571,7 +1571,7 @@ i32.add i32.const 2 i32.shl - i32.const 24368 + i32.const 24384 i32.add i32.const 0 i32.store offset=96 @@ -1589,13 +1589,13 @@ br $for-loop|0 end end - i32.const 24368 - i32.const 25940 + i32.const 24384 + i32.const 25956 memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 24368 + i32.const 24384 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) @@ -1942,7 +1942,7 @@ (local $1 i32) (local $2 i32) local.get $0 - i32.const 24356 + i32.const 24372 i32.lt_u if return @@ -1989,129 +1989,121 @@ local.get $0 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/process/writeString (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - i32.const -1 - local.set $2 - i32.const -1 - local.set $3 - i32.const -1 - local.set $4 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 + (local $6 i32) + (local $7 i32) + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $5 + local.get $2 + i32.eqz + if + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $5 + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + i32.load16_u offset=6 + local.tee $3 + i32.const 128 + i32.ge_u + br_if $break|0 end local.get $1 - i32.load16_u offset=6 - local.tee $4 + i32.load16_u offset=4 + local.tee $7 i32.const 128 i32.ge_u br_if $break|0 end local.get $1 - i32.load16_u offset=4 - local.tee $3 + i32.load16_u offset=2 + local.tee $6 i32.const 128 i32.ge_u br_if $break|0 end local.get $1 - i32.load16_u offset=2 - local.tee $2 + i32.load16_u + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 - end - local.get $1 - i32.load16_u - local.tee $5 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 1136 - i32.const 1144 - i32.store - i32.const 1140 - local.get $2 - i32.const -1 - i32.ne - i32.const 1 - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - local.get $4 - i32.const -1 - i32.ne - i32.add - i32.store - i32.const 1144 - local.get $2 - i32.const 8 - i32.shl - local.get $5 - i32.or - local.get $3 - i32.const 16 - i32.shl - i32.or - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $0 - i32.const 1136 - i32.const 1 - i32.const 1148 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4272 - i32.const 178 + i32.const 1136 + i32.const 1144 + i32.store + i32.const 1140 + local.get $5 + i32.store + i32.const 1144 + local.get $6 + i32.const 8 + i32.shl + local.get $4 + i32.or + local.get $7 i32.const 16 - call $~lib/wasi/index/abort - unreachable + i32.shl + i32.or + local.get $3 + i32.const 24 + i32.shl + i32.or + i32.store + local.get $0 + i32.const 1136 + i32.const 1 + i32.const 1148 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4272 + i32.const 186 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end end + return end - return end + local.get $5 + local.set $4 i32.const 0 local.set $3 local.get $1 - local.tee $2 - local.get $2 + local.tee $6 + local.tee $5 i32.const 20 i32.sub i32.load offset=16 + local.get $5 i32.add - local.set $4 + local.set $7 loop $while-continue|0 - local.get $2 - local.get $4 + local.get $5 + local.get $7 i32.lt_u if - local.get $2 + local.get $5 i32.load16_u - local.tee $5 + local.tee $1 i32.const 128 i32.lt_u if (result i32) @@ -2119,7 +2111,7 @@ i32.const 1 i32.add else - local.get $5 + local.get $1 i32.const 2048 i32.lt_u if (result i32) @@ -2127,20 +2119,20 @@ i32.const 2 i32.add else - local.get $4 - local.get $2 + local.get $7 + local.get $5 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $5 + local.get $1 i32.const 64512 i32.and i32.const 55296 i32.eq select if - local.get $2 + local.get $5 i32.load16_u offset=2 i32.const 64512 i32.and @@ -2151,10 +2143,10 @@ i32.const 4 i32.add local.set $3 - local.get $2 + local.get $5 i32.const 4 i32.add - local.set $2 + local.set $5 br $while-continue|0 end end @@ -2164,44 +2156,50 @@ end end local.set $3 - local.get $2 + local.get $5 i32.const 2 i32.add - local.set $2 + local.set $5 br $while-continue|0 end end local.get $3 + local.tee $1 + local.get $2 + i32.const 0 + i32.ne + i32.add call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 + local.set $5 i32.const 3 global.set $~argumentsLength - local.get $1 + local.get $6 local.get $4 - local.get $2 + local.get $5 call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $3 + local.get $1 i32.ne if i32.const 0 i32.const 4272 - i32.const 184 + i32.const 193 i32.const 3 call $~lib/wasi/index/abort unreachable end - i32.const 1136 local.get $2 + if + local.get $1 + local.get $5 + i32.add + i32.const 10 + i32.store8 + end + i32.const 1136 + local.get $5 i32.store i32.const 1140 - local.get $3 + local.get $1 i32.store local.get $0 i32.const 1136 @@ -2209,7 +2207,7 @@ i32.const 1144 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $2 + local.get $5 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2218,7 +2216,7 @@ local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4272 - i32.const 189 + i32.const 199 i32.const 12 call $~lib/wasi/index/abort unreachable @@ -2233,19 +2231,19 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 5120 + i32.const 5136 call $~lib/rt/itcms/__visit - i32.const 5264 + i32.const 5280 call $~lib/rt/itcms/__visit - i32.const 5696 + i32.const 5712 call $~lib/rt/itcms/__visit i32.const 4400 call $~lib/rt/itcms/__visit i32.const 1184 call $~lib/rt/itcms/__visit - i32.const 6432 + i32.const 6448 call $~lib/rt/itcms/__visit - i32.const 7488 + i32.const 7504 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -2266,7 +2264,7 @@ i32.ne if i32.const 0 - i32.const 4992 + i32.const 5008 i32.const 159 i32.const 16 call $~lib/wasi/index/abort @@ -2299,7 +2297,7 @@ i32.eqz if i32.const 0 - i32.const 4992 + i32.const 5008 i32.const 147 i32.const 30 call $~lib/wasi/index/abort @@ -2318,7 +2316,7 @@ if i32.const 0 local.get $0 - i32.const 24356 + i32.const 24372 i32.lt_u local.get $0 i32.load offset=8 @@ -2326,7 +2324,7 @@ i32.eqz if i32.const 0 - i32.const 4992 + i32.const 5008 i32.const 127 i32.const 18 call $~lib/wasi/index/abort @@ -2340,7 +2338,7 @@ i32.eqz if i32.const 0 - i32.const 4992 + i32.const 5008 i32.const 131 i32.const 16 call $~lib/wasi/index/abort @@ -2369,12 +2367,12 @@ i32.const 1 else local.get $1 - i32.const 7936 + i32.const 7952 i32.load i32.gt_u if - i32.const 5120 - i32.const 5184 + i32.const 5136 + i32.const 5200 i32.const 22 i32.const 28 call $~lib/wasi/index/abort @@ -2383,7 +2381,7 @@ local.get $1 i32.const 3 i32.shl - i32.const 7940 + i32.const 7956 i32.add i32.load i32.const 32 @@ -2523,7 +2521,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 24356 + i32.const 24372 i32.lt_u if local.get $0 @@ -2611,14 +2609,14 @@ i32.ne if i32.const 0 - i32.const 4992 + i32.const 5008 i32.const 228 i32.const 20 call $~lib/wasi/index/abort unreachable end local.get $0 - i32.const 24356 + i32.const 24372 i32.lt_u if local.get $0 @@ -2845,7 +2843,7 @@ i32.ge_u if i32.const 4400 - i32.const 4992 + i32.const 5008 i32.const 260 i32.const 31 call $~lib/wasi/index/abort @@ -2959,7 +2957,7 @@ i32.eqz if i32.const 0 - i32.const 4992 + i32.const 5008 i32.const 294 i32.const 14 call $~lib/wasi/index/abort @@ -3235,11 +3233,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s if - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -3392,7 +3390,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 6012 + i32.const 6028 i32.add i64.load32_u local.get $3 @@ -3400,7 +3398,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 6012 + i32.const 6028 i32.add i64.load32_u i64.const 32 @@ -3427,7 +3425,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 6012 + i32.const 6028 i32.add i32.load i32.store @@ -3450,7 +3448,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 6012 + i32.const 6028 i32.add i32.load i32.store @@ -3478,11 +3476,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s if - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -3499,7 +3497,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 6000 + i32.const 6016 local.set $2 br $__inlined_func$~lib/util/number/utoa64 end @@ -3657,7 +3655,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 6012 + i32.const 6028 i32.add i64.load32_u local.get $4 @@ -3665,7 +3663,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 6012 + i32.const 6028 i32.add i64.load32_u i64.const 32 @@ -3688,7 +3686,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 6012 + i32.const 6028 i32.add i64.load32_u local.get $3 @@ -3696,7 +3694,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 6012 + i32.const 6028 i32.add i64.load32_u i64.const 32 @@ -3802,11 +3800,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s if - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -3823,51 +3821,21 @@ i32.store i32.const 2 i32.const 1088 - call $~lib/process/writeString - i32.const 2 - local.get $1 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 4464 + local.get $1 + select + local.tee $0 i32.store i32.const 2 - i32.const 4464 - call $~lib/process/writeString - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.log (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 + local.get $0 i32.const 1 - call $~lib/wasi/index/abort - unreachable + call $~lib/process/writeString end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer @@ -3883,11 +3851,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s if - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4067,7 +4035,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4085,19 +4053,22 @@ call $~lib/map/Map<~lib/string/String,u64>#find if global.get $~lib/memory/__stack_pointer - i32.const 5376 + i32.const 5392 i32.store offset=4 - i32.const 1 - i32.const 5376 + i32.const 2 + i32.const 5392 + i32.const 0 call $~lib/process/writeString - i32.const 1 + i32.const 2 local.get $0 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 5440 + i32.const 5456 i32.store offset=4 - i32.const 1 - i32.const 5440 + i32.const 2 + i32.const 5456 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4116,7 +4087,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4223,8 +4194,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4238,11 +4209,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s if - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4267,8 +4238,8 @@ local.tee $1 i32.eqz if - i32.const 5696 - i32.const 5760 + i32.const 5712 + i32.const 5776 i32.const 105 i32.const 17 call $~lib/wasi/index/abort @@ -4290,21 +4261,25 @@ i32.store offset=4 i32.const 1 local.get $0 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7584 + i32.const 7600 i32.store offset=8 i32.const 1 - i32.const 7584 + i32.const 7600 + i32.const 0 call $~lib/process/writeString i32.const 1 local.get $1 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7616 + i32.const 7632 i32.store offset=8 i32.const 1 - i32.const 7616 + i32.const 7632 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 12 @@ -4318,11 +4293,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s if - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4344,19 +4319,22 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 5536 + i32.const 5552 i32.store offset=4 - i32.const 1 - i32.const 5536 + i32.const 2 + i32.const 5552 + i32.const 0 call $~lib/process/writeString - i32.const 1 + i32.const 2 local.get $0 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 5616 + i32.const 5632 i32.store offset=4 - i32.const 1 - i32.const 5616 + i32.const 2 + i32.const 5632 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4379,11 +4357,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s if - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4405,19 +4383,22 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 5536 + i32.const 5552 i32.store offset=4 - i32.const 1 - i32.const 5536 + i32.const 2 + i32.const 5552 + i32.const 0 call $~lib/process/writeString - i32.const 1 + i32.const 2 local.get $0 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7648 + i32.const 7664 i32.store offset=4 - i32.const 1 - i32.const 7648 + i32.const 2 + i32.const 7664 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 8 @@ -4499,7 +4480,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4513,26 +4494,28 @@ i32.const 1056 call $~lib/console/console.assert global.get $~lib/memory/__stack_pointer - i32.const 4496 + i32.const 4512 i32.store i32.const 1 - i32.const 4496 + i32.const 4512 call $~lib/console/console.assert global.get $~lib/memory/__stack_pointer - i32.const 4528 + i32.const 4544 i32.store offset=4 - i32.const 4528 - call $~lib/console/console.log + i32.const 1 + i32.const 4544 + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4576 + i32.const 4592 i32.store offset=4 local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4540,19 +4523,15 @@ i32.const 0 i32.store local.get $0 - i32.const 4624 + i32.const 4640 i32.store i32.const 1 - i32.const 4624 + i32.const 4640 + i32.const 0 call $~lib/process/writeString i32.const 1 - i32.const 4576 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store + i32.const 4592 i32.const 1 - i32.const 4464 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4560,14 +4539,14 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4672 + i32.const 4688 i32.store offset=4 local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4575,19 +4554,15 @@ i32.const 0 i32.store local.get $0 - i32.const 4720 + i32.const 4736 i32.store i32.const 1 - i32.const 4720 + i32.const 4736 + i32.const 0 call $~lib/process/writeString i32.const 1 - i32.const 4672 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store + i32.const 4688 i32.const 1 - i32.const 4464 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4595,14 +4570,14 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4752 + i32.const 4768 i32.store offset=4 local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4610,19 +4585,15 @@ i32.const 0 i32.store local.get $0 - i32.const 4800 + i32.const 4816 i32.store - i32.const 1 - i32.const 4800 - call $~lib/process/writeString - i32.const 1 - i32.const 4752 + i32.const 2 + i32.const 4816 + i32.const 0 call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store + i32.const 2 + i32.const 4768 i32.const 1 - i32.const 4464 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4630,14 +4601,14 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.tee $0 - i32.const 4848 + i32.const 4864 i32.store offset=4 local.get $0 i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4645,19 +4616,15 @@ i32.const 0 i32.store local.get $0 - i32.const 4896 + i32.const 4912 i32.store - i32.const 1 - i32.const 4896 - call $~lib/process/writeString - i32.const 1 - i32.const 4848 + i32.const 2 + i32.const 4912 + i32.const 0 call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store + i32.const 2 + i32.const 4864 i32.const 1 - i32.const 4464 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4666,41 +4633,41 @@ memory.size i32.const 16 i32.shl - i32.const 24356 + i32.const 24372 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 5044 - i32.const 5040 + i32.const 5060 + i32.const 5056 i32.store - i32.const 5048 - i32.const 5040 + i32.const 5064 + i32.const 5056 i32.store - i32.const 5040 + i32.const 5056 global.set $~lib/rt/itcms/pinSpace - i32.const 5076 - i32.const 5072 + i32.const 5092 + i32.const 5088 i32.store - i32.const 5080 - i32.const 5072 + i32.const 5096 + i32.const 5088 i32.store - i32.const 5072 + i32.const 5088 global.set $~lib/rt/itcms/toSpace - i32.const 5220 - i32.const 5216 + i32.const 5236 + i32.const 5232 i32.store - i32.const 5224 - i32.const 5216 + i32.const 5240 + i32.const 5232 i32.store - i32.const 5216 + i32.const 5232 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4750,68 +4717,76 @@ local.get $0 global.set $~lib/console/timers global.get $~lib/memory/__stack_pointer - i32.const 4944 + i32.const 4960 i32.store offset=4 - i32.const 4944 + i32.const 4960 call $~lib/console/console.time global.get $~lib/memory/__stack_pointer - i32.const 4944 + i32.const 4960 i32.store offset=4 - i32.const 4944 + i32.const 4960 call $~lib/console/console.timeLog global.get $~lib/memory/__stack_pointer - i32.const 4944 + i32.const 4960 i32.store offset=4 - i32.const 4944 + i32.const 4960 call $~lib/console/console.timeEnd global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 7744 i32.store offset=4 - i32.const 7728 + i32.const 7744 call $~lib/console/console.timeLog global.get $~lib/memory/__stack_pointer - i32.const 7728 + i32.const 7744 i32.store offset=4 - i32.const 7728 + i32.const 7744 call $~lib/console/console.timeEnd global.get $~lib/memory/__stack_pointer - i32.const 7776 + i32.const 7792 i32.store offset=4 - i32.const 7776 + i32.const 7792 call $~lib/console/console.time global.get $~lib/memory/__stack_pointer - i32.const 7776 + i32.const 7792 i32.store offset=4 - i32.const 7776 + i32.const 7792 call $~lib/console/console.time global.get $~lib/memory/__stack_pointer - i32.const 7824 + i32.const 7840 i32.store offset=4 - i32.const 7824 - call $~lib/console/console.log + i32.const 1 + i32.const 7840 + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7856 + i32.const 7872 i32.store offset=4 - i32.const 7856 - call $~lib/console/console.log + i32.const 1 + i32.const 7872 + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7888 + i32.const 7904 i32.store offset=4 - i32.const 7888 - call $~lib/console/console.log + i32.const 1 + i32.const 7904 + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7920 + i32.const 7936 i32.store offset=4 - i32.const 7920 - call $~lib/console/console.log + i32.const 1 + i32.const 7936 + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer return end - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4824,11 +4799,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7972 + i32.const 7988 i32.lt_s if - i32.const 24384 - i32.const 24432 + i32.const 24400 + i32.const 24448 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4841,8 +4816,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 5264 - i32.const 5312 + i32.const 5280 + i32.const 5328 i32.const 49 i32.const 43 call $~lib/wasi/index/abort diff --git a/tests/compiler/std-wasi/console.untouched.wat b/tests/compiler/std-wasi/console.untouched.wat index 6b8ed69bd1..819938c00a 100644 --- a/tests/compiler/std-wasi/console.untouched.wat +++ b/tests/compiler/std-wasi/console.untouched.wat @@ -3,8 +3,8 @@ (type $i32_=>_none (func (param i32))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_none (func)) (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $none_=>_none (func)) (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) @@ -40,10 +40,10 @@ (global $~lib/ASC_SHRINK_LEVEL i32 (i32.const 0)) (global $~lib/console/timers (mut i32) (i32.const 0)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) - (global $~lib/rt/__rtti_base i32 (i32.const 6912)) - (global $~lib/memory/__data_end i32 (i32.const 6948)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23332)) - (global $~lib/memory/__heap_base i32 (i32.const 23332)) + (global $~lib/rt/__rtti_base i32 (i32.const 6928)) + (global $~lib/memory/__data_end i32 (i32.const 6964)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23348)) + (global $~lib/memory/__heap_base i32 (i32.const 23348)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00w\00h\00o\00o\00p\00s\00") @@ -132,48 +132,48 @@ (data (i32.const 3228) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3292) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3356) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 3420) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00p\00h\00e\00w\00\00\00\00\00") - (data (i32.const 3484) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00h\00e\00l\00l\00o\00 \00l\00o\00g\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3532) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00d\00e\00b\00u\00g\00\00\00\00\00\00\00") - (data (i32.const 3580) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00D\00e\00b\00u\00g\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00i\00n\00f\00o\00\00\00\00\00\00\00\00\00") - (data (i32.const 3676) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00n\00f\00o\00:\00 \00") - (data (i32.const 3708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00w\00a\00r\00n\00\00\00\00\00\00\00\00\00") - (data (i32.const 3756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00e\00r\00r\00o\00r\00\00\00\00\00\00\00") - (data (i32.const 3852) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00E\00r\00r\00o\00r\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3900) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00s\00o\00m\00e\00L\00a\00b\00e\00l\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3948) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4016) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4048) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4076) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 4140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 4192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 4268) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4332) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00L\00a\00b\00e\00l\00 \00\'\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4396) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\00\'\00 \00a\00l\00r\00e\00a\00d\00y\00 \00e\00x\00i\00s\00t\00s\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00(\00)\00\n\00\00\00\00\00") - (data (i32.const 4492) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00N\00o\00 \00s\00u\00c\00h\00 \00l\00a\00b\00e\00l\00 \00\'\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4572) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00L\00o\00g\00(\00)\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4652) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") - (data (i32.const 4716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4764) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") - (data (i32.const 4892) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4988) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 5388) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6444) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") - (data (i32.const 6540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00:\00 \00\00\00\00\00\00\00\00\00") - (data (i32.const 6572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00m\00s\00\n\00\00\00\00\00\00\00") - (data (i32.const 6604) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00E\00n\00d\00(\00)\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00w\00r\00o\00n\00g\00L\00a\00b\00e\00l\00\00\00\00\00\00\00\00\00") - (data (i32.const 6732) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00L\00a\00b\00e\00l\00") - (data (i32.const 6780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") - (data (i32.const 6844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") - (data (i32.const 6876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\002\003\004\00\00\00\00\00") - (data (i32.const 6912) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\02\82\00\00\00\00\00") + (data (i32.const 3420) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00c\00o\00n\00s\00o\00l\00e\00.\00a\00s\00s\00e\00r\00t\00") + (data (i32.const 3468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00p\00h\00e\00w\00\00\00\00\00") + (data (i32.const 3500) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00h\00e\00l\00l\00o\00 \00l\00o\00g\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3548) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00d\00e\00b\00u\00g\00\00\00\00\00\00\00") + (data (i32.const 3596) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00D\00e\00b\00u\00g\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3644) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00i\00n\00f\00o\00\00\00\00\00\00\00\00\00") + (data (i32.const 3692) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00n\00f\00o\00:\00 \00") + (data (i32.const 3724) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00w\00a\00r\00n\00\00\00\00\00\00\00\00\00") + (data (i32.const 3772) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3820) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00e\00r\00r\00o\00r\00\00\00\00\00\00\00") + (data (i32.const 3868) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00E\00r\00r\00o\00r\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3916) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00s\00o\00m\00e\00L\00a\00b\00e\00l\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3964) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4032) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4064) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4092) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 4156) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 4208) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 4284) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4348) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00L\00a\00b\00e\00l\00 \00\'\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4412) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\00\'\00 \00a\00l\00r\00e\00a\00d\00y\00 \00e\00x\00i\00s\00t\00s\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00(\00)\00\n\00\00\00\00\00") + (data (i32.const 4508) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00N\00o\00 \00s\00u\00c\00h\00 \00l\00a\00b\00e\00l\00 \00\'\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4588) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00L\00o\00g\00(\00)\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4668) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data (i32.const 4732) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4780) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 4908) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 5004) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 5404) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6460) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 6556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00:\00 \00\00\00\00\00\00\00\00\00") + (data (i32.const 6588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00m\00s\00\n\00\00\00\00\00\00\00") + (data (i32.const 6620) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00E\00n\00d\00(\00)\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6700) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00w\00r\00o\00n\00g\00L\00a\00b\00e\00l\00\00\00\00\00\00\00\00\00") + (data (i32.const 6748) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00L\00a\00b\00e\00l\00") + (data (i32.const 6796) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6828) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") + (data (i32.const 6860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") + (data (i32.const 6892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\002\003\004\00\00\00\00\00") + (data (i32.const 6928) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\02\82\00\00\00\00\00") (table $0 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -2837,8 +2837,7 @@ call $~lib/rt/tlsf/checkUsedBlock call $~lib/rt/tlsf/freeBlock ) - (func $~lib/process/writeString (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2846,176 +2845,183 @@ (local $7 i32) (local $8 i32) (local $9 i32) - i32.const -1 - local.set $2 - i32.const -1 + (local $10 i32) + (local $11 i32) + local.get $1 + call $~lib/string/String#get:length local.set $3 - i32.const -1 - local.set $4 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 + local.get $2 + i32.eqz + if + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + i32.const 0 + local.set $6 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $3 + local.set $7 + local.get $7 + i32.const 4 + i32.eq + br_if $case0|0 + local.get $7 + i32.const 3 + i32.eq + br_if $case1|0 + local.get $7 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $7 + i32.const 1 + i32.eq + br_if $case3|0 + local.get $7 + i32.const 0 + i32.eq + br_if $case4|0 + br $break|0 + end local.get $1 - call $~lib/string/String#get:length - local.set $5 - local.get $5 - i32.const 4 - i32.eq - br_if $case0|0 - local.get $5 - i32.const 3 - i32.eq - br_if $case1|0 - local.get $5 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $5 - i32.const 1 - i32.eq - br_if $case3|0 - local.get $5 - i32.const 0 - i32.eq - br_if $case4|0 - br $break|0 + i32.load16_u offset=6 + local.set $6 + local.get $6 + i32.const 128 + i32.ge_u + if + br $break|0 + end end local.get $1 - i32.load16_u offset=6 - local.set $4 - local.get $4 + i32.load16_u offset=4 + local.set $5 + local.get $5 i32.const 128 - i32.ge_s + i32.ge_u if br $break|0 end end local.get $1 - i32.load16_u offset=4 - local.set $3 - local.get $3 + i32.load16_u offset=2 + local.set $4 + local.get $4 i32.const 128 - i32.ge_s + i32.ge_u if br $break|0 end end local.get $1 - i32.load16_u offset=2 - local.set $2 - local.get $2 + i32.load16_u + local.set $7 + local.get $7 i32.const 128 - i32.ge_s + i32.ge_u if br $break|0 end - end - local.get $1 - i32.load16_u - local.set $5 - local.get $5 - i32.const 128 - i32.ge_s - if - br $break|0 - end - global.get $~lib/process/iobuf - global.get $~lib/process/iobuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - i32.store - global.get $~lib/process/iobuf - i32.const 1 - local.get $2 - i32.const -1 - i32.ne - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - local.get $4 - i32.const -1 - i32.ne - i32.add - i32.store offset=4 - global.get $~lib/process/iobuf - local.get $5 - local.get $2 - i32.const 8 - i32.shl - i32.or - local.get $3 - i32.const 16 - i32.shl - i32.or - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store offset=8 - local.get $0 - global.get $~lib/process/iobuf - i32.const 1 - global.get $~lib/process/iobuf - i32.const 3 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $6 - local.get $6 - i32.const 65535 - i32.and - if - local.get $6 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3248 - i32.const 178 + global.get $~lib/process/iobuf + global.get $~lib/process/iobuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + i32.store + global.get $~lib/process/iobuf + local.get $3 + i32.store offset=4 + global.get $~lib/process/iobuf + local.get $7 + local.get $4 + i32.const 8 + i32.shl + i32.or + local.get $5 i32.const 16 - call $~lib/wasi/index/abort - unreachable + i32.shl + i32.or + local.get $6 + i32.const 24 + i32.shl + i32.or + i32.store offset=8 + local.get $0 + global.get $~lib/process/iobuf + i32.const 1 + global.get $~lib/process/iobuf + i32.const 3 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $8 + local.get $8 + i32.const 65535 + i32.and + if + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3248 + i32.const 186 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end end + return end - return end local.get $1 i32.const 0 call $~lib/string/String.UTF8.byteLength - local.set $7 - local.get $7 + local.set $9 + local.get $9 + local.get $2 + i32.const 0 + i32.ne + i32.add call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $1 + local.set $10 local.get $1 - call $~lib/string/String#get:length - local.get $8 + local.get $3 + local.get $10 i32.const 0 i32.const 3 global.set $~argumentsLength i32.const 0 call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $7 + local.get $9 i32.eq i32.eqz if i32.const 0 i32.const 3248 - i32.const 184 + i32.const 193 i32.const 3 call $~lib/wasi/index/abort unreachable end + local.get $2 + if + local.get $10 + local.get $9 + i32.add + i32.const 10 + i32.store8 + end global.get $~lib/process/iobuf - local.get $8 + local.get $10 i32.store global.get $~lib/process/iobuf - local.get $7 + local.get $9 i32.store offset=4 local.get $0 global.get $~lib/process/iobuf @@ -3026,17 +3032,17 @@ i32.mul i32.add call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $9 - local.get $8 + local.set $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $11 i32.const 65535 i32.and if - local.get $9 + local.get $11 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 3248 - i32.const 189 + i32.const 199 i32.const 12 call $~lib/wasi/index/abort unreachable @@ -3047,8 +3053,20 @@ drop local.get $0 local.get $1 + i32.const 0 call $~lib/process/writeString ) + (func $~lib/process/WritableStream#writeLn (param $0 i32) (param $1 i32) + local.get $0 + local.get $1 + i32.const 1 + call $~lib/process/writeString + ) + (func $~lib/console/console.log (param $0 i32) + global.get $~lib/process/process.stdout + local.get $0 + call $~lib/process/WritableStream#writeLn + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -3109,7 +3127,7 @@ i32.eqz if i32.const 0 - i32.const 3968 + i32.const 3984 i32.const 159 i32.const 16 call $~lib/wasi/index/abort @@ -3175,7 +3193,7 @@ i32.eqz if i32.const 0 - i32.const 3968 + i32.const 3984 i32.const 127 i32.const 18 call $~lib/wasi/index/abort @@ -3192,7 +3210,7 @@ i32.eqz if i32.const 0 - i32.const 3968 + i32.const 3984 i32.const 131 i32.const 16 call $~lib/wasi/index/abort @@ -3214,8 +3232,8 @@ i32.load i32.gt_u if - i32.const 4096 - i32.const 4160 + i32.const 4112 + i32.const 4176 i32.const 22 i32.const 28 call $~lib/wasi/index/abort @@ -3281,7 +3299,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 3968 + i32.const 3984 i32.const 147 i32.const 30 call $~lib/wasi/index/abort @@ -3549,7 +3567,7 @@ i32.eqz if i32.const 0 - i32.const 3968 + i32.const 3984 i32.const 228 i32.const 20 call $~lib/wasi/index/abort @@ -3881,7 +3899,7 @@ i32.ge_u if i32.const 3376 - i32.const 3968 + i32.const 3984 i32.const 260 i32.const 31 call $~lib/wasi/index/abort @@ -3940,7 +3958,7 @@ i32.eqz if i32.const 0 - i32.const 3968 + i32.const 3984 i32.const 294 i32.const 14 call $~lib/wasi/index/abort @@ -4634,8 +4652,8 @@ local.get $2 i32.eqz if - i32.const 4672 - i32.const 4736 + i32.const 4688 + i32.const 4752 i32.const 105 i32.const 17 call $~lib/wasi/index/abort @@ -4679,14 +4697,14 @@ i32.const 100 i32.rem_u local.set $7 - i32.const 4988 + i32.const 5004 local.get $6 i32.const 2 i32.shl i32.add i64.load32_u local.set $8 - i32.const 4988 + i32.const 5004 local.get $7 i32.const 2 i32.shl @@ -4729,7 +4747,7 @@ i32.const 2 i32.sub local.set $2 - i32.const 4988 + i32.const 5004 local.get $10 i32.const 2 i32.shl @@ -4752,7 +4770,7 @@ i32.const 2 i32.sub local.set $2 - i32.const 4988 + i32.const 5004 local.get $1 i32.const 2 i32.shl @@ -4899,14 +4917,14 @@ i32.const 100 i32.rem_u local.set $11 - i32.const 4988 + i32.const 5004 local.get $10 i32.const 2 i32.shl i32.add i64.load32_u local.set $12 - i32.const 4988 + i32.const 5004 local.get $11 i32.const 2 i32.shl @@ -4928,14 +4946,14 @@ i64.shl i64.or i64.store - i32.const 4988 + i32.const 5004 local.get $8 i32.const 2 i32.shl i32.add i64.load32_u local.set $12 - i32.const 4988 + i32.const 5004 local.get $9 i32.const 2 i32.shl @@ -4984,7 +5002,7 @@ i32.const 1 i32.shl i32.add - i32.const 5408 + i32.const 5424 local.get $1 i32.wrap_i64 i32.const 255 @@ -5006,7 +5024,7 @@ i32.and if local.get $0 - i32.const 5408 + i32.const 5424 local.get $1 i32.wrap_i64 i32.const 6 @@ -5129,7 +5147,7 @@ i32.const 1 i32.shl i32.add - i32.const 6464 + i32.const 6480 local.get $1 local.get $6 i64.and @@ -5165,7 +5183,7 @@ i32.const 1 i32.shl i32.add - i32.const 6464 + i32.const 6480 local.get $1 local.get $6 local.get $4 @@ -5269,13 +5287,13 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 4096 + i32.const 4112 local.get $0 call $~lib/rt/itcms/__visit - i32.const 4240 + i32.const 4256 local.get $0 call $~lib/rt/itcms/__visit - i32.const 4672 + i32.const 4688 local.get $0 call $~lib/rt/itcms/__visit i32.const 3376 @@ -5284,10 +5302,10 @@ i32.const 160 local.get $0 call $~lib/rt/itcms/__visit - i32.const 5408 + i32.const 5424 local.get $0 call $~lib/rt/itcms/__visit - i32.const 6464 + i32.const 6480 local.get $0 call $~lib/rt/itcms/__visit ) @@ -5413,8 +5431,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 23360 - i32.const 23408 + i32.const 23376 + i32.const 23424 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -5447,50 +5465,25 @@ call $~lib/process/WritableStream#write<~lib/string/String> local.get $2 local.get $1 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $2 - i32.const 3440 + i32.const 0 + i32.ne + if (result i32) + local.get $1 + else + i32.const 3440 + end local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store local.get $3 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/WritableStream#writeLn end global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.log (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/console/console.debug (param $0 i32) (local $1 i32) (local $2 i32) @@ -5505,7 +5498,7 @@ global.get $~lib/process/process.stdout local.set $1 local.get $1 - i32.const 3600 + i32.const 3616 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5514,15 +5507,7 @@ call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/WritableStream#writeLn global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -5542,7 +5527,7 @@ global.get $~lib/process/process.stdout local.set $1 local.get $1 - i32.const 3696 + i32.const 3712 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5551,15 +5536,7 @@ call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/WritableStream#writeLn global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -5576,10 +5553,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/process/process.stdout + global.get $~lib/process/process.stderr local.set $1 local.get $1 - i32.const 3776 + i32.const 3792 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5588,15 +5565,7 @@ call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/WritableStream#writeLn global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -5613,10 +5582,10 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - global.get $~lib/process/process.stdout + global.get $~lib/process/process.stderr local.set $1 local.get $1 - i32.const 3872 + i32.const 3888 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5625,15 +5594,7 @@ call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> + call $~lib/process/WritableStream#writeLn global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -5726,8 +5687,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/process/process.stdout - local.set $1 global.get $~lib/console/timers local.set $2 global.get $~lib/memory/__stack_pointer @@ -5737,8 +5696,10 @@ local.get $0 call $~lib/map/Map<~lib/string/String,u64>#has if + global.get $~lib/process/process.stderr + local.set $1 local.get $1 - i32.const 4352 + i32.const 4368 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5749,7 +5710,7 @@ local.get $0 call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 - i32.const 4416 + i32.const 4432 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5827,7 +5788,7 @@ local.get $0 call $~lib/process/WritableStream#write<~lib/string/String> local.get $6 - i32.const 6560 + i32.const 6576 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -5838,7 +5799,7 @@ local.get $5 call $~lib/process/WritableStream#write<~lib/string/String> local.get $6 - i32.const 6592 + i32.const 6608 local.set $7 global.get $~lib/memory/__stack_pointer local.get $7 @@ -5861,8 +5822,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/process/process.stdout - local.set $1 global.get $~lib/console/timers local.set $2 global.get $~lib/memory/__stack_pointer @@ -5873,8 +5832,10 @@ call $~lib/map/Map<~lib/string/String,u64>#has i32.eqz if + global.get $~lib/process/process.stderr + local.set $1 local.get $1 - i32.const 4512 + i32.const 4528 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5885,7 +5846,7 @@ local.get $0 call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 - i32.const 4592 + i32.const 4608 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5916,8 +5877,6 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - global.get $~lib/process/process.stdout - local.set $1 global.get $~lib/console/timers local.set $2 global.get $~lib/memory/__stack_pointer @@ -5928,8 +5887,10 @@ call $~lib/map/Map<~lib/string/String,u64>#has i32.eqz if + global.get $~lib/process/process.stderr + local.set $1 local.get $1 - i32.const 4512 + i32.const 4528 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5940,7 +5901,7 @@ local.get $0 call $~lib/process/WritableStream#write<~lib/string/String> local.get $1 - i32.const 6624 + i32.const 6640 local.set $2 global.get $~lib/memory/__stack_pointer local.get $2 @@ -5988,42 +5949,42 @@ local.get $0 call $~lib/console/console.assert i32.const 1 - i32.const 3472 + i32.const 3488 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 call $~lib/console/console.assert - i32.const 3504 + i32.const 3520 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.log - i32.const 3552 + i32.const 3568 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.debug - i32.const 3648 + i32.const 3664 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.info - i32.const 3728 + i32.const 3744 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.warn - i32.const 3824 + i32.const 3840 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6038,89 +5999,89 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 4016 + i32.const 4032 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 4048 + i32.const 4064 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 4192 + i32.const 4208 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace i32.const 0 call $~lib/map/Map<~lib/string/String,u64>#constructor global.set $~lib/console/timers - i32.const 3920 + i32.const 3936 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.time - i32.const 3920 + i32.const 3936 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.timeLog - i32.const 3920 + i32.const 3936 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.timeEnd - i32.const 6704 + i32.const 6720 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.timeLog - i32.const 6704 + i32.const 6720 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.timeEnd - i32.const 6752 + i32.const 6768 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.time - i32.const 6752 + i32.const 6768 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.time - i32.const 6800 + i32.const 6816 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.log - i32.const 6832 + i32.const 6848 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.log - i32.const 6864 + i32.const 6880 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/console/console.log - i32.const 6896 + i32.const 6912 local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 @@ -6147,8 +6108,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 4240 - i32.const 4288 + i32.const 4256 + i32.const 4304 i32.const 49 i32.const 43 call $~lib/wasi/index/abort @@ -6379,8 +6340,8 @@ i32.gt_s end if - i32.const 4784 - i32.const 4912 + i32.const 4800 + i32.const 4928 i32.const 401 i32.const 5 call $~lib/wasi/index/abort @@ -6391,7 +6352,7 @@ i64.ne i32.eqz if - i32.const 4976 + i32.const 4992 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/std-wasi/crypto.optimized.wat b/tests/compiler/std-wasi/crypto.optimized.wat index b6db0e1274..b5245778c7 100644 --- a/tests/compiler/std-wasi/crypto.optimized.wat +++ b/tests/compiler/std-wasi/crypto.optimized.wat @@ -27,7 +27,7 @@ (global $std-wasi/crypto/buf (mut i32) (i32.const 0)) (global $std-wasi/crypto/b1 (mut i32) (i32.const 0)) (global $std-wasi/crypto/b2 (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23284)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23252)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 1036) "<") @@ -227,12 +227,10 @@ (data (i32.const 6648) "\01\00\00\00\02\00\00\00,") (data (i32.const 6700) "<") (data (i32.const 6712) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s") - (data (i32.const 6764) "\1c") - (data (i32.const 6776) "\01\00\00\00\02\00\00\00\n") - (data (i32.const 6796) "<") - (data (i32.const 6808) "\01\00\00\00$\00\00\00s\00t\00d\00-\00w\00a\00s\00i\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s") - (data (i32.const 6864) "\04\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 6892) "A\00\00\00\02") + (data (i32.const 6764) "<") + (data (i32.const 6776) "\01\00\00\00$\00\00\00s\00t\00d\00-\00w\00a\00s\00i\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s") + (data (i32.const 6832) "\04\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 6860) "A\00\00\00\02") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -752,7 +750,7 @@ if i32.const 0 local.get $0 - i32.const 23284 + i32.const 23252 i32.lt_u local.get $0 i32.load offset=8 @@ -803,7 +801,7 @@ i32.const 1 else local.get $1 - i32.const 6864 + i32.const 6832 i32.load i32.gt_u if @@ -817,7 +815,7 @@ local.get $1 i32.const 3 i32.shl - i32.const 6868 + i32.const 6836 i32.add i32.load i32.const 32 @@ -1413,10 +1411,10 @@ if unreachable end - i32.const 23296 + i32.const 23264 i32.const 0 i32.store - i32.const 24864 + i32.const 24832 i32.const 0 i32.store loop $for-loop|0 @@ -1427,7 +1425,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 23296 + i32.const 23264 i32.add i32.const 0 i32.store offset=4 @@ -1445,7 +1443,7 @@ i32.add i32.const 2 i32.shl - i32.const 23296 + i32.const 23264 i32.add i32.const 0 i32.store offset=96 @@ -1463,20 +1461,20 @@ br $for-loop|0 end end - i32.const 23296 - i32.const 24868 + i32.const 23264 + i32.const 24836 memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 23296 + i32.const 23264 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/tlsf/__free (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 - i32.const 23284 + i32.const 23252 i32.lt_u if return @@ -1603,7 +1601,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 23284 + i32.const 23252 i32.lt_u if local.get $0 @@ -1698,7 +1696,7 @@ unreachable end local.get $0 - i32.const 23284 + i32.const 23252 i32.lt_u if local.get $0 @@ -3876,11 +3874,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s if - i32.const 23312 - i32.const 23360 + i32.const 23280 + i32.const 23328 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -3941,117 +3939,22 @@ end local.get $1 ) - (func $~lib/process/writeString (param $0 i32) + (func $~lib/console/console.log (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - i32.const -1 - local.set $1 - i32.const -1 - local.set $2 - i32.const -1 - local.set $3 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i32.load16_u offset=6 - local.tee $3 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=4 - local.tee $2 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=2 - local.tee $1 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u - local.tee $4 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 6672 - i32.const 6680 - i32.store - i32.const 6676 - local.get $1 - i32.const -1 - i32.ne - i32.const 1 - i32.add - local.get $2 - i32.const -1 - i32.ne - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - i32.store - i32.const 6680 - local.get $4 - local.get $1 - i32.const 8 - i32.shl - i32.or - local.get $2 - i32.const 16 - i32.shl - i32.or - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - i32.const 1 - i32.const 6672 - i32.const 1 - i32.const 6684 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 6720 - i32.const 178 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - return - end - local.get $0 - local.set $1 - i32.const 0 - local.set $2 + (local $5 i32) local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $5 local.get $0 + local.tee $1 + local.get $1 i32.const 20 i32.sub i32.load offset=16 @@ -4125,19 +4028,14 @@ end end local.get $2 + i32.const 1 + i32.add call $~lib/rt/tlsf/__alloc local.set $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 + local.get $5 local.get $1 call $~lib/string/String.UTF8.encodeUnsafe@varargs local.get $2 @@ -4145,11 +4043,16 @@ if i32.const 0 i32.const 6720 - i32.const 184 + i32.const 193 i32.const 3 call $~lib/wasi/index/abort unreachable end + local.get $1 + local.get $2 + i32.add + i32.const 10 + i32.store8 i32.const 6672 local.get $1 i32.store @@ -4171,7 +4074,7 @@ local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 6720 - i32.const 189 + i32.const 199 i32.const 12 call $~lib/wasi/index/abort unreachable @@ -4237,11 +4140,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s if - i32.const 23312 - i32.const 23360 + i32.const 23280 + i32.const 23328 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4264,37 +4167,6 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/console/console.log (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 6784 - i32.store - i32.const 6784 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $start:std-wasi/crypto (local $0 i32) (local $1 i32) @@ -4305,7 +4177,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4318,7 +4190,7 @@ memory.size i32.const 16 i32.shl - i32.const 23284 + i32.const 23252 i32.sub i32.const 1 i32.shr_u @@ -4352,7 +4224,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4497,7 +4369,7 @@ i32.ne if i32.const 0 - i32.const 6816 + i32.const 6784 i32.const 17 i32.const 3 call $~lib/wasi/index/abort @@ -4538,7 +4410,7 @@ i32.ne if i32.const 0 - i32.const 6816 + i32.const 6784 i32.const 20 i32.const 3 call $~lib/wasi/index/abort @@ -4557,8 +4429,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 23312 - i32.const 23360 + i32.const 23280 + i32.const 23328 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4571,11 +4443,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s if - i32.const 23312 - i32.const 23360 + i32.const 23280 + i32.const 23328 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4672,7 +4544,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4704,7 +4576,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4869,7 +4741,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer @@ -4981,8 +4853,8 @@ local.get $0 return end - i32.const 23312 - i32.const 23360 + i32.const 23280 + i32.const 23328 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -5002,7 +4874,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5034,7 +4906,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5053,7 +4925,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 6900 + i32.const 6868 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5142,8 +5014,8 @@ local.get $1 return end - i32.const 23312 - i32.const 23360 + i32.const 23280 + i32.const 23328 i32.const 1 i32.const 1 call $~lib/wasi/index/abort diff --git a/tests/compiler/std-wasi/crypto.untouched.wat b/tests/compiler/std-wasi/crypto.untouched.wat index 554aeb7e0c..b1371dea6b 100644 --- a/tests/compiler/std-wasi/crypto.untouched.wat +++ b/tests/compiler/std-wasi/crypto.untouched.wat @@ -36,10 +36,10 @@ (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $std-wasi/crypto/b1 (mut i32) (i32.const 0)) (global $std-wasi/crypto/b2 (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 5840)) - (global $~lib/memory/__data_end i32 (i32.const 5876)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 22260)) - (global $~lib/memory/__heap_base i32 (i32.const 22260)) + (global $~lib/rt/__rtti_base i32 (i32.const 5808)) + (global $~lib/memory/__data_end i32 (i32.const 5844)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 22228)) + (global $~lib/memory/__heap_base i32 (i32.const 22228)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") @@ -145,9 +145,8 @@ (data (i32.const 5612) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 5648) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 5676) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5740) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5772) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00s\00t\00d\00-\00w\00a\00s\00i\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 5840) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\02\00\00\00") + (data (i32.const 5740) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00s\00t\00d\00-\00w\00a\00s\00i\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 5808) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\02\00\00\00") (table $0 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -5487,8 +5486,7 @@ end local.get $4 ) - (func $~lib/process/writeString (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5496,176 +5494,183 @@ (local $7 i32) (local $8 i32) (local $9 i32) - i32.const -1 - local.set $2 - i32.const -1 + (local $10 i32) + (local $11 i32) + local.get $1 + call $~lib/string/String#get:length local.set $3 - i32.const -1 - local.set $4 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 + local.get $2 + i32.eqz + if + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + i32.const 0 + local.set $6 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $3 + local.set $7 + local.get $7 + i32.const 4 + i32.eq + br_if $case0|0 + local.get $7 + i32.const 3 + i32.eq + br_if $case1|0 + local.get $7 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $7 + i32.const 1 + i32.eq + br_if $case3|0 + local.get $7 + i32.const 0 + i32.eq + br_if $case4|0 + br $break|0 + end local.get $1 - call $~lib/string/String#get:length - local.set $5 - local.get $5 - i32.const 4 - i32.eq - br_if $case0|0 - local.get $5 - i32.const 3 - i32.eq - br_if $case1|0 - local.get $5 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $5 - i32.const 1 - i32.eq - br_if $case3|0 - local.get $5 - i32.const 0 - i32.eq - br_if $case4|0 - br $break|0 + i32.load16_u offset=6 + local.set $6 + local.get $6 + i32.const 128 + i32.ge_u + if + br $break|0 + end end local.get $1 - i32.load16_u offset=6 - local.set $4 - local.get $4 + i32.load16_u offset=4 + local.set $5 + local.get $5 i32.const 128 - i32.ge_s + i32.ge_u if br $break|0 end end local.get $1 - i32.load16_u offset=4 - local.set $3 - local.get $3 + i32.load16_u offset=2 + local.set $4 + local.get $4 i32.const 128 - i32.ge_s + i32.ge_u if br $break|0 end end local.get $1 - i32.load16_u offset=2 - local.set $2 - local.get $2 + i32.load16_u + local.set $7 + local.get $7 i32.const 128 - i32.ge_s + i32.ge_u if br $break|0 end - end - local.get $1 - i32.load16_u - local.set $5 - local.get $5 - i32.const 128 - i32.ge_s - if - br $break|0 - end - global.get $~lib/process/iobuf - global.get $~lib/process/iobuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - i32.store - global.get $~lib/process/iobuf - i32.const 1 - local.get $2 - i32.const -1 - i32.ne - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - local.get $4 - i32.const -1 - i32.ne - i32.add - i32.store offset=4 - global.get $~lib/process/iobuf - local.get $5 - local.get $2 - i32.const 8 - i32.shl - i32.or - local.get $3 - i32.const 16 - i32.shl - i32.or - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store offset=8 - local.get $0 - global.get $~lib/process/iobuf - i32.const 1 - global.get $~lib/process/iobuf - i32.const 3 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $6 - local.get $6 - i32.const 65535 - i32.and - if - local.get $6 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 5696 - i32.const 178 + global.get $~lib/process/iobuf + global.get $~lib/process/iobuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + i32.store + global.get $~lib/process/iobuf + local.get $3 + i32.store offset=4 + global.get $~lib/process/iobuf + local.get $7 + local.get $4 + i32.const 8 + i32.shl + i32.or + local.get $5 i32.const 16 - call $~lib/wasi/index/abort - unreachable + i32.shl + i32.or + local.get $6 + i32.const 24 + i32.shl + i32.or + i32.store offset=8 + local.get $0 + global.get $~lib/process/iobuf + i32.const 1 + global.get $~lib/process/iobuf + i32.const 3 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $8 + local.get $8 + i32.const 65535 + i32.and + if + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 5696 + i32.const 186 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end end + return end - return end local.get $1 i32.const 0 call $~lib/string/String.UTF8.byteLength - local.set $7 - local.get $7 + local.set $9 + local.get $9 + local.get $2 + i32.const 0 + i32.ne + i32.add call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $1 + local.set $10 local.get $1 - call $~lib/string/String#get:length - local.get $8 + local.get $3 + local.get $10 i32.const 0 i32.const 3 global.set $~argumentsLength i32.const 0 call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $7 + local.get $9 i32.eq i32.eqz if i32.const 0 i32.const 5696 - i32.const 184 + i32.const 193 i32.const 3 call $~lib/wasi/index/abort unreachable end + local.get $2 + if + local.get $10 + local.get $9 + i32.add + i32.const 10 + i32.store8 + end global.get $~lib/process/iobuf - local.get $8 + local.get $10 i32.store global.get $~lib/process/iobuf - local.get $7 + local.get $9 i32.store offset=4 local.get $0 global.get $~lib/process/iobuf @@ -5676,29 +5681,33 @@ i32.mul i32.add call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $9 - local.get $8 + local.set $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $11 i32.const 65535 i32.and if - local.get $9 + local.get $11 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 5696 - i32.const 189 + i32.const 199 i32.const 12 call $~lib/wasi/index/abort unreachable end ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) - i32.const 1 - drop + (func $~lib/process/WritableStream#writeLn (param $0 i32) (param $1 i32) local.get $0 local.get $1 + i32.const 1 call $~lib/process/writeString ) + (func $~lib/console/console.log (param $0 i32) + global.get $~lib/process/process.stdout + local.get $0 + call $~lib/process/WritableStream#writeLn + ) (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -5867,8 +5876,8 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 22288 - i32.const 22336 + i32.const 22256 + i32.const 22304 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -5900,35 +5909,6 @@ global.set $~lib/memory/__stack_pointer local.get $1 ) - (func $~lib/console/console.log (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 5760 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $start:std-wasi/crypto (local $0 i32) (local $1 i32) @@ -6110,7 +6090,7 @@ i32.eqz if i32.const 0 - i32.const 5792 + i32.const 5760 i32.const 17 i32.const 3 call $~lib/wasi/index/abort @@ -6154,7 +6134,7 @@ i32.eqz if i32.const 0 - i32.const 5792 + i32.const 5760 i32.const 20 i32.const 3 call $~lib/wasi/index/abort diff --git a/tests/compiler/std-wasi/process.optimized.wat b/tests/compiler/std-wasi/process.optimized.wat index b66cd23a77..b21ce99f4a 100644 --- a/tests/compiler/std-wasi/process.optimized.wat +++ b/tests/compiler/std-wasi/process.optimized.wat @@ -3,10 +3,10 @@ (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_=>_none (func (param i32))) (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) @@ -35,7 +35,7 @@ (global $~lib/process/process.env (mut i32) (i32.const 0)) (global $std-wasi/process/env (mut i32) (i32.const 0)) (global $std-wasi/process/envKeys (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23788)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23756)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 1036) ",") @@ -207,62 +207,60 @@ (data (i32.const 4332) "<") (data (i32.const 4344) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") (data (i32.const 4396) "\1c") - (data (i32.const 4408) "\01\00\00\00\02\00\00\00\n") - (data (i32.const 4428) "\1c") - (data (i32.const 4440) "\01\00\00\00\0c\00\00\00w\00a\00s\00m\003\002") - (data (i32.const 4460) ",") - (data (i32.const 4472) "\01\00\00\00\1c\00\00\00=\00=\00 \00p\00l\00a\00t\00f\00o\00r\00m\00 \00=\00=") - (data (i32.const 4508) "\1c") - (data (i32.const 4520) "\01\00\00\00\08\00\00\00w\00a\00s\00m") - (data (i32.const 4540) ",") - (data (i32.const 4552) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data (i32.const 4588) ",") - (data (i32.const 4600) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data (i32.const 4636) "<") - (data (i32.const 4648) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data (i32.const 4764) "<") - (data (i32.const 4776) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 4828) ",") - (data (i32.const 4840) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 4908) ",") - (data (i32.const 4920) "\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00g\00v\00 \00=\00=") - (data (i32.const 4956) "|") - (data (i32.const 4968) "\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") - (data (i32.const 5084) "<") - (data (i32.const 5096) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 4408) "\01\00\00\00\0c\00\00\00w\00a\00s\00m\003\002") + (data (i32.const 4428) ",") + (data (i32.const 4440) "\01\00\00\00\1c\00\00\00=\00=\00 \00p\00l\00a\00t\00f\00o\00r\00m\00 \00=\00=") + (data (i32.const 4476) "\1c") + (data (i32.const 4488) "\01\00\00\00\08\00\00\00w\00a\00s\00m") + (data (i32.const 4508) ",") + (data (i32.const 4520) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") + (data (i32.const 4556) ",") + (data (i32.const 4568) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") + (data (i32.const 4604) "<") + (data (i32.const 4616) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") + (data (i32.const 4732) "<") + (data (i32.const 4744) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") + (data (i32.const 4796) ",") + (data (i32.const 4808) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") + (data (i32.const 4876) ",") + (data (i32.const 4888) "\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00g\00v\00 \00=\00=") + (data (i32.const 4924) "|") + (data (i32.const 4936) "\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") + (data (i32.const 5052) "<") + (data (i32.const 5064) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") + (data (i32.const 5116) "\1c") + (data (i32.const 5128) "\01\00\00\00\02\00\00\00=") (data (i32.const 5148) "\1c") - (data (i32.const 5160) "\01\00\00\00\02\00\00\00=") - (data (i32.const 5180) "\1c") - (data (i32.const 5192) "\01") - (data (i32.const 5212) ",") - (data (i32.const 5224) "\01\00\00\00\12\00\00\00=\00=\00 \00e\00n\00v\00 \00=\00=") + (data (i32.const 5160) "\01") + (data (i32.const 5180) ",") + (data (i32.const 5192) "\01\00\00\00\12\00\00\00=\00=\00 \00e\00n\00v\00 \00=\00=") + (data (i32.const 5228) "\1c") + (data (i32.const 5240) "\01\00\00\00\n\00\00\00k\00e\00y\00:\00 ") (data (i32.const 5260) "\1c") - (data (i32.const 5272) "\01\00\00\00\n\00\00\00k\00e\00y\00:\00 ") - (data (i32.const 5292) "\1c") - (data (i32.const 5304) "\01\00\00\00\n\00\00\00v\00a\00l\00:\00 ") - (data (i32.const 5324) "<") - (data (i32.const 5336) "\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data (i32.const 5388) ",") - (data (i32.const 5400) "\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data (i32.const 5436) ",") - (data (i32.const 5448) "\01\00\00\00\14\00\00\00=\00=\00 \00t\00i\00m\00e\00 \00=\00=") - (data (i32.const 5484) "|") - (data (i32.const 5496) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") - (data (i32.const 5612) "<") - (data (i32.const 5624) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 5676) "\1c") - (data (i32.const 5688) "\01\00\00\00\02\00\00\000") - (data (i32.const 5708) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 6108) "\1c\04") - (data (i32.const 6120) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") - (data (i32.const 7164) "\\") - (data (i32.const 7176) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") - (data (i32.const 7260) ",") - (data (i32.const 7272) "\01\00\00\00\18\00\00\00=\00=\00 \00h\00r\00t\00i\00m\00e\00 \00=\00=") - (data (i32.const 7308) ",") - (data (i32.const 7320) "\01\00\00\00\14\00\00\00=\00=\00 \00e\00x\00i\00t\00 \00=\00=") - (data (i32.const 7360) "\05\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 7388) "\02A\00\00\00\00\00\00\10A\82") + (data (i32.const 5272) "\01\00\00\00\n\00\00\00v\00a\00l\00:\00 ") + (data (i32.const 5292) "<") + (data (i32.const 5304) "\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") + (data (i32.const 5356) ",") + (data (i32.const 5368) "\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") + (data (i32.const 5404) ",") + (data (i32.const 5416) "\01\00\00\00\14\00\00\00=\00=\00 \00t\00i\00m\00e\00 \00=\00=") + (data (i32.const 5452) "|") + (data (i32.const 5464) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") + (data (i32.const 5580) "<") + (data (i32.const 5592) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") + (data (i32.const 5644) "\1c") + (data (i32.const 5656) "\01\00\00\00\02\00\00\000") + (data (i32.const 5676) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") + (data (i32.const 6076) "\1c\04") + (data (i32.const 6088) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") + (data (i32.const 7132) "\\") + (data (i32.const 7144) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") + (data (i32.const 7228) ",") + (data (i32.const 7240) "\01\00\00\00\18\00\00\00=\00=\00 \00h\00r\00t\00i\00m\00e\00 \00=\00=") + (data (i32.const 7276) ",") + (data (i32.const 7288) "\01\00\00\00\14\00\00\00=\00=\00 \00e\00x\00i\00t\00 \00=\00=") + (data (i32.const 7328) "\05\00\00\00 \00\00\00\00\00\00\00 ") + (data (i32.const 7356) "\02A\00\00\00\00\00\00\10A\82") (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -1525,10 +1523,10 @@ if unreachable end - i32.const 23792 + i32.const 23760 i32.const 0 i32.store - i32.const 25360 + i32.const 25328 i32.const 0 i32.store loop $for-loop|0 @@ -1539,7 +1537,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 23792 + i32.const 23760 i32.add i32.const 0 i32.store offset=4 @@ -1557,7 +1555,7 @@ i32.add i32.const 2 i32.shl - i32.const 23792 + i32.const 23760 i32.add i32.const 0 i32.store offset=96 @@ -1575,13 +1573,13 @@ br $for-loop|0 end end - i32.const 23792 - i32.const 25364 + i32.const 23760 + i32.const 25332 memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 23792 + i32.const 23760 global.set $~lib/rt/tlsf/ROOT ) (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) @@ -1928,7 +1926,7 @@ (local $1 i32) (local $2 i32) local.get $0 - i32.const 23788 + i32.const 23756 i32.lt_u if return @@ -1975,220 +1973,214 @@ local.get $0 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/process/writeString (param $0 i32) - (local $1 i32) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) - i32.const -1 - local.set $1 - i32.const -1 - local.set $2 - i32.const -1 - local.set $3 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 + (local $5 i32) + (local $6 i32) + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.set $6 + local.get $1 + i32.eqz + if + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $6 + br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + end local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 + i32.load16_u offset=6 + local.tee $2 + i32.const 128 + i32.ge_u + br_if $break|0 end local.get $0 - i32.load16_u offset=6 + i32.load16_u offset=4 local.tee $3 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 - i32.load16_u offset=4 - local.tee $2 + i32.load16_u offset=2 + local.tee $4 i32.const 128 i32.ge_u br_if $break|0 end local.get $0 - i32.load16_u offset=2 - local.tee $1 + i32.load16_u + local.tee $5 i32.const 128 i32.ge_u br_if $break|0 - end - local.get $0 - i32.load16_u - local.tee $4 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 1088 - i32.const 1096 - i32.store - i32.const 1092 - local.get $1 - i32.const -1 - i32.ne - i32.const 1 - i32.add - local.get $2 - i32.const -1 - i32.ne - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - i32.store - i32.const 1096 - local.get $4 - local.get $1 - i32.const 8 - i32.shl - i32.or - local.get $2 - i32.const 16 - i32.shl - i32.or - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - i32.const 1 - i32.const 1088 - i32.const 1 - i32.const 1100 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 178 + i32.const 1088 + i32.const 1096 + i32.store + i32.const 1092 + local.get $6 + i32.store + i32.const 1096 + local.get $5 + local.get $4 + i32.const 8 + i32.shl + i32.or + local.get $3 i32.const 16 - call $~lib/wasi/index/abort - unreachable + i32.shl + i32.or + local.get $2 + i32.const 24 + i32.shl + i32.or + i32.store + i32.const 1 + i32.const 1088 + i32.const 1 + i32.const 1100 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.tee $0 + i32.const 65535 + i32.and + if + local.get $0 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 4224 + i32.const 186 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end end + return end - return end local.get $0 - local.set $1 - i32.const 0 local.set $2 + i32.const 0 + local.set $3 local.get $0 local.get $0 i32.const 20 i32.sub i32.load offset=16 i32.add - local.set $3 + local.set $4 loop $while-continue|0 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.lt_u if - local.get $1 + local.get $2 i32.load16_u - local.tee $4 + local.tee $5 i32.const 128 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 1 i32.add else - local.get $4 + local.get $5 i32.const 2048 i32.lt_u if (result i32) - local.get $2 + local.get $3 i32.const 2 i32.add else - local.get $3 - local.get $1 + local.get $4 + local.get $2 i32.const 2 i32.add i32.gt_u i32.const 0 - local.get $4 + local.get $5 i32.const 64512 i32.and i32.const 55296 i32.eq select if - local.get $1 + local.get $2 i32.load16_u offset=2 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $2 + local.get $3 i32.const 4 i32.add - local.set $2 - local.get $1 + local.set $3 + local.get $2 i32.const 4 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $2 + local.get $3 i32.const 3 i32.add end end - local.set $2 - local.get $1 + local.set $3 + local.get $2 i32.const 2 i32.add - local.set $1 + local.set $2 br $while-continue|0 end end - local.get $2 + local.get $1 + i32.const 0 + i32.ne + local.get $3 + i32.add call $~lib/rt/tlsf/__alloc - local.set $1 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $3 + local.set $2 i32.const 3 global.set $~argumentsLength local.get $0 - local.get $3 - local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $6 local.get $2 + call $~lib/string/String.UTF8.encodeUnsafe@varargs + local.get $3 i32.ne if i32.const 0 i32.const 4224 - i32.const 184 + i32.const 193 i32.const 3 call $~lib/wasi/index/abort unreachable end - i32.const 1088 local.get $1 + if + local.get $2 + local.get $3 + i32.add + i32.const 10 + i32.store8 + end + i32.const 1088 + local.get $2 i32.store i32.const 1092 - local.get $2 + local.get $3 i32.store i32.const 1 i32.const 1088 @@ -2196,7 +2188,7 @@ i32.const 1096 call $~lib/bindings/wasi_snapshot_preview1/fd_write local.set $0 - local.get $1 + local.get $2 call $~lib/rt/tlsf/__free local.get $0 i32.const 65535 @@ -2205,7 +2197,7 @@ local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 - i32.const 189 + i32.const 199 i32.const 12 call $~lib/wasi/index/abort unreachable @@ -2214,9 +2206,9 @@ (func $~lib/rt/itcms/visitRoots (local $0 i32) (local $1 i32) - i32.const 4448 + i32.const 4416 call $~lib/rt/itcms/__visit - i32.const 4528 + i32.const 4496 call $~lib/rt/itcms/__visit global.get $~lib/process/process.argv local.tee $0 @@ -2248,21 +2240,21 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 4784 + i32.const 4752 call $~lib/rt/itcms/__visit - i32.const 4560 + i32.const 4528 call $~lib/rt/itcms/__visit - i32.const 4976 + i32.const 4944 call $~lib/rt/itcms/__visit - i32.const 5344 + i32.const 5312 call $~lib/rt/itcms/__visit i32.const 4352 call $~lib/rt/itcms/__visit i32.const 1136 call $~lib/rt/itcms/__visit - i32.const 6128 + i32.const 6096 call $~lib/rt/itcms/__visit - i32.const 7184 + i32.const 7152 call $~lib/rt/itcms/__visit global.get $~lib/rt/itcms/pinSpace local.tee $1 @@ -2283,7 +2275,7 @@ i32.ne if i32.const 0 - i32.const 4656 + i32.const 4624 i32.const 159 i32.const 16 call $~lib/wasi/index/abort @@ -2316,7 +2308,7 @@ i32.eqz if i32.const 0 - i32.const 4656 + i32.const 4624 i32.const 147 i32.const 30 call $~lib/wasi/index/abort @@ -2335,7 +2327,7 @@ if i32.const 0 local.get $0 - i32.const 23788 + i32.const 23756 i32.lt_u local.get $0 i32.load offset=8 @@ -2343,7 +2335,7 @@ i32.eqz if i32.const 0 - i32.const 4656 + i32.const 4624 i32.const 127 i32.const 18 call $~lib/wasi/index/abort @@ -2357,7 +2349,7 @@ i32.eqz if i32.const 0 - i32.const 4656 + i32.const 4624 i32.const 131 i32.const 16 call $~lib/wasi/index/abort @@ -2386,12 +2378,12 @@ i32.const 1 else local.get $1 - i32.const 7360 + i32.const 7328 i32.load i32.gt_u if - i32.const 4784 - i32.const 4848 + i32.const 4752 + i32.const 4816 i32.const 22 i32.const 28 call $~lib/wasi/index/abort @@ -2400,7 +2392,7 @@ local.get $1 i32.const 3 i32.shl - i32.const 7364 + i32.const 7332 i32.add i32.load i32.const 32 @@ -2540,7 +2532,7 @@ local.set $0 loop $while-continue|0 local.get $0 - i32.const 23788 + i32.const 23756 i32.lt_u if local.get $0 @@ -2628,14 +2620,14 @@ i32.ne if i32.const 0 - i32.const 4656 + i32.const 4624 i32.const 228 i32.const 20 call $~lib/wasi/index/abort unreachable end local.get $0 - i32.const 23788 + i32.const 23756 i32.lt_u if local.get $0 @@ -2862,7 +2854,7 @@ i32.ge_u if i32.const 4352 - i32.const 4656 + i32.const 4624 i32.const 260 i32.const 31 call $~lib/wasi/index/abort @@ -2976,7 +2968,7 @@ i32.eqz if i32.const 0 - i32.const 4656 + i32.const 4624 i32.const 294 i32.const 14 call $~lib/wasi/index/abort @@ -4001,8 +3993,8 @@ i32.const 268435455 i32.gt_u if - i32.const 4560 - i32.const 4608 + i32.const 4528 + i32.const 4576 i32.const 18 i32.const 48 call $~lib/wasi/index/abort @@ -4079,8 +4071,8 @@ i32.const 0 i32.lt_s if - i32.const 4784 - i32.const 4608 + i32.const 4752 + i32.const 4576 i32.const 123 i32.const 22 call $~lib/wasi/index/abort @@ -4411,7 +4403,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 5708 + i32.const 5676 i32.add i64.load32_u local.get $3 @@ -4419,7 +4411,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 5708 + i32.const 5676 i32.add i64.load32_u i64.const 32 @@ -4446,7 +4438,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 5708 + i32.const 5676 i32.add i32.load i32.store @@ -4469,7 +4461,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 5708 + i32.const 5676 i32.add i32.load i32.store @@ -4524,7 +4516,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 5708 + i32.const 5676 i32.add i64.load32_u local.get $3 @@ -4532,7 +4524,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 5708 + i32.const 5676 i32.add i64.load32_u i64.const 32 @@ -4552,7 +4544,7 @@ i32.div_u i32.const 2 i32.shl - i32.const 5708 + i32.const 5676 i32.add i64.load32_u local.get $4 @@ -4560,7 +4552,7 @@ i32.rem_u i32.const 2 i32.shl - i32.const 5708 + i32.const 5676 i32.add i64.load32_u i64.const 32 @@ -4692,37 +4684,6 @@ global.set $~started call $start:std-wasi/process ) - (func $~lib/console/console.log (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - if - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4416 - i32.store - i32.const 4416 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/map/Map<~lib/string/String,~lib/string/String>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -4731,11 +4692,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s if - i32.const 23808 - i32.const 23856 + i32.const 23776 + i32.const 23824 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -4848,7 +4809,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4907,7 +4868,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -4980,12 +4941,12 @@ local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 5168 + i32.const 5136 i32.store offset=8 i32.const 0 local.set $0 block $__inlined_func$~lib/string/String#indexOf - i32.const 5164 + i32.const 5132 i32.load i32.const 1 i32.shr_u @@ -5021,7 +4982,7 @@ if local.get $3 local.get $0 - i32.const 5168 + i32.const 5136 local.get $6 call $~lib/util/string/compareImpl i32.eqz @@ -5064,11 +5025,11 @@ call $~lib/map/Map<~lib/string/String,~lib/string/String>#set else global.get $~lib/memory/__stack_pointer - i32.const 5200 + i32.const 5168 i32.store offset=12 local.get $1 local.get $3 - i32.const 5200 + i32.const 5168 call $~lib/map/Map<~lib/string/String,~lib/string/String>#set end local.get $5 @@ -5087,8 +5048,8 @@ local.get $1 return end - i32.const 23808 - i32.const 23856 + i32.const 23776 + i32.const 23824 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -5109,7 +5070,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5123,30 +5084,42 @@ i32.const 1056 i32.store i32.const 1056 - call $~lib/console/console.log + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 4448 + i32.const 4416 i32.store - i32.const 4448 - call $~lib/console/console.log + i32.const 4416 + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 4480 + i32.const 4448 i32.store - i32.const 4480 - call $~lib/console/console.log + i32.const 4448 + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 4528 + i32.const 4496 i32.store - i32.const 4528 - call $~lib/console/console.log + i32.const 4496 + i32.const 1 + call $~lib/process/writeString memory.size i32.const 16 i32.shl - i32.const 23788 + i32.const 23756 i32.sub i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold + i32.const 4676 + i32.const 4672 + i32.store + i32.const 4680 + i32.const 4672 + i32.store + i32.const 4672 + global.set $~lib/rt/itcms/pinSpace i32.const 4708 i32.const 4704 i32.store @@ -5154,29 +5127,21 @@ i32.const 4704 i32.store i32.const 4704 - global.set $~lib/rt/itcms/pinSpace - i32.const 4740 - i32.const 4736 - i32.store - i32.const 4744 - i32.const 4736 - i32.store - i32.const 4736 global.set $~lib/rt/itcms/toSpace - i32.const 4884 - i32.const 4880 + i32.const 4852 + i32.const 4848 i32.store - i32.const 4888 - i32.const 4880 + i32.const 4856 + i32.const 4848 i32.store - i32.const 4880 + i32.const 4848 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5273,10 +5238,11 @@ global.get $~lib/process/process.argv global.set $std-wasi/process/argv global.get $~lib/memory/__stack_pointer - i32.const 4928 + i32.const 4896 i32.store - i32.const 4928 - call $~lib/console/console.log + i32.const 4896 + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/argv local.tee $1 @@ -5301,7 +5267,8 @@ local.get $1 i32.store local.get $1 - call $~lib/console/console.log + i32.const 1 + call $~lib/process/writeString local.get $0 i32.const 1 i32.add @@ -5327,7 +5294,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5395,10 +5362,11 @@ local.get $3 global.set $std-wasi/process/envKeys global.get $~lib/memory/__stack_pointer - i32.const 5232 + i32.const 5200 i32.store - i32.const 5232 - call $~lib/console/console.log + i32.const 5200 + i32.const 1 + call $~lib/process/writeString i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer @@ -5425,16 +5393,19 @@ local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 5280 + i32.const 5248 i32.store offset=4 - i32.const 5280 + i32.const 5248 + i32.const 0 call $~lib/process/writeString local.get $1 - call $~lib/console/console.log + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 5312 + i32.const 5280 i32.store offset=4 - i32.const 5312 + i32.const 5280 + i32.const 0 call $~lib/process/writeString global.get $~lib/memory/__stack_pointer global.get $std-wasi/process/env @@ -5448,8 +5419,8 @@ local.tee $1 i32.eqz if - i32.const 5344 - i32.const 5408 + i32.const 5312 + i32.const 5376 i32.const 105 i32.const 17 call $~lib/wasi/index/abort @@ -5461,7 +5432,8 @@ local.tee $1 i32.store local.get $1 - call $~lib/console/console.log + i32.const 1 + call $~lib/process/writeString local.get $0 i32.const 1 i32.add @@ -5470,10 +5442,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 5456 + i32.const 5424 i32.store - i32.const 5456 - call $~lib/console/console.log + i32.const 5424 + i32.const 1 + call $~lib/process/writeString i32.const 0 i64.const 1000000 i32.const 1088 @@ -5500,7 +5473,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5514,7 +5487,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5664 local.set $0 br $__inlined_func$~lib/util/number/itoa64 end @@ -5676,12 +5649,14 @@ local.get $0 i32.store local.get $0 - call $~lib/console/console.log + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7280 + i32.const 7248 i32.store - i32.const 7280 - call $~lib/console/console.log + i32.const 7248 + i32.const 1 + call $~lib/process/writeString i32.const 1 i64.const 0 i32.const 1088 @@ -5706,7 +5681,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -5720,7 +5695,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 5696 + i32.const 5664 local.set $0 br $__inlined_func$~lib/util/number/utoa64 end @@ -5862,12 +5837,14 @@ local.get $0 i32.store local.get $0 - call $~lib/console/console.log + i32.const 1 + call $~lib/process/writeString global.get $~lib/memory/__stack_pointer - i32.const 7328 + i32.const 7296 i32.store - i32.const 7328 - call $~lib/console/console.log + i32.const 7296 + i32.const 1 + call $~lib/process/writeString i32.const 42 call $~lib/bindings/wasi_snapshot_preview1/proc_exit i32.const 0 @@ -5899,7 +5876,7 @@ local.get $0 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 4224 - i32.const 142 + i32.const 146 i32.const 14 call $~lib/wasi/index/abort unreachable @@ -5913,8 +5890,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 23808 - i32.const 23856 + i32.const 23776 + i32.const 23824 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -5929,11 +5906,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s if - i32.const 23808 - i32.const 23856 + i32.const 23776 + i32.const 23824 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -5969,8 +5946,8 @@ i32.const 268435455 i32.gt_u if - i32.const 4560 - i32.const 4608 + i32.const 4528 + i32.const 4576 i32.const 65 i32.const 60 call $~lib/wasi/index/abort @@ -6026,11 +6003,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s if - i32.const 23808 - i32.const 23856 + i32.const 23776 + i32.const 23824 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -6233,11 +6210,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s if - i32.const 23808 - i32.const 23856 + i32.const 23776 + i32.const 23824 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -6251,8 +6228,8 @@ i32.load offset=12 i32.ge_u if - i32.const 4784 - i32.const 4608 + i32.const 4752 + i32.const 4576 i32.const 107 i32.const 42 call $~lib/wasi/index/abort @@ -6271,8 +6248,8 @@ local.get $0 i32.eqz if - i32.const 4976 - i32.const 4608 + i32.const 4944 + i32.const 4576 i32.const 111 i32.const 40 call $~lib/wasi/index/abort @@ -6291,11 +6268,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s if - i32.const 23808 - i32.const 23856 + i32.const 23776 + i32.const 23824 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -6308,8 +6285,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 4560 - i32.const 5104 + i32.const 4528 + i32.const 5072 i32.const 49 i32.const 43 call $~lib/wasi/index/abort @@ -6338,11 +6315,11 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s if - i32.const 23808 - i32.const 23856 + i32.const 23776 + i32.const 23824 i32.const 1 i32.const 1 call $~lib/wasi/index/abort @@ -6407,7 +6384,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - i32.const 5200 + i32.const 5168 return end i32.const 0 @@ -6460,7 +6437,7 @@ global.set $~lib/memory/__stack_pointer block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6514,7 +6491,7 @@ i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 7404 + i32.const 7372 i32.lt_s br_if $folding-inner0 global.get $~lib/memory/__stack_pointer @@ -6696,8 +6673,8 @@ global.set $~lib/memory/__stack_pointer return end - i32.const 23808 - i32.const 23856 + i32.const 23776 + i32.const 23824 i32.const 1 i32.const 1 call $~lib/wasi/index/abort diff --git a/tests/compiler/std-wasi/process.untouched.wat b/tests/compiler/std-wasi/process.untouched.wat index 5270c59e53..3975e5ca07 100644 --- a/tests/compiler/std-wasi/process.untouched.wat +++ b/tests/compiler/std-wasi/process.untouched.wat @@ -29,8 +29,8 @@ (global $~argumentsLength (mut i32) (i32.const 0)) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) (global $~lib/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/process/process.arch i32 (i32.const 3424)) - (global $~lib/process/process.platform i32 (i32.const 3504)) + (global $~lib/process/process.arch i32 (i32.const 3392)) + (global $~lib/process/process.platform i32 (i32.const 3472)) (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) @@ -49,10 +49,10 @@ (global $std-wasi/process/envKeys (mut i32) (i32.const 0)) (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/process/process.stdin i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 6336)) - (global $~lib/memory/__data_end i32 (i32.const 6380)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 22764)) - (global $~lib/memory/__heap_base i32 (i32.const 22764)) + (global $~lib/rt/__rtti_base i32 (i32.const 6304)) + (global $~lib/memory/__data_end i32 (i32.const 6348)) + (global $~lib/memory/__stack_pointer (mut i32) (i32.const 22732)) + (global $~lib/memory/__heap_base i32 (i32.const 22732)) (global $~started (mut i32) (i32.const 0)) (memory $0 1) (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00c\00h\00 \00=\00=\00\00\00\00\00\00\00\00\00") @@ -140,38 +140,37 @@ (data (i32.const 3180) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3244) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3308) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 3372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00w\00a\00s\00m\003\002\00") - (data (i32.const 3436) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00=\00=\00 \00p\00l\00a\00t\00f\00o\00r\00m\00 \00=\00=\00") - (data (i32.const 3484) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00w\00a\00s\00m\00\00\00\00\00") - (data (i32.const 3516) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 3564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data (i32.const 3612) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00w\00a\00s\00m\003\002\00") + (data (i32.const 3404) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00=\00=\00 \00p\00l\00a\00t\00f\00o\00r\00m\00 \00=\00=\00") + (data (i32.const 3452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00w\00a\00s\00m\00\00\00\00\00") + (data (i32.const 3484) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") + (data (i32.const 3532) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") + (data (i32.const 3580) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3648) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3680) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3712) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3740) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 3804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 3856) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3884) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00g\00v\00 \00=\00=\00\00\00\00\00\00\00\00\00") - (data (i32.const 3932) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4060) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4188) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00=\00=\00 \00e\00n\00v\00 \00=\00=\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\00:\00 \00\00\00") - (data (i32.const 4268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00v\00a\00l\00:\00 \00\00\00") - (data (i32.const 4300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") - (data (i32.const 4364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00t\00i\00m\00e\00 \00=\00=\00\00\00\00\00\00\00\00\00") - (data (i32.const 4460) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") - (data (i32.const 4588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4684) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 5084) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6140) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") - (data (i32.const 6236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00=\00=\00 \00h\00r\00t\00i\00m\00e\00 \00=\00=\00\00\00\00\00") - (data (i32.const 6284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00e\00x\00i\00t\00 \00=\00=\00\00\00\00\00\00\00\00\00") - (data (i32.const 6336) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\10A\82\00\00\00\00\00") + (data (i32.const 3708) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") + (data (i32.const 3772) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") + (data (i32.const 3824) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 3852) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00g\00v\00 \00=\00=\00\00\00\00\00\00\00\00\00") + (data (i32.const 3900) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4028) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4092) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4156) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00=\00=\00 \00e\00n\00v\00 \00=\00=\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4204) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\00:\00 \00\00\00") + (data (i32.const 4236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00v\00a\00l\00:\00 \00\00\00") + (data (i32.const 4268) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") + (data (i32.const 4332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00t\00i\00m\00e\00 \00=\00=\00\00\00\00\00\00\00\00\00") + (data (i32.const 4428) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") + (data (i32.const 4556) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") + (data (i32.const 4620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4652) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 5052) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 6108) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") + (data (i32.const 6204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00=\00=\00 \00h\00r\00t\00i\00m\00e\00 \00=\00=\00\00\00\00\00") + (data (i32.const 6252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00e\00x\00i\00t\00 \00=\00=\00\00\00\00\00\00\00\00\00") + (data (i32.const 6304) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\10A\82\00\00\00\00\00") (table $0 1 funcref) (elem $0 (i32.const 1)) (export "memory" (memory $0)) @@ -2835,8 +2834,7 @@ call $~lib/rt/tlsf/checkUsedBlock call $~lib/rt/tlsf/freeBlock ) - (func $~lib/process/writeString (param $0 i32) (param $1 i32) - (local $2 i32) + (func $~lib/process/writeString (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2844,176 +2842,183 @@ (local $7 i32) (local $8 i32) (local $9 i32) - i32.const -1 - local.set $2 - i32.const -1 + (local $10 i32) + (local $11 i32) + local.get $1 + call $~lib/string/String#get:length local.set $3 - i32.const -1 - local.set $4 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 + local.get $2 + i32.eqz + if + i32.const 0 + local.set $4 + i32.const 0 + local.set $5 + i32.const 0 + local.set $6 + block $break|0 + block $case4|0 + block $case3|0 + block $case2|0 + block $case1|0 + block $case0|0 + local.get $3 + local.set $7 + local.get $7 + i32.const 4 + i32.eq + br_if $case0|0 + local.get $7 + i32.const 3 + i32.eq + br_if $case1|0 + local.get $7 + i32.const 2 + i32.eq + br_if $case2|0 + local.get $7 + i32.const 1 + i32.eq + br_if $case3|0 + local.get $7 + i32.const 0 + i32.eq + br_if $case4|0 + br $break|0 + end local.get $1 - call $~lib/string/String#get:length - local.set $5 - local.get $5 - i32.const 4 - i32.eq - br_if $case0|0 - local.get $5 - i32.const 3 - i32.eq - br_if $case1|0 - local.get $5 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $5 - i32.const 1 - i32.eq - br_if $case3|0 - local.get $5 - i32.const 0 - i32.eq - br_if $case4|0 - br $break|0 + i32.load16_u offset=6 + local.set $6 + local.get $6 + i32.const 128 + i32.ge_u + if + br $break|0 + end end local.get $1 - i32.load16_u offset=6 - local.set $4 - local.get $4 + i32.load16_u offset=4 + local.set $5 + local.get $5 i32.const 128 - i32.ge_s + i32.ge_u if br $break|0 end end local.get $1 - i32.load16_u offset=4 - local.set $3 - local.get $3 + i32.load16_u offset=2 + local.set $4 + local.get $4 i32.const 128 - i32.ge_s + i32.ge_u if br $break|0 end end local.get $1 - i32.load16_u offset=2 - local.set $2 - local.get $2 + i32.load16_u + local.set $7 + local.get $7 i32.const 128 - i32.ge_s + i32.ge_u if br $break|0 end - end - local.get $1 - i32.load16_u - local.set $5 - local.get $5 - i32.const 128 - i32.ge_s - if - br $break|0 - end - global.get $~lib/process/iobuf - global.get $~lib/process/iobuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - i32.store - global.get $~lib/process/iobuf - i32.const 1 - local.get $2 - i32.const -1 - i32.ne - i32.add - local.get $3 - i32.const -1 - i32.ne - i32.add - local.get $4 - i32.const -1 - i32.ne - i32.add - i32.store offset=4 - global.get $~lib/process/iobuf - local.get $5 - local.get $2 - i32.const 8 - i32.shl - i32.or - local.get $3 - i32.const 16 - i32.shl - i32.or - local.get $4 - i32.const 24 - i32.shl - i32.or - i32.store offset=8 - local.get $0 - global.get $~lib/process/iobuf - i32.const 1 - global.get $~lib/process/iobuf - i32.const 3 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $6 - local.get $6 - i32.const 65535 - i32.and - if - local.get $6 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 178 + global.get $~lib/process/iobuf + global.get $~lib/process/iobuf + i32.const 2 + i32.const 4 + i32.mul + i32.add + i32.store + global.get $~lib/process/iobuf + local.get $3 + i32.store offset=4 + global.get $~lib/process/iobuf + local.get $7 + local.get $4 + i32.const 8 + i32.shl + i32.or + local.get $5 i32.const 16 - call $~lib/wasi/index/abort - unreachable + i32.shl + i32.or + local.get $6 + i32.const 24 + i32.shl + i32.or + i32.store offset=8 + local.get $0 + global.get $~lib/process/iobuf + i32.const 1 + global.get $~lib/process/iobuf + i32.const 3 + i32.const 4 + i32.mul + i32.add + call $~lib/bindings/wasi_snapshot_preview1/fd_write + local.set $8 + local.get $8 + i32.const 65535 + i32.and + if + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/errnoToString + i32.const 3200 + i32.const 186 + i32.const 18 + call $~lib/wasi/index/abort + unreachable + end end + return end - return end local.get $1 i32.const 0 call $~lib/string/String.UTF8.byteLength - local.set $7 - local.get $7 + local.set $9 + local.get $9 + local.get $2 + i32.const 0 + i32.ne + i32.add call $~lib/rt/tlsf/__alloc - local.set $8 - local.get $1 + local.set $10 local.get $1 - call $~lib/string/String#get:length - local.get $8 + local.get $3 + local.get $10 i32.const 0 i32.const 3 global.set $~argumentsLength i32.const 0 call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $7 + local.get $9 i32.eq i32.eqz if i32.const 0 i32.const 3200 - i32.const 184 + i32.const 193 i32.const 3 call $~lib/wasi/index/abort unreachable end + local.get $2 + if + local.get $10 + local.get $9 + i32.add + i32.const 10 + i32.store8 + end global.get $~lib/process/iobuf - local.get $8 + local.get $10 i32.store global.get $~lib/process/iobuf - local.get $7 + local.get $9 i32.store offset=4 local.get $0 global.get $~lib/process/iobuf @@ -3024,29 +3029,33 @@ i32.mul i32.add call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $9 - local.get $8 + local.set $11 + local.get $10 call $~lib/rt/tlsf/__free - local.get $9 + local.get $11 i32.const 65535 i32.and if - local.get $9 + local.get $11 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 3200 - i32.const 189 + i32.const 199 i32.const 12 call $~lib/wasi/index/abort unreachable end ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) - i32.const 1 - drop + (func $~lib/process/WritableStream#writeLn (param $0 i32) (param $1 i32) local.get $0 local.get $1 + i32.const 1 call $~lib/process/writeString ) + (func $~lib/console/console.log (param $0 i32) + global.get $~lib/process/process.stdout + local.get $0 + call $~lib/process/WritableStream#writeLn + ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) local.get $0 local.get $1 @@ -3107,7 +3116,7 @@ i32.eqz if i32.const 0 - i32.const 3632 + i32.const 3600 i32.const 159 i32.const 16 call $~lib/wasi/index/abort @@ -3173,7 +3182,7 @@ i32.eqz if i32.const 0 - i32.const 3632 + i32.const 3600 i32.const 127 i32.const 18 call $~lib/wasi/index/abort @@ -3190,7 +3199,7 @@ i32.eqz if i32.const 0 - i32.const 3632 + i32.const 3600 i32.const 131 i32.const 16 call $~lib/wasi/index/abort @@ -3212,8 +3221,8 @@ i32.load i32.gt_u if - i32.const 3760 - i32.const 3824 + i32.const 3728 + i32.const 3792 i32.const 22 i32.const 28 call $~lib/wasi/index/abort @@ -3279,7 +3288,7 @@ i32.eqz if (result i32) i32.const 0 - i32.const 3632 + i32.const 3600 i32.const 147 i32.const 30 call $~lib/wasi/index/abort @@ -3547,7 +3556,7 @@ i32.eqz if i32.const 0 - i32.const 3632 + i32.const 3600 i32.const 228 i32.const 20 call $~lib/wasi/index/abort @@ -3879,7 +3888,7 @@ i32.ge_u if i32.const 3328 - i32.const 3632 + i32.const 3600 i32.const 260 i32.const 31 call $~lib/wasi/index/abort @@ -3938,7 +3947,7 @@ i32.eqz if i32.const 0 - i32.const 3632 + i32.const 3600 i32.const 294 i32.const 14 call $~lib/wasi/index/abort @@ -5334,8 +5343,8 @@ i32.shr_u i32.gt_u if - i32.const 3536 - i32.const 3584 + i32.const 3504 + i32.const 3552 i32.const 18 i32.const 48 call $~lib/wasi/index/abort @@ -5434,8 +5443,8 @@ i32.const 0 i32.lt_s if - i32.const 3760 - i32.const 3584 + i32.const 3728 + i32.const 3552 i32.const 123 i32.const 22 call $~lib/wasi/index/abort @@ -6143,6 +6152,14 @@ local.get $1 call $~lib/array/Array<~lib/string/String>#set:length_ ) + (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) + i32.const 1 + drop + local.get $0 + local.get $1 + i32.const 0 + call $~lib/process/writeString + ) (func $~lib/map/Map<~lib/string/String,~lib/string/String>#get (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 @@ -6154,8 +6171,8 @@ local.get $2 i32.eqz if - i32.const 4320 - i32.const 4384 + i32.const 4288 + i32.const 4352 i32.const 105 i32.const 17 call $~lib/wasi/index/abort @@ -6223,14 +6240,14 @@ i32.const 100 i32.rem_u local.set $7 - i32.const 4684 + i32.const 4652 local.get $6 i32.const 2 i32.shl i32.add i64.load32_u local.set $8 - i32.const 4684 + i32.const 4652 local.get $7 i32.const 2 i32.shl @@ -6273,7 +6290,7 @@ i32.const 2 i32.sub local.set $2 - i32.const 4684 + i32.const 4652 local.get $10 i32.const 2 i32.shl @@ -6296,7 +6313,7 @@ i32.const 2 i32.sub local.set $2 - i32.const 4684 + i32.const 4652 local.get $1 i32.const 2 i32.shl @@ -6443,14 +6460,14 @@ i32.const 100 i32.rem_u local.set $11 - i32.const 4684 + i32.const 4652 local.get $10 i32.const 2 i32.shl i32.add i64.load32_u local.set $12 - i32.const 4684 + i32.const 4652 local.get $11 i32.const 2 i32.shl @@ -6472,14 +6489,14 @@ i64.shl i64.or i64.store - i32.const 4684 + i32.const 4652 local.get $8 i32.const 2 i32.shl i32.add i64.load32_u local.set $12 - i32.const 4684 + i32.const 4652 local.get $9 i32.const 2 i32.shl @@ -6528,7 +6545,7 @@ i32.const 1 i32.shl i32.add - i32.const 5104 + i32.const 5072 local.get $1 i32.wrap_i64 i32.const 255 @@ -6550,7 +6567,7 @@ i32.and if local.get $0 - i32.const 5104 + i32.const 5072 local.get $1 i32.wrap_i64 i32.const 6 @@ -6673,7 +6690,7 @@ i32.const 1 i32.shl i32.add - i32.const 6160 + i32.const 6128 local.get $1 local.get $6 i64.and @@ -6709,7 +6726,7 @@ i32.const 1 i32.shl i32.add - i32.const 6160 + i32.const 6128 local.get $1 local.get $6 local.get $4 @@ -6791,9 +6808,9 @@ i32.gt_u end if - i32.const 3760 + i32.const 3728 i32.const 3200 - i32.const 137 + i32.const 141 i32.const 7 call $~lib/wasi/index/abort unreachable @@ -6825,7 +6842,7 @@ local.get $4 call $~lib/bindings/wasi_snapshot_preview1/errnoToString i32.const 3200 - i32.const 142 + i32.const 146 i32.const 14 call $~lib/wasi/index/abort unreachable @@ -6884,16 +6901,16 @@ local.get $0 call $~lib/rt/itcms/__visit end - i32.const 3760 + i32.const 3728 local.get $0 call $~lib/rt/itcms/__visit - i32.const 3536 + i32.const 3504 local.get $0 call $~lib/rt/itcms/__visit - i32.const 3952 + i32.const 3920 local.get $0 call $~lib/rt/itcms/__visit - i32.const 4320 + i32.const 4288 local.get $0 call $~lib/rt/itcms/__visit i32.const 3328 @@ -6902,10 +6919,10 @@ i32.const 112 local.get $0 call $~lib/rt/itcms/__visit - i32.const 5104 + i32.const 5072 local.get $0 call $~lib/rt/itcms/__visit - i32.const 6160 + i32.const 6128 local.get $0 call $~lib/rt/itcms/__visit ) @@ -7095,43 +7112,14 @@ global.get $~lib/memory/__data_end i32.lt_s if - i32.const 22784 - i32.const 22832 + i32.const 22752 + i32.const 22800 i32.const 1 i32.const 1 call $~lib/wasi/index/abort unreachable end ) - (func $~lib/console/console.log (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3392 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) (func $~lib/map/Map<~lib/string/String,~lib/string/String>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -7319,7 +7307,7 @@ local.tee $10 i32.store offset=4 local.get $10 - i32.const 4144 + i32.const 4112 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 @@ -7358,7 +7346,7 @@ else local.get $6 local.get $10 - i32.const 4176 + i32.const 4144 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 @@ -7502,7 +7490,7 @@ i32.store local.get $4 call $~lib/console/console.log - i32.const 3456 + i32.const 3424 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -7524,20 +7512,20 @@ i32.const 1 i32.shr_u global.set $~lib/rt/itcms/threshold - i32.const 3680 + i32.const 3648 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/pinSpace - i32.const 3712 + i32.const 3680 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/toSpace - i32.const 3856 + i32.const 3824 call $~lib/rt/itcms/initLazy global.set $~lib/rt/itcms/fromSpace call $~lib/process/lazyArgv global.set $~lib/process/process.argv global.get $~lib/process/process.argv global.set $std-wasi/process/argv - i32.const 3904 + i32.const 3872 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -7594,7 +7582,7 @@ local.get $4 call $~lib/map/Map<~lib/string/String,~lib/string/String>#keys global.set $std-wasi/process/envKeys - i32.const 4208 + i32.const 4176 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -7630,7 +7618,7 @@ local.tee $3 i32.store offset=8 global.get $~lib/process/process.stdout - i32.const 4256 + i32.const 4224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -7640,7 +7628,7 @@ local.get $3 call $~lib/console/console.log global.get $~lib/process/process.stdout - i32.const 4288 + i32.const 4256 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -7668,7 +7656,7 @@ br $for-loop|1 end end - i32.const 4432 + i32.const 4400 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -7684,7 +7672,7 @@ i32.store local.get $4 call $~lib/console/console.log - i32.const 6256 + i32.const 6224 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -7700,7 +7688,7 @@ i32.store local.get $4 call $~lib/console/console.log - i32.const 6304 + i32.const 6272 local.set $4 global.get $~lib/memory/__stack_pointer local.get $4 @@ -7768,8 +7756,8 @@ i32.shr_u i32.gt_u if - i32.const 3536 - i32.const 3584 + i32.const 3504 + i32.const 3552 i32.const 65 i32.const 60 call $~lib/wasi/index/abort @@ -8195,8 +8183,8 @@ i32.load offset=12 i32.ge_u if - i32.const 3760 - i32.const 3584 + i32.const 3728 + i32.const 3552 i32.const 107 i32.const 42 call $~lib/wasi/index/abort @@ -8220,8 +8208,8 @@ local.get $2 i32.eqz if - i32.const 3952 - i32.const 3584 + i32.const 3920 + i32.const 3552 i32.const 111 i32.const 40 call $~lib/wasi/index/abort @@ -8250,8 +8238,8 @@ i32.const 1073741820 i32.gt_u if - i32.const 3536 - i32.const 4080 + i32.const 3504 + i32.const 4048 i32.const 49 i32.const 43 call $~lib/wasi/index/abort @@ -8414,7 +8402,7 @@ local.get $10 i32.eqz if - i32.const 4176 + i32.const 4144 local.set $12 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8624,8 +8612,8 @@ i32.gt_s end if - i32.const 4480 - i32.const 4608 + i32.const 4448 + i32.const 4576 i32.const 431 i32.const 5 call $~lib/wasi/index/abort @@ -8636,7 +8624,7 @@ i64.ne i32.eqz if - i32.const 4672 + i32.const 4640 local.set $10 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -8828,8 +8816,8 @@ i32.gt_s end if - i32.const 4480 - i32.const 4608 + i32.const 4448 + i32.const 4576 i32.const 401 i32.const 5 call $~lib/wasi/index/abort @@ -8840,7 +8828,7 @@ i64.ne i32.eqz if - i32.const 4672 + i32.const 4640 local.set $9 global.get $~lib/memory/__stack_pointer i32.const 4