From 7deb71d085316e14327b6758e2438fd1e7e45b91 Mon Sep 17 00:00:00 2001 From: dcode Date: Mon, 27 Jan 2020 19:55:51 +0100 Subject: [PATCH 1/4] Add an option to select how to seed random() --- cli/asc.js | 38 + cli/asc.json | 15 + std/assembly/math.ts | 33 +- std/assembly/util/seedrandom.d.ts | 7 + tests/compiler/std/array.optimized.wat | 439 ++++++----- tests/compiler/std/array.untouched.wat | 737 +++++++++--------- tests/compiler/std/math.optimized.wat | 19 +- tests/compiler/std/math.untouched.wat | 107 ++- .../compiler/std/seedrandom-const-value.json | 6 + .../std/seedrandom-const-value.optimized.wat | 146 ++++ tests/compiler/std/seedrandom-const-value.ts | 1 + .../std/seedrandom-const-value.untouched.wat | 199 +++++ tests/compiler/std/seedrandom-const.json | 6 + .../std/seedrandom-const.optimized.wat | 146 ++++ tests/compiler/std/seedrandom-const.ts | 1 + .../std/seedrandom-const.untouched.wat | 199 +++++ tests/compiler/std/seedrandom-date.json | 6 + .../std/seedrandom-date.optimized.wat | 152 ++++ tests/compiler/std/seedrandom-date.ts | 1 + .../std/seedrandom-date.untouched.wat | 200 +++++ tests/compiler/std/seedrandom-default.json | 8 + tests/compiler/std/seedrandom-default.ts | 1 + tests/compiler/std/seedrandom-func.json | 6 + .../std/seedrandom-func.optimized.wat | 146 ++++ tests/compiler/std/seedrandom-func.ts | 5 + .../std/seedrandom-func.untouched.wat | 201 +++++ tests/compiler/std/seedrandom-math.json | 6 + .../std/seedrandom-math.optimized.wat | 158 ++++ tests/compiler/std/seedrandom-math.ts | 1 + .../std/seedrandom-math.untouched.wat | 213 +++++ 30 files changed, 2542 insertions(+), 661 deletions(-) create mode 100644 std/assembly/util/seedrandom.d.ts create mode 100644 tests/compiler/std/seedrandom-const-value.json create mode 100644 tests/compiler/std/seedrandom-const-value.optimized.wat create mode 100644 tests/compiler/std/seedrandom-const-value.ts create mode 100644 tests/compiler/std/seedrandom-const-value.untouched.wat create mode 100644 tests/compiler/std/seedrandom-const.json create mode 100644 tests/compiler/std/seedrandom-const.optimized.wat create mode 100644 tests/compiler/std/seedrandom-const.ts create mode 100644 tests/compiler/std/seedrandom-const.untouched.wat create mode 100644 tests/compiler/std/seedrandom-date.json create mode 100644 tests/compiler/std/seedrandom-date.optimized.wat create mode 100644 tests/compiler/std/seedrandom-date.ts create mode 100644 tests/compiler/std/seedrandom-date.untouched.wat create mode 100644 tests/compiler/std/seedrandom-default.json create mode 100644 tests/compiler/std/seedrandom-default.ts create mode 100644 tests/compiler/std/seedrandom-func.json create mode 100644 tests/compiler/std/seedrandom-func.optimized.wat create mode 100644 tests/compiler/std/seedrandom-func.ts create mode 100644 tests/compiler/std/seedrandom-func.untouched.wat create mode 100644 tests/compiler/std/seedrandom-math.json create mode 100644 tests/compiler/std/seedrandom-math.optimized.wat create mode 100644 tests/compiler/std/seedrandom-math.ts create mode 100644 tests/compiler/std/seedrandom-math.untouched.wat diff --git a/cli/asc.js b/cli/asc.js index 48b3422826..40e476aa8b 100644 --- a/cli/asc.js +++ b/cli/asc.js @@ -24,6 +24,7 @@ const mkdirp = require("./util/mkdirp"); const find = require("./util/find"); const EOL = process.platform === "win32" ? "\r\n" : "\n"; const SEP = process.platform === "win32" ? "\\" : "/"; +const Long = require("long"); const binaryen = global.Binaryen || (global.Binaryen = require("binaryen")); // Proxy Binaryen's ready event @@ -237,6 +238,43 @@ exports.main = function main(argv, options, callback) { assemblyscript.setGlobalAlias(compilerOptions, "abort", "~lib/builtins/abort"); assemblyscript.setGlobalAlias(compilerOptions, "trace", "~lib/builtins/trace"); + // Initialize randomness source + switch (args.seedRandom) { + case "const": { + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_CONST", "1"); + // fall-through + } + case undefined: { + let value = Long.fromBits(Math.random() * 0xffffffff, Math.random() * 0xffffffff, true); + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_LOW", (value.low >>> 0).toString()); + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_HIGH", (value.high >>> 0).toString()); + break; + } + case "math": { + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_MATH", "1"); + break; + } + case "date": { + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_DATE", "1"); + break; + } + case "wasi": { + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_WASI", "1"); + break; + } + default: { + if (/^\d+$/.test(args.seedRandom)) { + let value = Long.fromString(args.seedRandom); + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_CONST", "1"); + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_LOW", (value.low >>> 0).toString()); + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_HIGH", (value.high >>> 0).toString()); + } else { + assemblyscript.setGlobalAlias(compilerOptions, "ASC_SEEDRANDOM_FUNC", String(args.seedRandom)); + } + break; + } + } + // Add or override aliases if specified if (args.use) { let aliases = args.use; diff --git a/cli/asc.json b/cli/asc.json index 9e8cee3bb1..1308006d9d 100644 --- a/cli/asc.json +++ b/cli/asc.json @@ -220,6 +220,21 @@ "" ] }, + "seedRandom": { + "description": [ + "Sets the randomness source used by Math.random. Defalts to", + "a compile-time constant while emitting a warning.", + "", + " const Compile-time constant without a warning.", + " 12345 Custom constant without a warning.", + " date Imports 'Date' from JS and calls Date.now()", + " math Imports 'Math' from JS and calls Math.random()", + " wasi Uses the respective WASI interface.", + " ... Internal name of a custom function returning i64.", + "" + ], + "type": "s" + }, "transform": { "description": "Specifies the path to a custom transform to 'require'.", "type": "S" diff --git a/std/assembly/math.ts b/std/assembly/math.ts index 73203c083a..f5cc020813 100644 --- a/std/assembly/math.ts +++ b/std/assembly/math.ts @@ -1,4 +1,9 @@ +/// + import * as JSMath from "./bindings/Math"; +import * as JSDate from "./bindings/Date"; +import * as wasi from "./bindings/wasi"; + export { JSMath }; import { @@ -1410,7 +1415,7 @@ export namespace NativeMath { } export function random(): f64 { // see: v8/src/base/utils/random-number-generator.cc - if (!random_seeded) throw new Error("PRNG must be seeded."); + if (!random_seeded) seedRandom(seedRandomSelect()); var s1 = random_state0_64; var s0 = random_state1_64; random_state0_64 = s0; @@ -2603,7 +2608,7 @@ export namespace NativeMathf { // Using xoroshiro64starstar from http://xoshiro.di.unimi.it/xoroshiro64starstar.c export function random(): f32 { - if (!random_seeded) throw new Error("PRNG must be seeded."); + if (!random_seeded) NativeMath.seedRandom(seedRandomSelect()); var s0 = random_state0_32; var s1 = random_state1_32; @@ -3132,3 +3137,27 @@ export function ipow64f(x: f64, e: i32): f64 { } return sign ? 1.0 / out : out; } + +function seedRandomSelect(): i64 { + if (isDefined(ASC_SEEDRANDOM_FUNC)) return ASC_SEEDRANDOM_FUNC(); + if (isDefined(ASC_SEEDRANDOM_MATH)) { + let val: i64; + do val = reinterpret(JSMath.random()); + while (!val); + return val; + } + if (isDefined(ASC_SEEDRANDOM_DATE)) return JSDate.now(); + if (isDefined(ASC_SEEDRANDOM_WASI)) { + let buf = __alloc(8, 0); + let val: i64; + do assert(wasi.random_get(buf, 8) == wasi.errno.SUCCESS); + while (!(val = load(buf))); + __free(buf); + return val; + } + if (!isDefined(ASC_SEEDRANDOM_CONST)) { + WARNING("Falling back to a compile-time constant random seed. See --seedRandom to silence this warning."); + } + const value = ((ASC_SEEDRANDOM_HIGH) << 32) | ASC_SEEDRANDOM_LOW; + return value; +} diff --git a/std/assembly/util/seedrandom.d.ts b/std/assembly/util/seedrandom.d.ts new file mode 100644 index 0000000000..71add20951 --- /dev/null +++ b/std/assembly/util/seedrandom.d.ts @@ -0,0 +1,7 @@ +declare const ASC_SEEDRANDOM_LOW: i32; +declare const ASC_SEEDRANDOM_HIGH: i32; +declare const ASC_SEEDRANDOM_CONST: i32; +declare const ASC_SEEDRANDOM_DATE: i32; +declare const ASC_SEEDRANDOM_MATH: i32; +declare const ASC_SEEDRANDOM_WASI: i32; +declare const ASC_SEEDRANDOM_FUNC: i32; diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 620776b09f..0ecd0d1c5c 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -149,76 +149,75 @@ (data (i32.const 4752) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01") (data (i32.const 4784) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01") (data (i32.const 4816) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data (i32.const 4848) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00P\00R\00N\00G\00 \00m\00u\00s\00t\00 \00b\00e\00 \00s\00e\00e\00d\00e\00d\00.") - (data (i32.const 4912) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") - (data (i32.const 4944) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") - (data (i32.const 4976) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a") - (data (i32.const 5008) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b") - (data (i32.const 5040) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b") - (data (i32.const 5072) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a") - (data (i32.const 5108) "\01\00\00\00\01") - (data (i32.const 5120) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\80\13\00\00\a0\13\00\00\80\13\00\00\c0\13\00\00\e0\13\00\00\00\14") - (data (i32.const 5168) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\00\14\00\00\80\13\00\00\80\13\00\00\c0\13\00\00\a0\13\00\00\e0\13") - (data (i32.const 5216) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l") - (data (i32.const 5248) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01") - (data (i32.const 5280) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e") - (data (i32.const 5312) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e") - (data (i32.const 5344) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,") - (data (i32.const 5376) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") - (data (i32.const 5424) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") - (data (i32.const 5456) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000") - (data (i32.const 5488) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003") - (data (i32.const 5520) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") - (data (i32.const 5552) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-") - (data (i32.const 5584) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") - (data (i32.const 5616) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_") - (data (i32.const 5648) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008") - (data (i32.const 5712) "0\00\00\00\01\00\00\00\00\00\00\000") - (data (i32.const 5742) "\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") - (data (i32.const 5776) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 ") - (data (i32.const 5808) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000") - (data (i32.const 5840) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N") - (data (i32.const 5872) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 5920) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") - (data (i32.const 5952) "\b8\02\00\00\01\00\00\00\00\00\00\00\b8\02\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\01\00\00\00\01\00\00\00>\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") - (data (i32.const 7396) "\01") - (data (i32.const 7408) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") - (data (i32.const 7440) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") - (data (i32.const 7472) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") - (data (i32.const 7504) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002") - (data (i32.const 7536) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003") - (data (i32.const 7568) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff") - (data (i32.const 7600) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000") - (data (i32.const 7632) "\06\00\00\00\01\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff") - (data (i32.const 7664) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000") - (data (i32.const 7712) "\18\00\00\00\01\00\00\00\00\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff") - (data (i32.const 7760) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000") - (data (i32.const 7824) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff") - (data (i32.const 7864) "\ff\ff\ff\ff\ff\ff\ff\7f") - (data (i32.const 7872) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") - (data (i32.const 7984) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\00\14\00\00\80\13\00\00\80\13\00\00\c0\13\00\00\a0\13\00\00\e0\13") - (data (i32.const 8032) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,") - (data (i32.const 8080) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002") - (data (i32.const 8112) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004") - (data (i32.const 8144) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\e0\1b\00\00\a0\1f\00\00\00\00\00\00\c0\1f") - (data (i32.const 8176) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004") - (data (i32.const 8208) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") - (data (i32.const 8240) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04") - (data (i32.const 8272) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004") - (data (i32.const 8304) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") - (data (i32.const 8336) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") - (data (i32.const 8368) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") + (data (i32.const 4848) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") + (data (i32.const 4880) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 4912) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a") + (data (i32.const 4944) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b") + (data (i32.const 4976) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b") + (data (i32.const 5008) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a") + (data (i32.const 5044) "\01\00\00\00\01") + (data (i32.const 5056) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00@\13\00\00`\13\00\00@\13\00\00\80\13\00\00\a0\13\00\00\c0\13") + (data (i32.const 5104) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\c0\13\00\00@\13\00\00@\13\00\00\80\13\00\00`\13\00\00\a0\13") + (data (i32.const 5152) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l") + (data (i32.const 5184) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01") + (data (i32.const 5216) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e") + (data (i32.const 5248) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data (i32.const 5280) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,") + (data (i32.const 5312) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e") + (data (i32.const 5360) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 5392) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000") + (data (i32.const 5424) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003") + (data (i32.const 5456) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 5488) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-") + (data (i32.const 5520) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") + (data (i32.const 5552) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_") + (data (i32.const 5584) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008") + (data (i32.const 5648) "0\00\00\00\01\00\00\00\00\00\00\000") + (data (i32.const 5678) "\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") + (data (i32.const 5712) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 ") + (data (i32.const 5744) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000") + (data (i32.const 5776) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N") + (data (i32.const 5808) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 5856) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y") + (data (i32.const 5888) "\b8\02\00\00\01\00\00\00\00\00\00\00\b8\02\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\01\00\00\00\01\00\00\00>\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]") + (data (i32.const 7332) "\01") + (data (i32.const 7344) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") + (data (i32.const 7376) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 7408) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 7440) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002") + (data (i32.const 7472) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003") + (data (i32.const 7504) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff") + (data (i32.const 7536) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000") + (data (i32.const 7568) "\06\00\00\00\01\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff") + (data (i32.const 7600) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000") + (data (i32.const 7648) "\18\00\00\00\01\00\00\00\00\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 7696) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000") + (data (i32.const 7760) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff") + (data (i32.const 7800) "\ff\ff\ff\ff\ff\ff\ff\7f") + (data (i32.const 7808) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007") + (data (i32.const 7920) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\c0\13\00\00@\13\00\00@\13\00\00\80\13\00\00`\13\00\00\a0\13") + (data (i32.const 7968) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,") + (data (i32.const 8016) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002") + (data (i32.const 8048) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004") + (data (i32.const 8080) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\a0\1b\00\00`\1f\00\00\00\00\00\00\80\1f") + (data (i32.const 8112) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004") + (data (i32.const 8144) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 8176) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04") + (data (i32.const 8208) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004") + (data (i32.const 8240) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") + (data (i32.const 8272) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") + (data (i32.const 8304) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") (table $0 57 funcref) (elem (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|2 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|16 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $start:std/array~anonymous|29 $start:std/array~anonymous|29 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|29 $start:std/array~anonymous|35 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $~lib/util/sort/COMPARATOR~anonymous|0 $start:std/array~anonymous|44 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -829,11 +828,11 @@ if unreachable end - i32.const 8400 + i32.const 8336 local.tee $0 i32.const 0 i32.store - i32.const 9968 + i32.const 9904 i32.const 0 i32.store loop $for-loop|0 @@ -844,7 +843,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 8400 + i32.const 8336 i32.add i32.const 0 i32.store offset=4 @@ -862,7 +861,7 @@ i32.add i32.const 2 i32.shl - i32.const 8400 + i32.const 8336 i32.add i32.const 0 i32.store offset=96 @@ -880,13 +879,13 @@ br $for-loop|0 end end - i32.const 8400 - i32.const 9984 + i32.const 8336 + i32.const 9920 memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 8400 + i32.const 8336 global.set $~lib/rt/tlsf/ROOT end local.get $0 @@ -1542,7 +1541,7 @@ ) (func $~lib/rt/pure/__retain (; 19 ;) (param $0 i32) (result i32) local.get $0 - i32.const 8388 + i32.const 8324 i32.gt_u if local.get $0 @@ -1554,7 +1553,7 @@ ) (func $~lib/rt/pure/__release (; 20 ;) (param $0 i32) local.get $0 - i32.const 8388 + i32.const 8324 i32.gt_u if local.get $0 @@ -2301,7 +2300,7 @@ local.get $2 call $~lib/memory/memory.copy local.get $1 - i32.const 8388 + i32.const 8324 i32.ge_u if local.get $1 @@ -4219,7 +4218,7 @@ if i32.const 0 i32.const 4032 - i32.const 1406 + i32.const 1411 i32.const 4 call $~lib/builtins/abort unreachable @@ -5684,12 +5683,8 @@ global.get $~lib/math/random_seeded i32.eqz if - i32.const 4864 - i32.const 4032 - i32.const 1413 - i32.const 24 - call $~lib/builtins/abort - unreachable + i64.const -7460067947611309027 + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 local.set $0 @@ -6411,7 +6406,7 @@ call $~lib/string/String#get:length i32.ge_u if - i32.const 5120 + i32.const 5056 return end i32.const 2 @@ -6437,16 +6432,16 @@ local.tee $1 i32.eqz if - i32.const 5232 + i32.const 5168 local.set $3 local.get $1 - i32.const 5232 + i32.const 5168 i32.ne if local.get $1 call $~lib/rt/pure/__release end - i32.const 5232 + i32.const 5168 local.set $1 end local.get $0 @@ -6465,7 +6460,7 @@ if local.get $1 call $~lib/rt/pure/__release - i32.const 5120 + i32.const 5056 local.tee $0 return end @@ -6489,7 +6484,7 @@ ) (func $~lib/string/String.__concat (; 146 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 - i32.const 5232 + i32.const 5168 local.get $0 select local.get $1 @@ -6501,7 +6496,7 @@ (local $3 i32) (local $4 i32) (local $5 i32) - i32.const 5120 + i32.const 5056 local.set $1 loop $for-loop|0 local.get $2 @@ -6632,7 +6627,7 @@ local.tee $3 i32.eqz if - i32.const 5120 + i32.const 5056 return end i32.const 0 @@ -6675,14 +6670,14 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $2 i32.eqz if - i32.const 5296 - i32.const 5328 + i32.const 5232 + i32.const 5264 local.get $0 i32.load8_u select @@ -6690,7 +6685,7 @@ return end local.get $2 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.tee $4 i32.const 5 @@ -6726,8 +6721,8 @@ i32.const 1 i32.shl i32.add - i32.const 5296 - i32.const 5328 + i32.const 5232 + i32.const 5264 local.get $8 select local.get $6 @@ -6745,7 +6740,7 @@ i32.const 1 i32.shl i32.add - i32.const 5360 + i32.const 5296 local.get $4 i32.const 1 i32.shl @@ -6776,8 +6771,8 @@ i32.const 1 i32.shl i32.add - i32.const 5296 - i32.const 5328 + i32.const 5232 + i32.const 5264 local.get $2 select local.get $0 @@ -6879,7 +6874,7 @@ local.get $0 i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -6969,7 +6964,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $4 @@ -7077,7 +7072,7 @@ local.get $0 i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -7131,7 +7126,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $4 @@ -7268,7 +7263,7 @@ local.tee $7 call $~lib/util/number/decimalCount32 local.set $4 - i32.const 7012 + i32.const 6948 i32.load local.set $13 loop $while-continue|0 @@ -7988,7 +7983,7 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 6692 + i32.const 6628 i32.load local.get $3 i32.const 3 @@ -7996,7 +7991,7 @@ i32.add i64.load global.set $~lib/util/number/_frc_pow - i32.const 6916 + i32.const 6852 i32.load local.get $3 i32.const 1 @@ -8167,7 +8162,7 @@ f64.const 0 f64.eq if - i32.const 5824 + i32.const 5760 return end local.get $0 @@ -8180,11 +8175,11 @@ local.get $0 f64.ne if - i32.const 5856 + i32.const 5792 return end - i32.const 5888 - i32.const 5936 + i32.const 5824 + i32.const 5872 local.get $0 f64.const 0 f64.lt @@ -8266,8 +8261,8 @@ i32.add local.set $1 local.get $0 - i32.const 5888 - i32.const 5936 + i32.const 5824 + i32.const 5872 local.get $3 select local.get $1 @@ -8296,7 +8291,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $3 @@ -8308,7 +8303,7 @@ return end local.get $3 - i32.const 5792 + i32.const 5728 call $~lib/string/String#get:length local.tee $4 i32.const 28 @@ -8349,7 +8344,7 @@ i32.const 1 i32.shl i32.add - i32.const 5792 + i32.const 5728 local.get $4 i32.const 1 i32.shl @@ -8407,7 +8402,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end i32.const 0 @@ -8428,13 +8423,13 @@ local.get $4 call $~lib/rt/pure/__retain else - i32.const 5120 + i32.const 5056 end local.get $4 call $~lib/rt/pure/__release return end - i32.const 5120 + i32.const 5056 local.set $1 local.get $5 call $~lib/string/String#get:length @@ -8580,7 +8575,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $5 @@ -8596,15 +8591,15 @@ end local.get $4 call $~lib/rt/pure/__release - i32.const 7200 - i32.const 5120 + i32.const 7136 + i32.const 5056 local.get $4 select return end - i32.const 5120 + i32.const 5056 local.set $1 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -8633,7 +8628,7 @@ if local.get $1 local.get $1 - i32.const 7200 + i32.const 7136 call $~lib/string/String.__concat local.tee $6 local.tee $2 @@ -8654,7 +8649,7 @@ if local.get $1 local.tee $2 - i32.const 5360 + i32.const 5296 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -8697,7 +8692,7 @@ if local.get $1 local.get $1 - i32.const 7200 + i32.const 7136 call $~lib/string/String.__concat local.tee $0 local.tee $3 @@ -8727,7 +8722,7 @@ ) (func $~lib/array/Array#toString (; 171 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join ) (func $~lib/util/number/itoa_stream (; 172 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) @@ -8798,7 +8793,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $3 @@ -8810,7 +8805,7 @@ return end local.get $3 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.tee $4 i32.const 11 @@ -8849,7 +8844,7 @@ i32.const 1 i32.shl i32.add - i32.const 5360 + i32.const 5296 local.get $4 i32.const 1 i32.shl @@ -8931,7 +8926,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $3 @@ -8943,7 +8938,7 @@ return end local.get $3 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.tee $4 i32.const 10 @@ -8984,7 +8979,7 @@ i32.const 1 i32.shl i32.add - i32.const 5360 + i32.const 5296 local.get $4 i32.const 1 i32.shl @@ -9112,7 +9107,7 @@ local.get $0 i64.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -9201,7 +9196,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $3 @@ -9213,7 +9208,7 @@ return end local.get $3 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.tee $4 i32.const 20 @@ -9254,7 +9249,7 @@ i32.const 1 i32.shl i32.add - i32.const 5360 + i32.const 5296 local.get $4 i32.const 1 i32.shl @@ -9303,7 +9298,7 @@ local.get $0 i64.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -9433,7 +9428,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $3 @@ -9445,7 +9440,7 @@ return end local.get $3 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.tee $4 i32.const 21 @@ -9486,7 +9481,7 @@ i32.const 1 i32.shl i32.add - i32.const 5360 + i32.const 5296 local.get $4 i32.const 1 i32.shl @@ -9529,7 +9524,7 @@ ) (func $~lib/array/Array<~lib/string/String | null>#toString (; 184 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array<~lib/string/String | null>#join ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 185 ;) (param $0 i32) (param $1 i32) (result i32) @@ -9547,7 +9542,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $5 @@ -9566,15 +9561,15 @@ local.get $3 call $~lib/array/Array#toString else - i32.const 5120 + i32.const 5056 end local.get $3 call $~lib/rt/pure/__release return end - i32.const 5120 + i32.const 5056 local.set $1 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -9628,7 +9623,7 @@ if local.get $1 local.tee $2 - i32.const 5360 + i32.const 5296 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -9739,7 +9734,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $3 @@ -9751,7 +9746,7 @@ return end local.get $3 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.tee $4 i32.const 10 @@ -9790,7 +9785,7 @@ i32.const 1 i32.shl i32.add - i32.const 5360 + i32.const 5296 local.get $4 i32.const 1 i32.shl @@ -9851,7 +9846,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $5 @@ -9870,15 +9865,15 @@ local.get $3 call $~lib/array/Array#toString else - i32.const 5120 + i32.const 5056 end local.get $3 call $~lib/rt/pure/__release return end - i32.const 5120 + i32.const 5056 local.set $1 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -9932,7 +9927,7 @@ if local.get $1 local.tee $2 - i32.const 5360 + i32.const 5296 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -10002,7 +9997,7 @@ ) (func $~lib/array/Array#toString (; 190 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join ) (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 191 ;) (param $0 i32) (param $1 i32) (result i32) @@ -10020,7 +10015,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $5 @@ -10039,15 +10034,15 @@ local.get $3 call $~lib/array/Array#toString else - i32.const 5120 + i32.const 5056 end local.get $3 call $~lib/rt/pure/__release return end - i32.const 5120 + i32.const 5056 local.set $1 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -10101,7 +10096,7 @@ if local.get $1 local.tee $2 - i32.const 5360 + i32.const 5296 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -10191,7 +10186,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 return end local.get $5 @@ -10210,15 +10205,15 @@ local.get $3 call $~lib/array/Array<~lib/array/Array>#toString else - i32.const 5120 + i32.const 5056 end local.get $3 call $~lib/rt/pure/__release return end - i32.const 5120 + i32.const 5056 local.set $1 - i32.const 5360 + i32.const 5296 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -10272,7 +10267,7 @@ if local.get $1 local.tee $2 - i32.const 5360 + i32.const 5296 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -14895,7 +14890,7 @@ i32.const 1 i32.const 2 i32.const 3 - i32.const 4928 + i32.const 4864 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $21 @@ -14916,7 +14911,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 4960 + i32.const 4896 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $22 @@ -15085,14 +15080,14 @@ i32.const 7 i32.const 2 i32.const 15 - i32.const 5136 + i32.const 5072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $2 i32.const 7 i32.const 2 i32.const 15 - i32.const 5184 + i32.const 5120 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $3 @@ -15128,7 +15123,7 @@ i32.const 2 i32.const 0 i32.const 17 - i32.const 5264 + i32.const 5200 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $0 @@ -15138,7 +15133,7 @@ call $~lib/util/string/joinBooleanArray local.tee $2 local.get $2 - i32.const 5392 + i32.const 5328 call $~lib/string/String.__eq i32.eqz if @@ -15152,14 +15147,14 @@ i32.const 3 i32.const 2 i32.const 3 - i32.const 5440 + i32.const 5376 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $8 - i32.const 5120 + i32.const 5056 call $~lib/array/Array#join local.tee $9 - i32.const 5504 + i32.const 5440 call $~lib/string/String.__eq i32.eqz if @@ -15173,14 +15168,14 @@ i32.const 3 i32.const 2 i32.const 7 - i32.const 5536 + i32.const 5472 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $10 - i32.const 5568 + i32.const 5504 call $~lib/array/Array#join local.tee $11 - i32.const 5504 + i32.const 5440 call $~lib/string/String.__eq i32.eqz if @@ -15194,14 +15189,14 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 5600 + i32.const 5536 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $12 - i32.const 5632 + i32.const 5568 call $~lib/array/Array#join local.tee $13 - i32.const 5664 + i32.const 5600 call $~lib/string/String.__eq i32.eqz if @@ -15215,7 +15210,7 @@ i32.const 6 i32.const 3 i32.const 10 - i32.const 5728 + i32.const 5664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $2 @@ -15226,7 +15221,7 @@ local.tee $3 local.set $14 local.get $3 - i32.const 7040 + i32.const 6976 call $~lib/string/String.__eq i32.eqz if @@ -15240,14 +15235,14 @@ i32.const 3 i32.const 2 i32.const 15 - i32.const 7168 + i32.const 7104 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $16 - i32.const 5120 + i32.const 5056 call $~lib/array/Array<~lib/string/String | null>#join local.tee $17 - i32.const 7136 + i32.const 7072 call $~lib/string/String.__eq i32.eqz if @@ -15284,7 +15279,7 @@ local.get $3 call $~lib/array/Array#join local.tee $20 - i32.const 7248 + i32.const 7184 call $~lib/string/String.__eq i32.eqz if @@ -15318,7 +15313,7 @@ local.get $5 call $~lib/array/Array#join local.tee $22 - i32.const 7328 + i32.const 7264 call $~lib/string/String.__eq i32.eqz if @@ -15371,35 +15366,35 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 7408 + i32.const 7344 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $5 i32.const 1 i32.const 2 i32.const 3 - i32.const 7424 + i32.const 7360 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $7 i32.const 2 i32.const 2 i32.const 3 - i32.const 7456 + i32.const 7392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $8 i32.const 4 i32.const 2 i32.const 3 - i32.const 7488 + i32.const 7424 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $9 local.get $5 call $~lib/array/Array#toString local.tee $16 - i32.const 5120 + i32.const 5056 call $~lib/string/String.__eq i32.eqz if @@ -15413,7 +15408,7 @@ local.get $7 call $~lib/array/Array#toString local.tee $17 - i32.const 7136 + i32.const 7072 call $~lib/string/String.__eq i32.eqz if @@ -15427,7 +15422,7 @@ local.get $8 call $~lib/array/Array#toString local.tee $18 - i32.const 7520 + i32.const 7456 call $~lib/string/String.__eq i32.eqz if @@ -15441,7 +15436,7 @@ local.get $9 call $~lib/array/Array#toString local.tee $19 - i32.const 7552 + i32.const 7488 call $~lib/string/String.__eq i32.eqz if @@ -15455,7 +15450,7 @@ i32.const 3 i32.const 0 i32.const 20 - i32.const 7584 + i32.const 7520 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $10 @@ -15465,7 +15460,7 @@ call $~lib/util/string/joinIntegerArray local.tee $0 local.get $0 - i32.const 7616 + i32.const 7552 call $~lib/string/String.__eq i32.eqz if @@ -15479,7 +15474,7 @@ i32.const 3 i32.const 1 i32.const 21 - i32.const 7648 + i32.const 7584 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $11 @@ -15490,7 +15485,7 @@ local.tee $0 local.set $15 local.get $0 - i32.const 7680 + i32.const 7616 call $~lib/string/String.__eq i32.eqz if @@ -15504,7 +15499,7 @@ i32.const 3 i32.const 3 i32.const 18 - i32.const 7728 + i32.const 7664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $12 @@ -15515,7 +15510,7 @@ local.tee $0 local.set $21 local.get $0 - i32.const 7776 + i32.const 7712 call $~lib/string/String.__eq i32.eqz if @@ -15529,7 +15524,7 @@ i32.const 4 i32.const 3 i32.const 22 - i32.const 7840 + i32.const 7776 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $13 @@ -15540,7 +15535,7 @@ local.tee $0 local.set $22 local.get $0 - i32.const 7888 + i32.const 7824 call $~lib/string/String.__eq i32.eqz if @@ -15554,13 +15549,13 @@ i32.const 7 i32.const 2 i32.const 15 - i32.const 8000 + i32.const 7936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $23 call $~lib/array/Array<~lib/string/String | null>#toString local.tee $26 - i32.const 8048 + i32.const 7984 call $~lib/string/String.__eq i32.eqz if @@ -15574,13 +15569,13 @@ i32.const 4 i32.const 2 i32.const 15 - i32.const 8160 + i32.const 8096 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $27 call $~lib/array/Array<~lib/string/String | null>#toString local.tee $28 - i32.const 8192 + i32.const 8128 call $~lib/string/String.__eq i32.eqz if @@ -15603,7 +15598,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 8224 + i32.const 8160 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $29 @@ -15613,7 +15608,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 8256 + i32.const 8192 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $30 @@ -15627,7 +15622,7 @@ local.tee $2 local.set $31 local.get $2 - i32.const 8288 + i32.const 8224 call $~lib/string/String.__eq i32.eqz if @@ -15650,7 +15645,7 @@ i32.const 2 i32.const 0 i32.const 6 - i32.const 8320 + i32.const 8256 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $32 @@ -15660,7 +15655,7 @@ i32.const 2 i32.const 0 i32.const 6 - i32.const 8352 + i32.const 8288 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $33 @@ -15674,7 +15669,7 @@ local.tee $3 local.set $34 local.get $3 - i32.const 8288 + i32.const 8224 call $~lib/string/String.__eq i32.eqz if @@ -15704,7 +15699,7 @@ i32.const 1 i32.const 2 i32.const 7 - i32.const 8384 + i32.const 8320 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $35 @@ -15721,7 +15716,7 @@ local.tee $24 local.set $36 local.get $24 - i32.const 7136 + i32.const 7072 call $~lib/string/String.__eq i32.eqz if @@ -15886,7 +15881,7 @@ ) (func $~lib/rt/pure/__visit (; 197 ;) (param $0 i32) local.get $0 - i32.const 8388 + i32.const 8324 i32.lt_u if return diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 17aff3ec78..57cdd9a91b 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -26,6 +26,7 @@ (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) + (type $none_=>_i64 (func (result i64))) (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) (type $i64_=>_i64 (func (param i64) (result i64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) @@ -147,76 +148,75 @@ (data (i32.const 4752) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00") (data (i32.const 4784) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") (data (i32.const 4816) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 4848) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00P\00R\00N\00G\00 \00m\00u\00s\00t\00 \00b\00e\00 \00s\00e\00e\00d\00e\00d\00.\00") - (data (i32.const 4912) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 4944) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 4976) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a\00") - (data (i32.const 5008) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b\00") - (data (i32.const 5040) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b\00") - (data (i32.const 5072) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a\00") - (data (i32.const 5104) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 5120) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\80\13\00\00\a0\13\00\00\80\13\00\00\c0\13\00\00\e0\13\00\00\00\14\00\00\00\00\00\00") - (data (i32.const 5168) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\00\14\00\00\80\13\00\00\80\13\00\00\c0\13\00\00\a0\13\00\00\e0\13\00\00\00\00\00\00") - (data (i32.const 5216) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00") - (data (i32.const 5248) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\00") - (data (i32.const 5280) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00") - (data (i32.const 5312) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00") - (data (i32.const 5344) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,\00") - (data (i32.const 5376) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00") - (data (i32.const 5424) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") - (data (i32.const 5456) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000\00") - (data (i32.const 5488) "\90\01\00\00\01\00\00\00\00\00\00\00\90\01\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 5904) "\10\00\00\00\01\00\00\00\07\00\00\00\10\00\00\00\80\15\00\00\80\15\00\00\90\01\00\00d\00\00\00") - (data (i32.const 5936) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003\00") - (data (i32.const 5968) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 6000) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-\00") - (data (i32.const 6032) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") - (data (i32.const 6064) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_\00") - (data (i32.const 6096) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00") - (data (i32.const 6160) "0\00\00\00\01\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") - (data (i32.const 6224) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 \00") - (data (i32.const 6256) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000\00") - (data (i32.const 6288) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00") - (data (i32.const 6320) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 6368) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") - (data (i32.const 6400) "\b8\02\00\00\01\00\00\00\00\00\00\00\b8\02\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\01\00\00\00\01\00\00\00>\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00") - (data (i32.const 7840) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7856) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 7888) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 7920) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") - (data (i32.const 7952) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002\00") - (data (i32.const 7984) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00") - (data (i32.const 8016) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff\00") - (data (i32.const 8048) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") - (data (i32.const 8080) "\06\00\00\00\01\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff\00\00") - (data (i32.const 8112) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00") - (data (i32.const 8160) "\18\00\00\00\01\00\00\00\00\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") - (data (i32.const 8208) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00") - (data (i32.const 8272) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") - (data (i32.const 8320) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00") - (data (i32.const 8432) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\00\14\00\00\80\13\00\00\80\13\00\00\c0\13\00\00\a0\13\00\00\e0\13\00\00\00\00\00\00") - (data (i32.const 8480) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00") - (data (i32.const 8528) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002\00") - (data (i32.const 8560) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004\00") - (data (i32.const 8592) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\a0\1d\00\00`!\00\00\00\00\00\00\80!\00\00") - (data (i32.const 8624) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") - (data (i32.const 8656) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 8688) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00") - (data (i32.const 8720) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00") - (data (i32.const 8752) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") - (data (i32.const 8784) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") - (data (i32.const 8816) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 4848) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 4880) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 4912) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a\00") + (data (i32.const 4944) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b\00") + (data (i32.const 4976) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b\00") + (data (i32.const 5008) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a\00") + (data (i32.const 5040) "\00\00\00\00\01\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 5056) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00@\13\00\00`\13\00\00@\13\00\00\80\13\00\00\a0\13\00\00\c0\13\00\00\00\00\00\00") + (data (i32.const 5104) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\c0\13\00\00@\13\00\00@\13\00\00\80\13\00\00`\13\00\00\a0\13\00\00\00\00\00\00") + (data (i32.const 5152) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l\00") + (data (i32.const 5184) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\00") + (data (i32.const 5216) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e\00") + (data (i32.const 5248) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e\00") + (data (i32.const 5280) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,\00") + (data (i32.const 5312) "\14\00\00\00\01\00\00\00\01\00\00\00\14\00\00\00t\00r\00u\00e\00,\00f\00a\00l\00s\00e\00") + (data (i32.const 5360) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\fe\ff\ff\ff\fd\ff\ff\ff") + (data (i32.const 5392) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000\00") + (data (i32.const 5424) "\90\01\00\00\01\00\00\00\00\00\00\00\90\01\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") + (data (i32.const 5840) "\10\00\00\00\01\00\00\00\07\00\00\00\10\00\00\00@\15\00\00@\15\00\00\90\01\00\00d\00\00\00") + (data (i32.const 5872) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003\00") + (data (i32.const 5904) "\0c\00\00\00\01\00\00\00\00\00\00\00\0c\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 5936) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-\00") + (data (i32.const 5968) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\80\00\00\00\80") + (data (i32.const 6000) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_\00") + (data (i32.const 6032) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\00-\002\001\004\007\004\008\003\006\004\008\00_\00_\00-\002\001\004\007\004\008\003\006\004\008\00") + (data (i32.const 6096) "0\00\00\00\01\00\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\f0\7f") + (data (i32.const 6160) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 \00") + (data (i32.const 6192) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000\00") + (data (i32.const 6224) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00") + (data (i32.const 6256) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\00-\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 6304) "\10\00\00\00\01\00\00\00\01\00\00\00\10\00\00\00I\00n\00f\00i\00n\00i\00t\00y\00") + (data (i32.const 6336) "\b8\02\00\00\01\00\00\00\00\00\00\00\b8\02\00\00\88\02\1c\08\a0\d5\8f\fav\bf>\a2\7f\e1\ae\bav\acU0 \fb\16\8b\ea5\ce]J\89B\cf-;eU\aa\b0k\9a\dfE\1a=\03\cf\1a\e6\ca\c6\9a\c7\17\fep\abO\dc\bc\be\fc\b1w\ff\0c\d6kA\ef\91V\be<\fc\7f\90\ad\1f\d0\8d\83\9aU1(\\Q\d3\b5\c9\a6\ad\8f\acq\9d\cb\8b\ee#w\"\9c\eamSx@\91I\cc\aeW\ce\b6]y\12<\827V\fbM6\94\10\c2O\98H8o\ea\96\90\c7:\82%\cb\85t\d7\f4\97\bf\97\cd\cf\86\a0\e5\ac*\17\98\n4\ef\8e\b25*\fbg8\b2;?\c6\d2\df\d4\c8\84\ba\cd\d3\1a\'D\dd\c5\96\c9%\bb\ce\9fk\93\84\a5b}$l\ac\db\f6\da_\0dXf\ab\a3&\f1\c3\de\93\f8\e2\f3\b8\80\ff\aa\a8\ad\b5\b5\8bJ|l\05_b\87S0\c14`\ff\bc\c9U&\ba\91\8c\85N\96\bd~)p$w\f9\df\8f\b8\e5\b8\9f\bd\df\a6\94}t\88\cf_\a9\f8\cf\9b\a8\8f\93pD\b9k\15\0f\bf\f8\f0\08\8a\b611eU%\b0\cd\ac\7f{\d0\c6\e2?\99\06;+*\c4\10\\\e4\d3\92si\99$$\aa\0e\ca\00\83\f2\b5\87\fd\eb\1a\11\92d\08\e5\bc\cc\88Po\t\cc\bc\8c,e\19\e2X\17\b7\d1\00\00\00\00\00\00@\9c\00\00\00\00\10\a5\d4\e8\00\00b\ac\c5\ebx\ad\84\t\94\f8x9?\81\b3\15\07\c9{\ce\97\c0p\\\ea{\ce2~\8fh\80\e9\ab\a48\d2\d5E\"\9a\17&\'O\9f\'\fb\c4\d41\a2c\ed\a8\ad\c8\8c8e\de\b0\dbe\ab\1a\8e\08\c7\83\9a\1dqB\f9\1d]\c4X\e7\1b\a6,iM\92\ea\8dp\1ad\ee\01\daJw\ef\9a\99\a3m\a2\85k}\b4{x\t\f2w\18\ddy\a1\e4T\b4\c2\c5\9b[\92\86[\86=]\96\c8\c5S5\c8\b3\a0\97\fa\\\b4*\95\e3_\a0\99\bd\9fF\de%\8c9\db4\c2\9b\a5\\\9f\98\a3r\9a\c6\f6\ce\be\e9TS\bf\dc\b7\e2A\"\f2\17\f3\fc\88\a5x\\\d3\9b\ce \cc\dfS!{\f3Z\16\98:0\1f\97\dc\b5\a0\e2\96\b3\e3\\S\d1\d9\a8\00\00\00\01\00\00\00\01\00\00\00>\00\00\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00,\00[\00o\00b\00j\00e\00c\00t\00 \00O\00b\00j\00e\00c\00t\00]\00") + (data (i32.const 7776) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7792) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 7824) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 7856) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 7888) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002\00") + (data (i32.const 7920) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\000\00,\001\00,\002\00,\003\00") + (data (i32.const 7952) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff\00") + (data (i32.const 7984) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000\00") + (data (i32.const 8016) "\06\00\00\00\01\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff\00\00") + (data (i32.const 8048) "\12\00\00\00\01\00\00\00\01\00\00\00\12\00\00\001\00,\006\005\005\003\005\00,\000\00") + (data (i32.const 8096) "\18\00\00\00\01\00\00\00\00\00\00\00\18\00\00\00\01\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\00\00\00\00") + (data (i32.const 8144) "0\00\00\00\01\00\00\00\01\00\00\000\00\00\001\00,\001\008\004\004\006\007\004\004\000\007\003\007\000\009\005\005\001\006\001\005\00,\000\00") + (data (i32.const 8208) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\ff\ff\ff\ff\ff\ff\ff\ff@Eu\c3*\9d\fb\ff\00\00\00\00\00\00\00\00\ff\ff\ff\ff\ff\ff\ff\7f") + (data (i32.const 8256) "T\00\00\00\01\00\00\00\01\00\00\00T\00\00\00-\001\00,\00-\001\002\003\004\005\006\007\008\009\000\001\002\003\004\005\006\00,\000\00,\009\002\002\003\003\007\002\000\003\006\008\005\004\007\007\005\008\000\007\00") + (data (i32.const 8368) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\c0\13\00\00@\13\00\00@\13\00\00\80\13\00\00`\13\00\00\a0\13\00\00\00\00\00\00") + (data (i32.const 8416) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00,\00a\00,\00a\00,\00a\00b\00,\00b\00,\00b\00a\00,\00") + (data (i32.const 8464) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002\00") + (data (i32.const 8496) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004\00") + (data (i32.const 8528) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00`\1d\00\00 !\00\00\00\00\00\00@!\00\00") + (data (i32.const 8560) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004\00") + (data (i32.const 8592) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 8624) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04\00\00\00") + (data (i32.const 8656) "\0e\00\00\00\01\00\00\00\01\00\00\00\0e\00\00\001\00,\002\00,\003\00,\004\00") + (data (i32.const 8688) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") + (data (i32.const 8720) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") + (data (i32.const 8752) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") (table $0 57 funcref) (elem (i32.const 1) $start:std/array~anonymous|0 $start:std/array~anonymous|1 $start:std/array~anonymous|2 $start:std/array~anonymous|3 $start:std/array~anonymous|4 $start:std/array~anonymous|5 $start:std/array~anonymous|6 $start:std/array~anonymous|7 $start:std/array~anonymous|8 $start:std/array~anonymous|9 $start:std/array~anonymous|10 $start:std/array~anonymous|11 $start:std/array~anonymous|12 $start:std/array~anonymous|13 $start:std/array~anonymous|14 $start:std/array~anonymous|15 $start:std/array~anonymous|16 $start:std/array~anonymous|17 $start:std/array~anonymous|18 $start:std/array~anonymous|19 $start:std/array~anonymous|20 $start:std/array~anonymous|21 $start:std/array~anonymous|22 $start:std/array~anonymous|23 $start:std/array~anonymous|24 $start:std/array~anonymous|25 $start:std/array~anonymous|26 $start:std/array~anonymous|27 $start:std/array~anonymous|28 $start:std/array~anonymous|29 $start:std/array~anonymous|30 $start:std/array~anonymous|31 $start:std/array~anonymous|32 $start:std/array~anonymous|33 $start:std/array~anonymous|34 $start:std/array~anonymous|35 $start:std/array~anonymous|36 $start:std/array~anonymous|37 $start:std/array~anonymous|38 $start:std/array~anonymous|39 $start:std/array~anonymous|40 $start:std/array~anonymous|41 $start:std/array~anonymous|42 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|0 $~lib/util/sort/COMPARATOR~anonymous|1 $start:std/array~anonymous|43 $start:std/array~anonymous|44 $start:std/array~anonymous|45 $start:std/array~anonymous|46 $start:std/array~anonymous|47 $start:std/array~anonymous|48 $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0) (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) @@ -233,6 +233,8 @@ (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) (global $std/array/charset i32 (i32.const 4080)) + (global $~lib/ASC_SEEDRANDOM_HIGH i32 (i32.const 0)) + (global $~lib/ASC_SEEDRANDOM_LOW i32 (i32.const 0)) (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) @@ -243,7 +245,7 @@ (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) (global $~lib/builtins/i64.MAX_VALUE i64 (i64.const 9223372036854775807)) (global $~started (mut i32) (i32.const 0)) - (global $~lib/heap/__heap_base i32 (i32.const 8836)) + (global $~lib/heap/__heap_base i32 (i32.const 8772)) (export "__argumentsLength" (global $~argumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) @@ -7003,7 +7005,7 @@ if i32.const 0 i32.const 4032 - i32.const 1406 + i32.const 1411 i32.const 4 call $~lib/builtins/abort unreachable @@ -9264,19 +9266,18 @@ end local.get $1 ) - (func $~lib/math/NativeMath.random (; 167 ;) (result f64) + (func $~lib/math/seedRandomSelect (; 167 ;) (result i64) + i64.const 5424538597996285423 + ) + (func $~lib/math/NativeMath.random (; 168 ;) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) global.get $~lib/math/random_seeded i32.eqz if - i32.const 4864 - i32.const 4032 - i32.const 1413 - i32.const 24 - call $~lib/builtins/abort - unreachable + call $~lib/math/seedRandomSelect + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 local.set $0 @@ -9319,7 +9320,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 168 ;) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 169 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9353,12 +9354,12 @@ end local.get $1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 169 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 170 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $std/array/isSorted (; 170 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 171 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9413,7 +9414,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted (; 171 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 172 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9438,7 +9439,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/array/assertSortedDefault (; 172 ;) (param $0 i32) + (func $std/array/assertSortedDefault (; 173 ;) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -9451,27 +9452,27 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|43 (; 173 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|43 (; 174 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|44 (; 174 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 175 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $start:std/array~anonymous|45 (; 175 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|45 (; 176 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|46 (; 176 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|46 (; 177 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#constructor (; 177 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#constructor (; 178 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -9493,7 +9494,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 178 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 179 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -9523,7 +9524,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 179 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 180 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -9564,7 +9565,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedNestedArray (; 180 ;) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 181 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9609,7 +9610,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 181 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 182 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9631,7 +9632,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 182 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 183 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9729,7 +9730,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 183 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 184 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9800,11 +9801,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#get:length (; 184 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#get:length (; 185 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 185 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 186 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -9814,7 +9815,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#__get (; 186 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (; 187 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -9846,7 +9847,7 @@ end local.get $2 ) - (func $std/array/isSorted<~lib/array/Array> (; 187 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 188 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9913,7 +9914,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted<~lib/array/Array> (; 188 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 189 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9938,7 +9939,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array>#constructor (; 189 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#constructor (; 190 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -9960,7 +9961,7 @@ i32.store offset=12 local.get $0 ) - (func $std/array/Proxy#constructor (; 190 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Proxy#constructor (; 191 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -9975,7 +9976,7 @@ i32.store local.get $0 ) - (func $~lib/array/Array>#__unchecked_set (; 191 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__unchecked_set (; 192 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -10005,7 +10006,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array>#__set (; 192 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 193 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -10046,7 +10047,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedElementsArray (; 193 ;) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 194 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10086,7 +10087,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 194 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 195 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10106,7 +10107,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort> (; 195 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort> (; 196 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10204,7 +10205,7 @@ end end ) - (func $~lib/array/Array>#sort (; 196 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 197 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10275,11 +10276,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#get:length (; 197 ;) (param $0 i32) (result i32) + (func $~lib/array/Array>#get:length (; 198 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array>#__unchecked_get (; 198 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__unchecked_get (; 199 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10289,7 +10290,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#__get (; 199 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (; 200 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -10321,7 +10322,7 @@ end local.get $2 ) - (func $std/array/isSorted> (; 200 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted> (; 201 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10388,7 +10389,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted> (; 201 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 202 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10413,7 +10414,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 202 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 203 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10511,7 +10512,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String | null>#sort (; 203 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#sort (; 204 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10582,11 +10583,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#get:length (; 204 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#get:length (; 205 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 205 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 206 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10596,7 +10597,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#__get (; 206 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__get (; 207 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -10616,7 +10617,7 @@ local.set $2 local.get $2 ) - (func $std/array/isSorted<~lib/string/String | null> (; 207 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String | null> (; 208 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10683,7 +10684,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted<~lib/string/String | null> (; 208 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null> (; 209 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10708,7 +10709,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (; 209 ;) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 210 ;) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -10716,7 +10717,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 210 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 211 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) (local $5 i32) (local $6 i32) (local $7 i32) @@ -10838,7 +10839,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 211 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 212 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10944,7 +10945,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 212 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 213 ;) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -10965,7 +10966,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String | null> ) - (func $~lib/string/String.__eq (; 213 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 214 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -11038,7 +11039,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__ne (; 214 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 215 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11057,7 +11058,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 215 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 216 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11154,7 +11155,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#constructor (; 216 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#constructor (; 217 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -11176,14 +11177,14 @@ i32.store offset=12 local.get $0 ) - (func $~lib/string/String#charAt (; 217 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#charAt (; 218 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 call $~lib/string/String#get:length i32.ge_u if - i32.const 5120 + i32.const 5056 call $~lib/rt/pure/__retain return end @@ -11202,7 +11203,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#concat (; 218 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 219 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11216,7 +11217,7 @@ i32.const 0 i32.eq if - i32.const 5232 + i32.const 5168 local.tee $2 local.get $1 local.tee $3 @@ -11249,7 +11250,7 @@ i32.const 0 i32.eq if - i32.const 5120 + i32.const 5056 call $~lib/rt/pure/__retain local.set $2 local.get $1 @@ -11278,7 +11279,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 219 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 220 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11287,7 +11288,7 @@ call $~lib/rt/pure/__retain local.set $1 local.get $0 - i32.const 5232 + i32.const 5168 local.get $0 i32.const 0 i32.ne @@ -11301,7 +11302,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/createRandomString (; 220 ;) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 221 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11310,7 +11311,7 @@ (local $6 i32) (local $7 i32) (local $8 i32) - i32.const 5120 + i32.const 5056 local.set $1 i32.const 0 local.set $2 @@ -11362,7 +11363,7 @@ end local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 221 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 222 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -11392,7 +11393,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/string/String>#__set (; 222 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__set (; 223 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -11433,7 +11434,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createRandomStringArray (; 223 ;) (param $0 i32) (result i32) + (func $std/array/createRandomStringArray (; 224 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11471,7 +11472,7 @@ end local.get $1 ) - (func $~lib/util/sort/insertionSort<~lib/string/String> (; 224 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String> (; 225 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11569,7 +11570,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#sort (; 225 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#sort (; 226 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11640,11 +11641,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 226 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 227 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 227 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 228 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -11654,7 +11655,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#__get (; 228 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 229 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -11686,7 +11687,7 @@ end local.get $2 ) - (func $std/array/isSorted<~lib/string/String> (; 229 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String> (; 230 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11753,7 +11754,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted<~lib/string/String> (; 230 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String> (; 231 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11778,7 +11779,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 231 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 232 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11884,7 +11885,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String>|trampoline (; 232 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String>|trampoline (; 233 ;) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -11905,7 +11906,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String> ) - (func $~lib/string/String#substring (; 233 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 234 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11979,7 +11980,7 @@ local.get $10 i32.eqz if - i32.const 5120 + i32.const 5056 call $~lib/rt/pure/__retain return end @@ -12012,7 +12013,7 @@ local.get $11 call $~lib/rt/pure/__retain ) - (func $~lib/util/string/joinBooleanArray (; 234 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinBooleanArray (; 235 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12034,7 +12035,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -12044,8 +12045,8 @@ local.get $3 i32.eqz if - i32.const 5296 - i32.const 5328 + i32.const 5232 + i32.const 5264 local.get $0 i32.load8_u select @@ -12102,8 +12103,8 @@ i32.const 1 i32.shl i32.add - i32.const 5296 - i32.const 5328 + i32.const 5232 + i32.const 5264 local.get $10 select local.get $6 @@ -12153,8 +12154,8 @@ i32.const 1 i32.shl i32.add - i32.const 5296 - i32.const 5328 + i32.const 5232 + i32.const 5264 local.get $10 select local.get $6 @@ -12187,7 +12188,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 235 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 236 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12210,7 +12211,7 @@ local.get $4 return ) - (func $~lib/util/number/decimalCount32 (; 236 ;) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 237 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 100000 @@ -12276,7 +12277,7 @@ end unreachable ) - (func $~lib/util/number/utoa32_lut (; 237 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 238 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12287,7 +12288,7 @@ (local $10 i64) (local $11 i32) (local $12 i32) - i32.const 5920 + i32.const 5856 i32.load offset=4 local.set $3 loop $while-continue|0 @@ -12420,7 +12421,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 238 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 239 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12430,7 +12431,7 @@ local.get $0 i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -12474,12 +12475,12 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 239 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 240 ;) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 240 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 241 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12536,7 +12537,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 241 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 242 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12556,7 +12557,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -12679,7 +12680,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 242 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 243 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12702,7 +12703,7 @@ local.get $4 return ) - (func $~lib/util/number/utoa32 (; 243 ;) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 244 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12711,7 +12712,7 @@ local.get $0 i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -12736,12 +12737,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 244 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 245 ;) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 245 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 246 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12778,7 +12779,7 @@ call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 246 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 247 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12798,7 +12799,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -12921,7 +12922,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 247 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 248 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12944,7 +12945,7 @@ local.get $4 return ) - (func $~lib/array/Array#__unchecked_get (; 248 ;) (param $0 i32) (param $1 i32) (result i64) + (func $~lib/array/Array#__unchecked_get (; 249 ;) (param $0 i32) (param $1 i32) (result i64) local.get $0 i32.load offset=4 local.get $1 @@ -12953,7 +12954,7 @@ i32.add i64.load ) - (func $~lib/array/Array#__unchecked_get (; 249 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 250 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -12962,7 +12963,7 @@ i32.add i32.load16_s ) - (func $~lib/util/number/genDigits (; 250 ;) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) + (func $~lib/util/number/genDigits (; 251 ;) (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i64) (param $4 i32) (param $5 i64) (param $6 i32) (result i32) (local $7 i32) (local $8 i64) (local $9 i64) @@ -13020,7 +13021,7 @@ local.set $14 local.get $6 local.set $15 - i32.const 7456 + i32.const 7392 i32.load offset=4 local.set $16 loop $while-continue|0 @@ -13469,7 +13470,7 @@ end local.get $15 ) - (func $~lib/util/number/prettify (; 251 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 252 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13786,7 +13787,7 @@ end unreachable ) - (func $~lib/util/number/dtoa_core (; 252 ;) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 253 ;) (param $0 i32) (param $1 f64) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -13951,11 +13952,11 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 7136 + i32.const 7072 local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_frc_pow - i32.const 7360 + i32.const 7296 local.get $14 call $~lib/array/Array#__unchecked_get global.set $~lib/util/number/_exp_pow @@ -14208,7 +14209,7 @@ local.get $2 i32.add ) - (func $~lib/util/number/dtoa (; 253 ;) (param $0 f64) (result i32) + (func $~lib/util/number/dtoa (; 254 ;) (param $0 f64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14216,7 +14217,7 @@ f64.const 0 f64.eq if - i32.const 6272 + i32.const 6208 return end local.get $0 @@ -14230,11 +14231,11 @@ local.get $0 f64.ne if - i32.const 6304 + i32.const 6240 return end - i32.const 6336 - i32.const 6384 + i32.const 6272 + i32.const 6320 local.get $0 f64.const 0 f64.lt @@ -14269,7 +14270,7 @@ call $~lib/rt/tlsf/__free local.get $3 ) - (func $~lib/util/number/dtoa_stream (; 254 ;) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 255 ;) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -14326,8 +14327,8 @@ i32.add local.set $4 local.get $0 - i32.const 6336 - i32.const 6384 + i32.const 6272 + i32.const 6320 local.get $3 select local.get $4 @@ -14343,7 +14344,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/util/string/joinFloatArray (; 255 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinFloatArray (; 256 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14363,7 +14364,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -14486,7 +14487,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 256 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 257 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14509,7 +14510,7 @@ local.get $4 return ) - (func $~lib/util/string/joinStringArray (; 257 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinStringArray (; 258 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14531,7 +14532,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -14548,7 +14549,7 @@ local.get $4 call $~lib/rt/pure/__retain else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -14738,7 +14739,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/array/Array<~lib/string/String | null>#join (; 258 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join (; 259 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14761,10 +14762,10 @@ local.get $4 return ) - (func $std/array/Ref#toString (; 259 ;) (param $0 i32) (result i32) - i32.const 7648 + (func $std/array/Ref#toString (; 260 ;) (param $0 i32) (result i32) + i32.const 7584 ) - (func $~lib/util/string/joinReferenceArray (; 260 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray (; 261 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -14786,7 +14787,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -14820,7 +14821,7 @@ local.get $5 call $std/array/Ref#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -14830,7 +14831,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -14975,7 +14976,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 261 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 262 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -14998,7 +14999,7 @@ local.get $4 return ) - (func $~lib/util/string/joinReferenceArray (; 262 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray (; 263 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15020,7 +15021,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -15054,7 +15055,7 @@ local.get $5 call $std/array/Ref#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -15064,7 +15065,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -15209,7 +15210,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 263 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 264 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15232,12 +15233,12 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 264 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 265 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 265 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 266 ;) (param $0 i32) (result i32) local.get $0 i32.const 24 i32.shl @@ -15246,7 +15247,7 @@ call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 266 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 267 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15319,7 +15320,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 267 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 268 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15339,7 +15340,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -15462,7 +15463,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 268 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 269 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15485,19 +15486,19 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 269 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 270 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa (; 270 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 271 ;) (param $0 i32) (result i32) local.get $0 i32.const 65535 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 271 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 272 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15540,7 +15541,7 @@ call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 272 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 273 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -15560,7 +15561,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -15683,7 +15684,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 273 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 274 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -15706,12 +15707,12 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 274 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 275 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join ) - (func $~lib/util/number/decimalCount64 (; 275 ;) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64 (; 276 ;) (param $0 i64) (result i32) (local $1 i32) local.get $0 i64.const 1000000000000000 @@ -15784,7 +15785,7 @@ end unreachable ) - (func $~lib/util/number/utoa64_lut (; 276 ;) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa64_lut (; 277 ;) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i64) @@ -15797,7 +15798,7 @@ (local $12 i32) (local $13 i64) (local $14 i64) - i32.const 5920 + i32.const 5856 i32.load offset=4 local.set $3 loop $while-continue|0 @@ -15911,7 +15912,7 @@ local.get $2 call $~lib/util/number/utoa32_lut ) - (func $~lib/util/number/utoa64 (; 277 ;) (param $0 i64) (result i32) + (func $~lib/util/number/utoa64 (; 278 ;) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -15924,7 +15925,7 @@ i64.ne i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -15977,12 +15978,12 @@ local.get $1 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 278 ;) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 279 ;) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/utoa64 return ) - (func $~lib/util/number/itoa_stream (; 279 ;) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 280 ;) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16045,7 +16046,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 280 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 281 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16065,7 +16066,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -16188,7 +16189,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 281 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 282 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16211,12 +16212,12 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 282 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 283 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join ) - (func $~lib/util/number/itoa64 (; 283 ;) (param $0 i64) (result i32) + (func $~lib/util/number/itoa64 (; 284 ;) (param $0 i64) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -16230,7 +16231,7 @@ i64.ne i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -16304,12 +16305,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 284 ;) (param $0 i64) (result i32) + (func $~lib/util/number/itoa (; 285 ;) (param $0 i64) (result i32) local.get $0 call $~lib/util/number/itoa64 return ) - (func $~lib/util/number/itoa_stream (; 285 ;) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 286 ;) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16394,7 +16395,7 @@ end local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 286 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 287 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16414,7 +16415,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -16537,7 +16538,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 287 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 288 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16560,17 +16561,17 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 288 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 289 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join ) - (func $~lib/array/Array<~lib/string/String | null>#toString (; 289 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#toString (; 290 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array<~lib/string/String | null>#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 290 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 291 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16592,7 +16593,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -16626,7 +16627,7 @@ local.get $5 call $~lib/array/Array#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -16636,7 +16637,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -16781,7 +16782,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 291 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 292 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -16804,19 +16805,19 @@ local.get $4 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 292 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 293 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/util/number/itoa (; 293 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 294 ;) (param $0 i32) (result i32) local.get $0 i32.const 255 i32.and call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 294 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 295 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16859,7 +16860,7 @@ call $~lib/util/number/utoa32_lut local.get $3 ) - (func $~lib/util/string/joinIntegerArray (; 295 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 296 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -16879,7 +16880,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -17002,7 +17003,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 296 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 297 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17025,12 +17026,12 @@ local.get $4 return ) - (func $~lib/array/Array#toString (; 297 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 298 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 298 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 299 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17052,7 +17053,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -17086,7 +17087,7 @@ local.get $5 call $~lib/array/Array#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -17096,7 +17097,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -17241,7 +17242,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 299 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 300 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17264,17 +17265,17 @@ local.get $4 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 300 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 301 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/array/Array#toString (; 301 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 302 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 302 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 303 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17296,7 +17297,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -17330,7 +17331,7 @@ local.get $5 call $~lib/array/Array#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -17340,7 +17341,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -17485,7 +17486,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array<~lib/array/Array>#join (; 303 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#join (; 304 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17508,12 +17509,12 @@ local.get $4 return ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 304 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 305 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array<~lib/array/Array>#join ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (; 305 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (; 306 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -17535,7 +17536,7 @@ i32.const 0 i32.lt_s if - i32.const 5120 + i32.const 5056 local.set $4 local.get $2 call $~lib/rt/pure/__release @@ -17569,7 +17570,7 @@ local.get $5 call $~lib/array/Array<~lib/array/Array>#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -17579,7 +17580,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -17724,7 +17725,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 306 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join (; 307 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -17747,12 +17748,12 @@ local.get $4 return ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 307 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString (; 308 ;) (param $0 i32) (result i32) local.get $0 - i32.const 5360 + i32.const 5296 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#join ) - (func $start:std/array (; 308 ;) + (func $start:std/array (; 309 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -22791,7 +22792,7 @@ i32.const 1 i32.const 2 i32.const 3 - i32.const 4928 + i32.const 4864 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $39 @@ -22812,7 +22813,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 4960 + i32.const 4896 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $35 @@ -22985,14 +22986,14 @@ i32.const 7 i32.const 2 i32.const 15 - i32.const 5136 + i32.const 5072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $35 i32.const 7 i32.const 2 i32.const 15 - i32.const 5184 + i32.const 5120 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $38 @@ -23031,14 +23032,14 @@ i32.const 2 i32.const 0 i32.const 17 - i32.const 5264 + i32.const 5200 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $38 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join local.tee $39 - i32.const 5392 + i32.const 5328 call $~lib/string/String.__eq i32.eqz if @@ -23052,14 +23053,14 @@ i32.const 3 i32.const 2 i32.const 3 - i32.const 5440 + i32.const 5376 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $42 - i32.const 5120 + i32.const 5056 call $~lib/array/Array#join local.tee $35 - i32.const 5952 + i32.const 5888 call $~lib/string/String.__eq i32.eqz if @@ -23073,14 +23074,14 @@ i32.const 3 i32.const 2 i32.const 7 - i32.const 5984 + i32.const 5920 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $47 - i32.const 6016 + i32.const 5952 call $~lib/array/Array#join local.tee $43 - i32.const 5952 + i32.const 5888 call $~lib/string/String.__eq i32.eqz if @@ -23094,14 +23095,14 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 6048 + i32.const 5984 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $48 - i32.const 6080 + i32.const 6016 call $~lib/array/Array#join local.tee $61 - i32.const 6112 + i32.const 6048 call $~lib/string/String.__eq i32.eqz if @@ -23115,14 +23116,14 @@ i32.const 6 i32.const 3 i32.const 10 - i32.const 6176 + i32.const 6112 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $50 - i32.const 6240 + i32.const 6176 call $~lib/array/Array#join local.tee $49 - i32.const 7488 + i32.const 7424 call $~lib/string/String.__eq i32.eqz if @@ -23136,14 +23137,14 @@ i32.const 3 i32.const 2 i32.const 15 - i32.const 7616 + i32.const 7552 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $41 - i32.const 5120 + i32.const 5056 call $~lib/array/Array<~lib/string/String | null>#join local.tee $51 - i32.const 7584 + i32.const 7520 call $~lib/string/String.__eq i32.eqz if @@ -23185,10 +23186,10 @@ local.get $44 local.set $52 local.get $52 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join local.tee $44 - i32.const 7696 + i32.const 7632 call $~lib/string/String.__eq i32.eqz if @@ -23226,10 +23227,10 @@ local.get $57 local.set $58 local.get $58 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join local.tee $57 - i32.const 7776 + i32.const 7712 call $~lib/string/String.__eq i32.eqz if @@ -23283,35 +23284,35 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 7856 + i32.const 7792 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $58 i32.const 1 i32.const 2 i32.const 3 - i32.const 7872 + i32.const 7808 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $55 i32.const 2 i32.const 2 i32.const 3 - i32.const 7904 + i32.const 7840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $56 i32.const 4 i32.const 2 i32.const 3 - i32.const 7936 + i32.const 7872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $44 local.get $58 call $~lib/array/Array#toString local.tee $57 - i32.const 5120 + i32.const 5056 call $~lib/string/String.__eq i32.eqz if @@ -23325,7 +23326,7 @@ local.get $55 call $~lib/array/Array#toString local.tee $52 - i32.const 7584 + i32.const 7520 call $~lib/string/String.__eq i32.eqz if @@ -23339,7 +23340,7 @@ local.get $56 call $~lib/array/Array#toString local.tee $54 - i32.const 7968 + i32.const 7904 call $~lib/string/String.__eq i32.eqz if @@ -23353,7 +23354,7 @@ local.get $44 call $~lib/array/Array#toString local.tee $53 - i32.const 8000 + i32.const 7936 call $~lib/string/String.__eq i32.eqz if @@ -23367,13 +23368,13 @@ i32.const 3 i32.const 0 i32.const 20 - i32.const 8032 + i32.const 7968 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $41 call $~lib/array/Array#toString local.tee $51 - i32.const 8064 + i32.const 8000 call $~lib/string/String.__eq i32.eqz if @@ -23387,13 +23388,13 @@ i32.const 3 i32.const 1 i32.const 21 - i32.const 8096 + i32.const 8032 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $50 call $~lib/array/Array#toString local.tee $49 - i32.const 8128 + i32.const 8064 call $~lib/string/String.__eq i32.eqz if @@ -23407,13 +23408,13 @@ i32.const 3 i32.const 3 i32.const 18 - i32.const 8176 + i32.const 8112 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $48 call $~lib/array/Array#toString local.tee $61 - i32.const 8224 + i32.const 8160 call $~lib/string/String.__eq i32.eqz if @@ -23427,13 +23428,13 @@ i32.const 4 i32.const 3 i32.const 22 - i32.const 8288 + i32.const 8224 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $47 call $~lib/array/Array#toString local.tee $43 - i32.const 8336 + i32.const 8272 call $~lib/string/String.__eq i32.eqz if @@ -23447,14 +23448,14 @@ i32.const 7 i32.const 2 i32.const 15 - i32.const 8448 + i32.const 8384 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $42 local.get $42 call $~lib/array/Array<~lib/string/String | null>#toString local.tee $35 - i32.const 8496 + i32.const 8432 call $~lib/string/String.__eq i32.eqz if @@ -23468,13 +23469,13 @@ i32.const 4 i32.const 2 i32.const 15 - i32.const 8608 + i32.const 8544 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $38 call $~lib/array/Array<~lib/string/String | null>#toString local.tee $39 - i32.const 8640 + i32.const 8576 call $~lib/string/String.__eq i32.eqz if @@ -23499,7 +23500,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 8672 + i32.const 8608 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $32 @@ -23509,7 +23510,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 8704 + i32.const 8640 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $34 @@ -23520,7 +23521,7 @@ local.get $63 call $~lib/array/Array<~lib/array/Array>#toString local.tee $37 - i32.const 8736 + i32.const 8672 call $~lib/string/String.__eq i32.eqz if @@ -23545,7 +23546,7 @@ i32.const 2 i32.const 0 i32.const 6 - i32.const 8768 + i32.const 8704 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $29 @@ -23555,7 +23556,7 @@ i32.const 2 i32.const 0 i32.const 6 - i32.const 8800 + i32.const 8736 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $31 @@ -23566,7 +23567,7 @@ local.get $64 call $~lib/array/Array<~lib/array/Array>#toString local.tee $36 - i32.const 8736 + i32.const 8672 call $~lib/string/String.__eq i32.eqz if @@ -23602,7 +23603,7 @@ i32.const 1 i32.const 2 i32.const 7 - i32.const 8832 + i32.const 8768 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $27 @@ -23617,7 +23618,7 @@ local.get $65 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString local.tee $33 - i32.const 7584 + i32.const 7520 call $~lib/string/String.__eq i32.eqz if @@ -23703,7 +23704,7 @@ local.get $65 call $~lib/rt/pure/__release ) - (func $~start (; 309 ;) + (func $~start (; 310 ;) global.get $~started if return @@ -23713,10 +23714,10 @@ end call $start:std/array ) - (func $~lib/rt/pure/__collect (; 310 ;) + (func $~lib/rt/pure/__collect (; 311 ;) return ) - (func $~lib/rt/pure/decrement (; 311 ;) (param $0 i32) + (func $~lib/rt/pure/decrement (; 312 ;) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -23793,7 +23794,7 @@ i32.store offset=4 end ) - (func $~lib/rt/pure/__visit (; 312 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 313 ;) (param $0 i32) (param $1 i32) local.get $0 global.get $~lib/heap/__heap_base i32.lt_u @@ -23817,16 +23818,16 @@ i32.sub call $~lib/rt/pure/decrement ) - (func $~lib/array/Array#__visit_impl (; 313 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 314 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 314 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 315 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 315 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 316 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 316 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 317 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23865,13 +23866,13 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 317 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 318 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 318 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 319 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 319 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 320 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23910,7 +23911,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 320 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 321 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23949,7 +23950,7 @@ end end ) - (func $~lib/array/Array>#__visit_impl (; 321 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array>#__visit_impl (; 322 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -23988,7 +23989,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 322 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String | null>#__visit_impl (; 323 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24027,7 +24028,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 323 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/string/String>#__visit_impl (; 324 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24066,25 +24067,25 @@ end end ) - (func $~lib/array/Array#__visit_impl (; 324 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 325 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 325 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 326 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 326 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 327 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 327 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 328 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 328 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 329 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 329 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 330 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 330 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 331 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24123,7 +24124,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 331 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 332 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24162,7 +24163,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 332 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 333 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24201,7 +24202,7 @@ end end ) - (func $~lib/rt/__visit_members (; 333 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 334 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $block$4$break block $switch$1$default diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 8afed75816..c1040d79e0 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -86,7 +86,6 @@ (data (i32.const 2960) "\acG\9a\fd\8c`\ee?=\f5$\9f\ca8\b3?\a0j\02\1f\b3\a4\ec?\ba\918T\a9v\c4?\e6\fcjW6 \eb?\d2\e4\c4J\0b\84\ce?-\aa\a1c\d1\c2\e9?\1ce\c6\f0E\06\d4?\edAx\03\e6\86\e8?\f8\9f\1b,\9c\8e\d8?bHS\f5\dcg\e7?\cc{\b1N\a4\e0\dc?") (data (i32.const 3056) "\10\00\00\00\01\00\00\00\04\00\00\00\10\00\00\00\f0\n\00\00\f0\n\00\00\00\01\00\00 ") (data (i32.const 3088) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") - (data (i32.const 3136) "(\00\00\00\01\00\00\00\01\00\00\00(\00\00\00P\00R\00N\00G\00 \00m\00u\00s\00t\00 \00b\00e\00 \00s\00e\00e\00d\00e\00d\00.") (global $~lib/math/rempio2_y0 (mut f64) (f64.const 0)) (global $~lib/math/rempio2_y1 (mut f64) (f64.const 0)) (global $~lib/math/res128_hi (mut i64) (i64.const 0)) @@ -8655,7 +8654,7 @@ if i32.const 0 i32.const 3104 - i32.const 1406 + i32.const 1411 i32.const 4 call $~lib/builtins/abort unreachable @@ -8667,12 +8666,8 @@ global.get $~lib/math/random_seeded i32.eqz if - i32.const 3152 - i32.const 3104 - i32.const 1413 - i32.const 24 - call $~lib/builtins/abort - unreachable + i64.const -9113062828633802500 + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 local.set $0 @@ -8711,12 +8706,8 @@ global.get $~lib/math/random_seeded i32.eqz if - i32.const 3152 - i32.const 3104 - i32.const 2606 - i32.const 24 - call $~lib/builtins/abort - unreachable + i64.const -9113062828633802500 + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_32 local.tee $0 diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 1ac6a5d4d1..99649d5718 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -21,6 +21,7 @@ (type $f32_i32_f32_f32_i32_=>_i32 (func (param f32 i32 f32 f32 i32) (result i32))) (type $f64_i32_f64_f64_i32_=>_i32 (func (param f64 i32 f64 f64 i32) (result i32))) (type $f64_i64_=>_i32 (func (param f64 i64) (result i32))) + (type $none_=>_i64 (func (result i64))) (type $i64_=>_i64 (func (param i64) (result i64))) (type $i64_i32_=>_i64 (func (param i64 i32) (result i64))) (type $none_=>_f32 (func (result f32))) @@ -91,7 +92,6 @@ (data (i32.const 9728) "\00\10\00\00\01\00\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\a0\f6?\00\00\00\00\00\00\00\00\00\c8\b9\f2\82,\d6\bf\80V7($\b4\fa<\00\00\00\00\00\80\f6?\00\00\00\00\00\00\00\00\00\08X\bf\bd\d1\d5\bf \f7\e0\d8\08\a5\1c\bd\00\00\00\00\00`\f6?\00\00\00\00\00\00\00\00\00XE\17wv\d5\bfmP\b6\d5\a4b#\bd\00\00\00\00\00@\f6?\00\00\00\00\00\00\00\00\00\f8-\87\ad\1a\d5\bf\d5g\b0\9e\e4\84\e6\bc\00\00\00\00\00 \f6?\00\00\00\00\00\00\00\00\00xw\95_\be\d4\bf\e0>)\93i\1b\04\bd\00\00\00\00\00\00\f6?\00\00\00\00\00\00\00\00\00`\1c\c2\8ba\d4\bf\cc\84LH/\d8\13=\00\00\00\00\00\e0\f5?\00\00\00\00\00\00\00\00\00\a8\86\860\04\d4\bf:\0b\82\ed\f3B\dc<\00\00\00\00\00\c0\f5?\00\00\00\00\00\00\00\00\00HiUL\a6\d3\bf`\94Q\86\c6\b1 =\00\00\00\00\00\a0\f5?\00\00\00\00\00\00\00\00\00\80\98\9a\ddG\d3\bf\92\80\c5\d4MY%=\00\00\00\00\00\80\f5?\00\00\00\00\00\00\00\00\00 \e1\ba\e2\e8\d2\bf\d8+\b7\99\1e{&=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00`\f5?\00\00\00\00\00\00\00\00\00\88\de\13Z\89\d2\bf?\b0\cf\b6\14\ca\15=\00\00\00\00\00@\f5?\00\00\00\00\00\00\00\00\00x\cf\fbA)\d2\bfv\daS($Z\16\bd\00\00\00\00\00 \f5?\00\00\00\00\00\00\00\00\00\98i\c1\98\c8\d1\bf\04T\e7h\bc\af\1f\bd\00\00\00\00\00\00\f5?\00\00\00\00\00\00\00\00\00\a8\ab\ab\\g\d1\bf\f0\a8\823\c6\1f\1f=\00\00\00\00\00\e0\f4?\00\00\00\00\00\00\00\00\00H\ae\f9\8b\05\d1\bffZ\05\fd\c4\a8&\bd\00\00\00\00\00\c0\f4?\00\00\00\00\00\00\00\00\00\90s\e2$\a3\d0\bf\0e\03\f4~\eek\0c\bd\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\a0\f4?\00\00\00\00\00\00\00\00\00\d0\b4\94%@\d0\bf\7f-\f4\9e\b86\f0\bc\00\00\00\00\00\80\f4?\00\00\00\00\00\00\00\00\00@^m\18\b9\cf\bf\87<\99\ab*W\0d=\00\00\00\00\00`\f4?\00\00\00\00\00\00\00\00\00`\dc\cb\ad\f0\ce\bf$\af\86\9c\b7&+=\00\00\00\00\00@\f4?\00\00\00\00\00\00\00\00\00\f0*n\07\'\ce\bf\10\ff?TO/\17\bd\00\00\00\00\00 \f4?\00\00\00\00\00\00\00\00\00\c0Ok!\\\cd\bf\1bh\ca\bb\91\ba!=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\00\f4?\00\00\00\00\00\00\00\00\00\a0\9a\c7\f7\8f\cc\bf4\84\9fhOy\'=\00\00\00\00\00\e0\f3?\00\00\00\00\00\00\00\00\00\90-t\86\c2\cb\bf\8f\b7\8b1\b0N\19=\00\00\00\00\00\c0\f3?\00\00\00\00\00\00\00\00\00\c0\80N\c9\f3\ca\bff\90\cd?cN\ba<\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\a0\f3?\00\00\00\00\00\00\00\00\00\b0\e2\1f\bc#\ca\bf\ea\c1F\dcd\8c%\bd\00\00\00\00\00\80\f3?\00\00\00\00\00\00\00\00\00P\f4\9cZR\c9\bf\e3\d4\c1\04\d9\d1*\bd\00\00\00\00\00`\f3?\00\00\00\00\00\00\00\00\00\d0 e\a0\7f\c8\bf\t\fa\db\7f\bf\bd+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00@\f3?\00\00\00\00\00\00\00\00\00\e0\10\02\89\ab\c7\bfXJSr\90\db+=\00\00\00\00\00 \f3?\00\00\00\00\00\00\00\00\00\d0\19\e7\0f\d6\c6\bff\e2\b2\a3j\e4\10\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\00\f3?\00\00\00\00\00\00\00\00\00\90\a7p0\ff\c5\bf9P\10\9fC\9e\1e\bd\00\00\00\00\00\e0\f2?\00\00\00\00\00\00\00\00\00\b0\a1\e3\e5&\c5\bf\8f[\07\90\8b\de \bd\00\00\00\00\00\c0\f2?\00\00\00\00\00\00\00\00\00\80\cbl+M\c4\bf\11\0e\bd\00\00\00\00\00\e0\ed?\00\00\00\00\00\00\00\00\00`F\d1;\97\b1?\9b\9e\0dV]2%\bd\00\00\00\00\00\a0\ed?\00\00\00\00\00\00\00\00\00\e0\d1\a7\f5\bd\b3?\d7N\db\a5^\c8,=\00\00\00\00\00`\ed?\00\00\00\00\00\00\00\00\00\a0\97MZ\e9\b5?\1e\1d]<\06i,\bd\00\00\00\00\00@\ed?\00\00\00\00\00\00\00\00\00\c0\ea\n\d3\00\b7?2\ed\9d\a9\8d\1e\ec<\00\00\00\00\00\00\ed?\00\00\00\00\00\00\00\00\00@Y]^3\b9?\daG\bd:\\\11#=\00\00\00\00\00\c0\ec?\00\00\00\00\00\00\00\00\00`\ad\8d\c8j\bb?\e5h\f7+\80\90\13\bd\00\00\00\00\00\a0\ec?\00\00\00\00\00\00\00\00\00@\bc\01X\88\bc?\d3\acZ\c6\d1F&=\00\00\00\00\00`\ec?\00\00\00\00\00\00\00\00\00 \n\839\c7\be?\e0E\e6\afh\c0-\bd\00\00\00\00\00@\ec?\00\00\00\00\00\00\00\00\00\e0\db9\91\e8\bf?\fd\n\a1O\d64%\bd\00\00\00\00\00\00\ec?\00\00\00\00\00\00\00\00\00\e0\'\82\8e\17\c1?\f2\07-\cex\ef!=\00\00\00\00\00\e0\eb?\00\00\00\00\00\00\00\00\00\f0#~+\aa\c1?4\998D\8e\a7,=\00\00\00\00\00\a0\eb?\00\00\00\00\00\00\00\00\00\80\86\0ca\d1\c2?\a1\b4\81\cbl\9d\03=\00\00\00\00\00\80\eb?\00\00\00\00\00\00\00\00\00\90\15\b0\fce\c3?\89rK#\a8/\c6<\00\00\00\00\00@\eb?\00\00\00\00\00\00\00\00\00\b03\83=\91\c4?x\b6\fdTy\83%=\00\00\00\00\00 \eb?\00\00\00\00\00\00\00\00\00\b0\a1\e4\e5\'\c5?\c7}i\e5\e83&=\00\00\00\00\00\e0\ea?\00\00\00\00\00\00\00\00\00\10\8c\beNW\c6?x.<,\8b\cf\19=\00\00\00\00\00\c0\ea?\00\00\00\00\00\00\00\00\00pu\8b\12\f0\c6?\e1!\9c\e5\8d\11%\bd\00\00\00\00\00\a0\ea?\00\00\00\00\00\00\00\00\00PD\85\8d\89\c7?\05C\91p\10f\1c\bd\00\00\00\00\00`\ea?\00\00\00\00\00\00\00\00\00\009\eb\af\be\c8?\d1,\e9\aaT=\07\bd\00\00\00\00\00@\ea?\00\00\00\00\00\00\00\00\00\00\f7\dcZZ\c9?o\ff\a0X(\f2\07=\00\00\00\00\00\00\ea?\00\00\00\00\00\00\00\00\00\e0\8a<\ed\93\ca?i!VPCr(\bd\00\00\00\00\00\e0\e9?\00\00\00\00\00\00\00\00\00\d0[W\d81\cb?\aa\e1\acN\8d5\0c\bd\00\00\00\00\00\c0\e9?\00\00\00\00\00\00\00\00\00\e0;8\87\d0\cb?\b6\12TY\c4K-\bd\00\00\00\00\00\a0\e9?\00\00\00\00\00\00\00\00\00\10\f0\c6\fbo\cc?\d2+\96\c5r\ec\f1\bc\00\00\00\00\00`\e9?\00\00\00\00\00\00\00\00\00\90\d4\b0=\b1\cd?5\b0\15\f7*\ff*\bd\00\00\00\00\00@\e9?\00\00\00\00\00\00\00\00\00\10\e7\ff\0eS\ce?0\f4A`\'\12\c2<\00\00\00\00\00 \e9?\00\00\00\00\00\00\00\00\00\00\dd\e4\ad\f5\ce?\11\8e\bbe\15!\ca\bc\00\00\00\00\00\00\e9?\00\00\00\00\00\00\00\00\00\b0\b3l\1c\99\cf?0\df\0c\ca\ec\cb\1b=\00\00\00\00\00\c0\e8?\00\00\00\00\00\00\00\00\00XM`8q\d0?\91N\ed\16\db\9c\f8<\00\00\00\00\00\a0\e8?\00\00\00\00\00\00\00\00\00`ag-\c4\d0?\e9\ea<\16\8b\18\'=\00\00\00\00\00\80\e8?\00\00\00\00\00\00\00\00\00\e8\'\82\8e\17\d1?\1c\f0\a5c\0e!,\bd\00\00\00\00\00`\e8?\00\00\00\00\00\00\00\00\00\f8\ac\cb\\k\d1?\81\16\a5\f7\cd\9a+=\00\00\00\00\00@\e8?\00\00\00\00\00\00\00\00\00hZc\99\bf\d1?\b7\bdGQ\ed\a6,=\00\00\00\00\00 \e8?\00\00\00\00\00\00\00\00\00\b8\0emE\14\d2?\ea\baF\ba\de\87\n=\00\00\00\00\00\e0\e7?\00\00\00\00\00\00\00\00\00\90\dc|\f0\be\d2?\f4\04PJ\fa\9c*=\00\00\00\00\00\c0\e7?\00\00\00\00\00\00\00\00\00`\d3\e1\f1\14\d3?\b8 ) - (func $std/math/test_roundf (; 141 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_roundf (; 142 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -11477,7 +11474,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_sign (; 142 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sign (; 143 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) block $~lib/math/NativeMath.sign|inlined.0 (result f64) local.get $0 @@ -11520,7 +11517,7 @@ i32.const 0 end ) - (func $std/math/test_signf (; 143 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_signf (; 144 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) block $~lib/math/NativeMathf.sign|inlined.0 (result f32) local.get $0 @@ -11547,7 +11544,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.rem (; 144 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.rem (; 145 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -11865,7 +11862,7 @@ local.get $0 end ) - (func $std/math/test_rem (; 145 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_rem (; 146 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.rem @@ -11874,7 +11871,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMathf.rem (; 146 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.rem (; 147 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12185,7 +12182,7 @@ local.get $0 end ) - (func $std/math/test_remf (; 147 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_remf (; 148 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.rem @@ -12194,7 +12191,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.sin (; 148 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (; 149 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -12723,7 +12720,7 @@ local.get $0 end ) - (func $std/math/test_sin (; 149 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sin (; 150 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.sin local.get $1 @@ -12747,7 +12744,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sin (; 150 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 151 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -13357,7 +13354,7 @@ local.get $27 end ) - (func $std/math/test_sinf (; 151 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sinf (; 152 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.sin local.get $1 @@ -13365,7 +13362,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.sinh (; 152 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 153 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -13463,7 +13460,7 @@ local.set $4 local.get $4 ) - (func $std/math/test_sinh (; 153 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sinh (; 154 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.sinh local.get $1 @@ -13487,7 +13484,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sinh (; 154 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 155 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -13576,7 +13573,7 @@ local.set $3 local.get $3 ) - (func $std/math/test_sinhf (; 155 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sinhf (; 156 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.sinh local.get $1 @@ -13584,7 +13581,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_sqrt (; 156 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_sqrt (; 157 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -13611,7 +13608,7 @@ i32.const 0 end ) - (func $std/math/test_sqrtf (; 157 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_sqrtf (; 158 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -13622,7 +13619,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/tan_kern (; 158 ;) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) + (func $~lib/math/tan_kern (; 159 ;) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 f64) (local $4 f64) (local $5 f64) @@ -13835,7 +13832,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.tan (; 159 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tan (; 160 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -14147,7 +14144,7 @@ i32.sub call $~lib/math/tan_kern ) - (func $std/math/test_tan (; 160 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_tan (; 161 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.tan local.get $1 @@ -14171,7 +14168,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tan (; 161 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 162 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -14822,7 +14819,7 @@ end f32.demote_f64 ) - (func $std/math/test_tanf (; 162 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_tanf (; 163 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.tan local.get $1 @@ -14830,7 +14827,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.tanh (; 163 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 164 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -14922,7 +14919,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_tanh (; 164 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_tanh (; 165 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.tanh local.get $1 @@ -14946,7 +14943,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tanh (; 165 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 166 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -15032,7 +15029,7 @@ local.get $0 f32.copysign ) - (func $std/math/test_tanhf (; 166 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_tanhf (; 167 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.tanh local.get $1 @@ -15040,7 +15037,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_trunc (; 167 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_trunc (; 168 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -15067,7 +15064,7 @@ i32.const 0 end ) - (func $std/math/test_truncf (; 168 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_truncf (; 169 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -15078,7 +15075,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.sincos (; 169 ;) (param $0 f64) + (func $~lib/math/NativeMath.sincos (; 170 ;) (param $0 f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -15697,7 +15694,7 @@ local.get $23 global.set $~lib/math/NativeMath.sincos_cos ) - (func $std/math/test_sincos (; 170 ;) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i32) (result i32) + (func $std/math/test_sincos (; 171 ;) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (param $5 i32) (result i32) (local $6 f64) (local $7 f64) (local $8 f64) @@ -15735,7 +15732,7 @@ i32.const 0 end ) - (func $~lib/math/dtoi32 (; 171 ;) (param $0 f64) (result i32) + (func $~lib/math/dtoi32 (; 172 ;) (param $0 f64) (result i32) (local $1 i32) (local $2 i64) (local $3 i64) @@ -15806,7 +15803,7 @@ local.get $1 return ) - (func $~lib/math/NativeMath.imul (; 172 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 173 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) local.get $0 local.get $1 @@ -15828,7 +15825,7 @@ i32.mul f64.convert_i32_s ) - (func $~lib/math/NativeMath.clz32 (; 173 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.clz32 (; 174 ;) (param $0 f64) (result f64) local.get $0 local.get $0 f64.sub @@ -15844,7 +15841,7 @@ i32.clz f64.convert_i32_s ) - (func $~lib/math/ipow64 (; 174 ;) (param $0 i64) (param $1 i32) (result i64) + (func $~lib/math/ipow64 (; 175 ;) (param $0 i64) (param $1 i32) (result i64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -16064,7 +16061,7 @@ end local.get $2 ) - (func $~lib/math/ipow32f (; 175 ;) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/ipow32f (; 176 ;) (param $0 f32) (param $1 i32) (result f32) (local $2 i32) (local $3 f32) (local $4 i32) @@ -16114,7 +16111,7 @@ local.get $3 end ) - (func $~lib/math/ipow64f (; 176 ;) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/ipow64f (; 177 ;) (param $0 f64) (param $1 i32) (result f64) (local $2 i32) (local $3 f64) (local $4 i32) @@ -16164,7 +16161,7 @@ local.get $3 end ) - (func $start:std/math (; 177 ;) + (func $start:std/math (; 178 ;) (local $0 f64) (local $1 i32) (local $2 i32) @@ -56040,7 +56037,7 @@ unreachable end ) - (func $~start (; 178 ;) + (func $~start (; 179 ;) call $start:std/math ) ) diff --git a/tests/compiler/std/seedrandom-const-value.json b/tests/compiler/std/seedrandom-const-value.json new file mode 100644 index 0000000000..3a508958b2 --- /dev/null +++ b/tests/compiler/std/seedrandom-const-value.json @@ -0,0 +1,6 @@ +{ + "asc_flags": [ + "--runtime none", + "--seedRandom 9223372036854775807" + ] +} \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-const-value.optimized.wat b/tests/compiler/std/seedrandom-const-value.optimized.wat new file mode 100644 index 0000000000..007c468255 --- /dev/null +++ b/tests/compiler/std/seedrandom-const-value.optimized.wat @@ -0,0 +1,146 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/murmurHash3 (; 1 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + ) + (func $~lib/math/splitMix32 (; 2 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.tee $0 + local.get $0 + local.get $0 + i32.const 61 + i32.or + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + i32.add + i32.xor + local.tee $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 3 ;) + i32.const 1 + global.set $~lib/math/random_seeded + i64.const 9223372036854775807 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + i32.const -1 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + i32.const 0 + global.get $~lib/math/random_state0_32 + i32.const 0 + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + i32.const 0 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + select + select + select + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 4 ;) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.tee $1 + global.set $~lib/math/random_state0_64 + local.get $1 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.tee $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + i64.xor + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + ) + (func $~start (; 5 ;) + call $~lib/math/NativeMath.random + ) +) diff --git a/tests/compiler/std/seedrandom-const-value.ts b/tests/compiler/std/seedrandom-const-value.ts new file mode 100644 index 0000000000..f6ce7920db --- /dev/null +++ b/tests/compiler/std/seedrandom-const-value.ts @@ -0,0 +1 @@ +Math.random(); diff --git a/tests/compiler/std/seedrandom-const-value.untouched.wat b/tests/compiler/std/seedrandom-const-value.untouched.wat new file mode 100644 index 0000000000..aec99defd2 --- /dev/null +++ b/tests/compiler/std/seedrandom-const-value.untouched.wat @@ -0,0 +1,199 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_none (func (param i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_i64 (func (result i64))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_f64 (func (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (table $0 1 funcref) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/ASC_SEEDRANDOM_HIGH i32 (i32.const 0)) + (global $~lib/ASC_SEEDRANDOM_LOW i32 (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/seedRandomSelect (; 1 ;) (result i64) + i64.const 9223372036854775807 + ) + (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 4 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + if (result i32) + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state0_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 5 ;) (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/seedRandomSelect + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $start:std/seedrandom-const-value (; 6 ;) + call $~lib/math/NativeMath.random + drop + ) + (func $~start (; 7 ;) + call $start:std/seedrandom-const-value + ) +) diff --git a/tests/compiler/std/seedrandom-const.json b/tests/compiler/std/seedrandom-const.json new file mode 100644 index 0000000000..5ca696a037 --- /dev/null +++ b/tests/compiler/std/seedrandom-const.json @@ -0,0 +1,6 @@ +{ + "asc_flags": [ + "--runtime none", + "--seedRandom const" + ] +} \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-const.optimized.wat b/tests/compiler/std/seedrandom-const.optimized.wat new file mode 100644 index 0000000000..3280052226 --- /dev/null +++ b/tests/compiler/std/seedrandom-const.optimized.wat @@ -0,0 +1,146 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/murmurHash3 (; 1 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + ) + (func $~lib/math/splitMix32 (; 2 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.tee $0 + local.get $0 + local.get $0 + i32.const 61 + i32.or + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + i32.add + i32.xor + local.tee $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 3 ;) + i32.const 1 + global.set $~lib/math/random_seeded + i64.const 7353165067917700646 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + i32.const -1475629530 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + i32.const 0 + global.get $~lib/math/random_state0_32 + i32.const 0 + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + i32.const 0 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + select + select + select + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 4 ;) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.tee $1 + global.set $~lib/math/random_state0_64 + local.get $1 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.tee $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + i64.xor + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + ) + (func $~start (; 5 ;) + call $~lib/math/NativeMath.random + ) +) diff --git a/tests/compiler/std/seedrandom-const.ts b/tests/compiler/std/seedrandom-const.ts new file mode 100644 index 0000000000..f6ce7920db --- /dev/null +++ b/tests/compiler/std/seedrandom-const.ts @@ -0,0 +1 @@ +Math.random(); diff --git a/tests/compiler/std/seedrandom-const.untouched.wat b/tests/compiler/std/seedrandom-const.untouched.wat new file mode 100644 index 0000000000..b2fb67504c --- /dev/null +++ b/tests/compiler/std/seedrandom-const.untouched.wat @@ -0,0 +1,199 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_none (func (param i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_i64 (func (result i64))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_f64 (func (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (table $0 1 funcref) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/ASC_SEEDRANDOM_HIGH i32 (i32.const 0)) + (global $~lib/ASC_SEEDRANDOM_LOW i32 (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/seedRandomSelect (; 1 ;) (result i64) + i64.const -7492762599821236752 + ) + (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 4 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + if (result i32) + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state0_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 5 ;) (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/seedRandomSelect + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $start:std/seedrandom-const (; 6 ;) + call $~lib/math/NativeMath.random + drop + ) + (func $~start (; 7 ;) + call $start:std/seedrandom-const + ) +) diff --git a/tests/compiler/std/seedrandom-date.json b/tests/compiler/std/seedrandom-date.json new file mode 100644 index 0000000000..ab02475d67 --- /dev/null +++ b/tests/compiler/std/seedrandom-date.json @@ -0,0 +1,6 @@ +{ + "asc_flags": [ + "--runtime none", + "--seedRandom date" + ] +} \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-date.optimized.wat b/tests/compiler/std/seedrandom-date.optimized.wat new file mode 100644 index 0000000000..98e746f4c4 --- /dev/null +++ b/tests/compiler/std/seedrandom-date.optimized.wat @@ -0,0 +1,152 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_none (func (param i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_f64 (func (result f64))) + (import "Date" "now" (func $~lib/bindings/Date/now (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + ) + (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.tee $0 + local.get $0 + local.get $0 + i32.const 61 + i32.or + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + i32.add + i32.xor + local.tee $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 4 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + i32.const 0 + global.get $~lib/math/random_state0_32 + i32.const 0 + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + i32.const 0 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + select + select + select + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 5 ;) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/bindings/Date/now + i64.trunc_f64_s + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.tee $1 + global.set $~lib/math/random_state0_64 + local.get $1 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.tee $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + i64.xor + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + ) + (func $~start (; 6 ;) + call $~lib/math/NativeMath.random + ) +) diff --git a/tests/compiler/std/seedrandom-date.ts b/tests/compiler/std/seedrandom-date.ts new file mode 100644 index 0000000000..f6ce7920db --- /dev/null +++ b/tests/compiler/std/seedrandom-date.ts @@ -0,0 +1 @@ +Math.random(); diff --git a/tests/compiler/std/seedrandom-date.untouched.wat b/tests/compiler/std/seedrandom-date.untouched.wat new file mode 100644 index 0000000000..4f0bc82509 --- /dev/null +++ b/tests/compiler/std/seedrandom-date.untouched.wat @@ -0,0 +1,200 @@ +(module + (type $none_=>_none (func)) + (type $none_=>_f64 (func (result f64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_none (func (param i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_i64 (func (result i64))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "Date" "now" (func $~lib/bindings/Date/now (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (table $0 1 funcref) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/seedRandomSelect (; 2 ;) (result i64) + call $~lib/bindings/Date/now + i64.trunc_f64_s + return + ) + (func $~lib/math/murmurHash3 (; 3 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (; 4 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 5 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + if (result i32) + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state0_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 6 ;) (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/seedRandomSelect + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $start:std/seedrandom-date (; 7 ;) + call $~lib/math/NativeMath.random + drop + ) + (func $~start (; 8 ;) + call $start:std/seedrandom-date + ) +) diff --git a/tests/compiler/std/seedrandom-default.json b/tests/compiler/std/seedrandom-default.json new file mode 100644 index 0000000000..3ba835b130 --- /dev/null +++ b/tests/compiler/std/seedrandom-default.json @@ -0,0 +1,8 @@ +{ + "asc_flags": [ + "--runtime none" + ], + "stderr": [ + "AS102: User-defined: \"Falling back to a compile-time constant random seed" + ] +} \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-default.ts b/tests/compiler/std/seedrandom-default.ts new file mode 100644 index 0000000000..f6ce7920db --- /dev/null +++ b/tests/compiler/std/seedrandom-default.ts @@ -0,0 +1 @@ +Math.random(); diff --git a/tests/compiler/std/seedrandom-func.json b/tests/compiler/std/seedrandom-func.json new file mode 100644 index 0000000000..2dae217703 --- /dev/null +++ b/tests/compiler/std/seedrandom-func.json @@ -0,0 +1,6 @@ +{ + "asc_flags": [ + "--runtime none", + "--seedRandom std/seedrandom-func/seedRandom" + ] +} \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-func.optimized.wat b/tests/compiler/std/seedrandom-func.optimized.wat new file mode 100644 index 0000000000..38595f43f1 --- /dev/null +++ b/tests/compiler/std/seedrandom-func.optimized.wat @@ -0,0 +1,146 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/murmurHash3 (; 1 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + ) + (func $~lib/math/splitMix32 (; 2 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.tee $0 + local.get $0 + local.get $0 + i32.const 61 + i32.or + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + i32.add + i32.xor + local.tee $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 3 ;) + i32.const 1 + global.set $~lib/math/random_seeded + i64.const 1 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + i32.const 1 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + i32.const 0 + global.get $~lib/math/random_state0_32 + i32.const 0 + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + i32.const 0 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + select + select + select + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 4 ;) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.tee $1 + global.set $~lib/math/random_state0_64 + local.get $1 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.tee $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + i64.xor + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + ) + (func $~start (; 5 ;) + call $~lib/math/NativeMath.random + ) +) diff --git a/tests/compiler/std/seedrandom-func.ts b/tests/compiler/std/seedrandom-func.ts new file mode 100644 index 0000000000..88b153c497 --- /dev/null +++ b/tests/compiler/std/seedrandom-func.ts @@ -0,0 +1,5 @@ +function seedRandom(): i64 { + return 1; +} + +Math.random(); diff --git a/tests/compiler/std/seedrandom-func.untouched.wat b/tests/compiler/std/seedrandom-func.untouched.wat new file mode 100644 index 0000000000..50bb7c10ce --- /dev/null +++ b/tests/compiler/std/seedrandom-func.untouched.wat @@ -0,0 +1,201 @@ +(module + (type $none_=>_none (func)) + (type $none_=>_i64 (func (result i64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_none (func (param i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_f64 (func (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (table $0 1 funcref) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $std/seedrandom-func/seedRandom (; 1 ;) (result i64) + i64.const 1 + ) + (func $~lib/math/seedRandomSelect (; 2 ;) (result i64) + call $std/seedrandom-func/seedRandom + return + ) + (func $~lib/math/murmurHash3 (; 3 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (; 4 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 5 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + if (result i32) + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state0_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 6 ;) (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/seedRandomSelect + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $start:std/seedrandom-func (; 7 ;) + call $~lib/math/NativeMath.random + drop + ) + (func $~start (; 8 ;) + call $start:std/seedrandom-func + ) +) diff --git a/tests/compiler/std/seedrandom-math.json b/tests/compiler/std/seedrandom-math.json new file mode 100644 index 0000000000..49cb5d56a4 --- /dev/null +++ b/tests/compiler/std/seedrandom-math.json @@ -0,0 +1,6 @@ +{ + "asc_flags": [ + "--runtime none", + "--seedRandom math" + ] +} \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-math.optimized.wat b/tests/compiler/std/seedrandom-math.optimized.wat new file mode 100644 index 0000000000..7fd111adcf --- /dev/null +++ b/tests/compiler/std/seedrandom-math.optimized.wat @@ -0,0 +1,158 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_none (func (param i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_f64 (func (result f64))) + (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + ) + (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.tee $0 + local.get $0 + local.get $0 + i32.const 61 + i32.or + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + i32.add + i32.xor + local.tee $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 4 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + i32.const 0 + global.get $~lib/math/random_state0_32 + i32.const 0 + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + i32.const 0 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + select + select + select + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 5 ;) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + loop $do-continue|0 + call $~lib/bindings/Math/random + i64.reinterpret_f64 + local.tee $0 + i64.eqz + br_if $do-continue|0 + end + local.get $0 + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.tee $1 + global.set $~lib/math/random_state0_64 + local.get $1 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.tee $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + i64.xor + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + ) + (func $~start (; 6 ;) + call $~lib/math/NativeMath.random + ) +) diff --git a/tests/compiler/std/seedrandom-math.ts b/tests/compiler/std/seedrandom-math.ts new file mode 100644 index 0000000000..f6ce7920db --- /dev/null +++ b/tests/compiler/std/seedrandom-math.ts @@ -0,0 +1 @@ +Math.random(); diff --git a/tests/compiler/std/seedrandom-math.untouched.wat b/tests/compiler/std/seedrandom-math.untouched.wat new file mode 100644 index 0000000000..01692511e3 --- /dev/null +++ b/tests/compiler/std/seedrandom-math.untouched.wat @@ -0,0 +1,213 @@ +(module + (type $none_=>_none (func)) + (type $none_=>_f64 (func (result f64))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i64_=>_none (func (param i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_i64 (func (result i64))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (memory $0 1) + (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (table $0 1 funcref) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (export "memory" (memory $0)) + (start $~start) + (func $~lib/math/seedRandomSelect (; 2 ;) (result i64) + (local $0 i64) + (local $1 i32) + loop $do-continue|0 + call $~lib/bindings/Math/random + i64.reinterpret_f64 + local.set $0 + local.get $0 + i64.const 0 + i64.ne + i32.eqz + local.set $1 + local.get $1 + br_if $do-continue|0 + end + local.get $0 + return + ) + (func $~lib/math/murmurHash3 (; 3 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (; 4 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 5 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + if (result i32) + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state0_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 6 ;) (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/seedRandomSelect + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $start:std/seedrandom-math (; 7 ;) + call $~lib/math/NativeMath.random + drop + ) + (func $~start (; 8 ;) + call $start:std/seedrandom-math + ) +) From 8ae7a2bad08f51e03bfae597cd77a8205fd24fcf Mon Sep 17 00:00:00 2001 From: dcode Date: Mon, 27 Jan 2020 21:09:42 +0100 Subject: [PATCH 2/4] fix non-determinism, use a const buf --- std/assembly/math.ts | 7 +- tests/compiler/std/array.json | 1 + tests/compiler/std/array.optimized.wat | 400 ++-- tests/compiler/std/array.ts | 2 - tests/compiler/std/array.untouched.wat | 444 +++-- tests/compiler/std/math.json | 3 +- tests/compiler/std/math.optimized.wat | 1710 ++++++++-------- tests/compiler/std/math.ts | 2 - tests/compiler/std/math.untouched.wat | 1754 +++++++++-------- .../compiler/std/seedrandom-const-value.json | 6 - .../std/seedrandom-const-value.optimized.wat | 146 -- tests/compiler/std/seedrandom-const-value.ts | 1 - .../std/seedrandom-const-value.untouched.wat | 199 -- tests/compiler/std/seedrandom-const.json | 2 +- .../std/seedrandom-const.optimized.wat | 4 +- .../std/seedrandom-const.untouched.wat | 2 +- 16 files changed, 2178 insertions(+), 2505 deletions(-) delete mode 100644 tests/compiler/std/seedrandom-const-value.json delete mode 100644 tests/compiler/std/seedrandom-const-value.optimized.wat delete mode 100644 tests/compiler/std/seedrandom-const-value.ts delete mode 100644 tests/compiler/std/seedrandom-const-value.untouched.wat diff --git a/std/assembly/math.ts b/std/assembly/math.ts index f5cc020813..3f186ac87f 100644 --- a/std/assembly/math.ts +++ b/std/assembly/math.ts @@ -3138,6 +3138,10 @@ export function ipow64f(x: f64, e: i32): f64 { return sign ? 1.0 / out : out; } +// @ts-ignore +@lazy +const seedRandomSelect_wasiBuf: i64[] = [0]; + function seedRandomSelect(): i64 { if (isDefined(ASC_SEEDRANDOM_FUNC)) return ASC_SEEDRANDOM_FUNC(); if (isDefined(ASC_SEEDRANDOM_MATH)) { @@ -3148,11 +3152,10 @@ function seedRandomSelect(): i64 { } if (isDefined(ASC_SEEDRANDOM_DATE)) return JSDate.now(); if (isDefined(ASC_SEEDRANDOM_WASI)) { - let buf = __alloc(8, 0); + let buf = changetype(seedRandomSelect_wasiBuf).dataStart; let val: i64; do assert(wasi.random_get(buf, 8) == wasi.errno.SUCCESS); while (!(val = load(buf))); - __free(buf); return val; } if (!isDefined(ASC_SEEDRANDOM_CONST)) { diff --git a/tests/compiler/std/array.json b/tests/compiler/std/array.json index 59c251c705..57c814b4de 100644 --- a/tests/compiler/std/array.json +++ b/tests/compiler/std/array.json @@ -2,6 +2,7 @@ "asc_flags": [ "--runtime half", "--explicitStart", + "--seedRandom math", "--use ASC_RTRACE=1" ] } \ No newline at end of file diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 0ecd0d1c5c..364befd847 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -130,25 +130,25 @@ (data (i32.const 3840) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05") (data (i32.const 3892) "\01") (data (i32.const 3904) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") - (data (i32.const 4016) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") - (data (i32.const 4064) "\ac\00\00\00\01\00\00\00\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?") - (data (i32.const 4256) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") - (data (i32.const 4304) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") - (data (i32.const 4352) "@\00\00\00\01\00\00\00\00\00\00\00@") - (data (i32.const 4374) "\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?") - (data (i32.const 4414) "\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") - (data (i32.const 4432) "@\00\00\00\01\00\00\00\00\00\00\00@") - (data (i32.const 4454) "\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf") - (data (i32.const 4486) "\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") - (data (i32.const 4512) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02") - (data (i32.const 4560) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02") - (data (i32.const 4608) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02") - (data (i32.const 4656) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") - (data (i32.const 4708) "\01") - (data (i32.const 4720) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") - (data (i32.const 4752) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01") - (data (i32.const 4784) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01") - (data (i32.const 4816) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 4016) "\ac\00\00\00\01\00\00\00\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?") + (data (i32.const 4208) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") + (data (i32.const 4256) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") + (data (i32.const 4304) "@\00\00\00\01\00\00\00\00\00\00\00@") + (data (i32.const 4326) "\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?") + (data (i32.const 4366) "\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") + (data (i32.const 4384) "@\00\00\00\01\00\00\00\00\00\00\00@") + (data (i32.const 4406) "\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf") + (data (i32.const 4438) "\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") + (data (i32.const 4464) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02") + (data (i32.const 4512) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02") + (data (i32.const 4560) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02") + (data (i32.const 4608) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 4660) "\01") + (data (i32.const 4672) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") + (data (i32.const 4704) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01") + (data (i32.const 4736) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01") + (data (i32.const 4768) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03") + (data (i32.const 4800) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") (data (i32.const 4848) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") (data (i32.const 4880) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") (data (i32.const 4912) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a") @@ -4127,104 +4127,7 @@ end local.get $2 ) - (func $~lib/math/murmurHash3 (; 101 ;) (param $0 i64) (result i64) - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - ) - (func $~lib/math/splitMix32 (; 102 ;) (param $0 i32) (result i32) - local.get $0 - i32.const 1831565813 - i32.add - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - local.get $0 - i32.const 1 - i32.or - i32.mul - local.tee $0 - local.get $0 - local.get $0 - i32.const 61 - i32.or - local.get $0 - local.get $0 - i32.const 7 - i32.shr_u - i32.xor - i32.mul - i32.add - i32.xor - local.tee $0 - local.get $0 - i32.const 14 - i32.shr_u - i32.xor - ) - (func $~lib/math/NativeMath.seedRandom (; 103 ;) (param $0 i64) - i32.const 1 - global.set $~lib/math/random_seeded - local.get $0 - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state1_64 - local.get $0 - i32.wrap_i64 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state0_32 - global.get $~lib/math/random_state0_32 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state1_32 - global.get $~lib/math/random_state1_32 - i32.const 0 - i32.ne - i32.const 0 - global.get $~lib/math/random_state0_32 - i32.const 0 - global.get $~lib/math/random_state1_64 - i64.const 0 - i64.ne - i32.const 0 - global.get $~lib/math/random_state0_64 - i64.const 0 - i64.ne - select - select - select - i32.eqz - if - i32.const 0 - i32.const 4032 - i32.const 1411 - i32.const 4 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/util/sort/insertionSort (; 104 ;) (param $0 i32) (param $1 i32) + (func $~lib/util/sort/insertionSort (; 101 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -4302,13 +4205,13 @@ end end ) - (func $~lib/rt/tlsf/__free (; 105 ;) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 102 ;) (param $0 i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 call $~lib/rt/tlsf/checkUsedBlock call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/sort/weakHeapSort (; 106 ;) (param $0 i32) (param $1 i32) + (func $~lib/util/sort/weakHeapSort (; 103 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -4565,7 +4468,7 @@ local.get $4 f32.store ) - (func $~lib/array/Array#sort (; 107 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#sort (; 104 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -4627,7 +4530,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 108 ;) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 105 ;) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4656,7 +4559,7 @@ i32.lt_s i32.sub ) - (func $std/array/isArraysEqual (; 109 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 106 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 f32) (local $4 i32) @@ -4721,7 +4624,7 @@ end i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 110 ;) (param $0 i32) (param $1 i32) + (func $~lib/util/sort/insertionSort (; 107 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -4799,7 +4702,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 111 ;) (param $0 i32) (param $1 i32) + (func $~lib/util/sort/weakHeapSort (; 108 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -5056,7 +4959,7 @@ local.get $4 f64.store ) - (func $~lib/array/Array#sort (; 112 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#sort (; 109 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -5118,7 +5021,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 113 ;) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 110 ;) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -5147,7 +5050,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#__get (; 114 ;) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 111 ;) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=12 @@ -5168,7 +5071,7 @@ i32.add f64.load ) - (func $std/array/isArraysEqual (; 115 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 112 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 f64) (local $4 i32) @@ -5233,7 +5136,7 @@ end i32.const 1 ) - (func $~lib/util/sort/insertionSort (; 116 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 113 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5312,7 +5215,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 117 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 114 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5571,7 +5474,7 @@ local.get $1 i32.store ) - (func $~lib/array/Array#sort (; 118 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 115 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5635,12 +5538,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 119 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 116 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 120 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 117 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -5649,7 +5552,7 @@ i32.lt_u i32.sub ) - (func $std/array/createReverseOrderedArray (; 121 ;) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 118 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5677,38 +5580,142 @@ end local.get $2 ) + (func $~lib/math/murmurHash3 (; 119 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + ) + (func $~lib/math/splitMix32 (; 120 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.tee $0 + local.get $0 + local.get $0 + i32.const 61 + i32.or + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + i32.add + i32.xor + local.tee $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 121 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + i32.const 0 + global.get $~lib/math/random_state0_32 + i32.const 0 + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + i32.const 0 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + select + select + select + i32.eqz + if + i32.const 0 + i32.const 4816 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) (func $~lib/math/NativeMath.random (; 122 ;) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded i32.eqz if - i64.const -7460067947611309027 + loop $do-continue|0 + call $~lib/bindings/Math/random + i64.reinterpret_f64 + local.tee $0 + i64.eqz + br_if $do-continue|0 + end + local.get $0 call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 - local.set $0 + local.set $1 global.get $~lib/math/random_state1_64 - local.tee $1 + local.tee $0 global.set $~lib/math/random_state0_64 - local.get $1 - local.get $0 local.get $0 + local.get $1 + local.get $1 i64.const 23 i64.shl i64.xor - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i64.const 17 i64.shr_u i64.xor i64.xor - local.get $1 + local.get $0 i64.const 26 i64.shr_u i64.xor global.set $~lib/math/random_state1_64 - local.get $1 + local.get $0 i64.const 12 i64.shr_u i64.const 4607182418800017408 @@ -5796,7 +5803,7 @@ if i32.const 0 i32.const 304 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -6039,7 +6046,7 @@ if i32.const 0 i32.const 304 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -6161,7 +6168,7 @@ if i32.const 0 i32.const 304 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -6402,7 +6409,7 @@ (func $~lib/string/String#charAt (; 144 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 - i32.const 4080 + i32.const 4032 call $~lib/string/String#get:length i32.ge_u if @@ -6416,7 +6423,7 @@ local.get $0 i32.const 1 i32.shl - i32.const 4080 + i32.const 4032 i32.add i32.load16_u i32.store16 @@ -6507,7 +6514,7 @@ local.tee $3 local.get $1 call $~lib/math/NativeMath.random - i32.const 4080 + i32.const 4032 call $~lib/string/String#get:length f64.convert_i32_s f64.mul @@ -14705,13 +14712,10 @@ global.get $std/array/arr i32.const 3 call $~lib/array/Array#push - call $~lib/bindings/Math/random - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom i32.const 8 i32.const 2 i32.const 9 - i32.const 4272 + i32.const 4224 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $2 @@ -14724,7 +14728,7 @@ i32.const 8 i32.const 2 i32.const 9 - i32.const 4320 + i32.const 4272 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $18 @@ -14733,7 +14737,7 @@ if i32.const 0 i32.const 304 - i32.const 892 + i32.const 890 i32.const 2 call $~lib/builtins/abort unreachable @@ -14741,7 +14745,7 @@ i32.const 8 i32.const 3 i32.const 10 - i32.const 4368 + i32.const 4320 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $3 @@ -14754,7 +14758,7 @@ i32.const 8 i32.const 3 i32.const 10 - i32.const 4448 + i32.const 4400 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $19 @@ -14763,7 +14767,7 @@ if i32.const 0 i32.const 304 - i32.const 896 + i32.const 894 i32.const 2 call $~lib/builtins/abort unreachable @@ -14771,7 +14775,7 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 4528 + i32.const 4480 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $5 @@ -14785,7 +14789,7 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 4576 + i32.const 4528 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $20 @@ -14795,7 +14799,7 @@ if i32.const 0 i32.const 304 - i32.const 900 + i32.const 898 i32.const 2 call $~lib/builtins/abort unreachable @@ -14803,7 +14807,7 @@ i32.const 5 i32.const 2 i32.const 7 - i32.const 4624 + i32.const 4576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $7 @@ -14817,7 +14821,7 @@ i32.const 5 i32.const 2 i32.const 7 - i32.const 4672 + i32.const 4624 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $15 @@ -14827,7 +14831,7 @@ if i32.const 0 i32.const 304 - i32.const 904 + i32.const 902 i32.const 2 call $~lib/builtins/abort unreachable @@ -14835,35 +14839,35 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 4720 + i32.const 4672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $16 i32.const 1 i32.const 2 i32.const 3 - i32.const 4736 + i32.const 4688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $8 i32.const 2 i32.const 2 i32.const 3 - i32.const 4768 + i32.const 4720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $9 i32.const 4 i32.const 2 i32.const 3 - i32.const 4800 + i32.const 4752 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $10 i32.const 4 i32.const 2 i32.const 3 - i32.const 4832 + i32.const 4784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $0 @@ -14900,7 +14904,7 @@ if i32.const 0 i32.const 304 - i32.const 924 + i32.const 922 i32.const 2 call $~lib/builtins/abort unreachable @@ -14921,7 +14925,7 @@ if i32.const 0 i32.const 304 - i32.const 927 + i32.const 925 i32.const 2 call $~lib/builtins/abort unreachable @@ -14936,7 +14940,7 @@ if i32.const 0 i32.const 304 - i32.const 930 + i32.const 928 i32.const 2 call $~lib/builtins/abort unreachable @@ -14951,7 +14955,7 @@ if i32.const 0 i32.const 304 - i32.const 933 + i32.const 931 i32.const 2 call $~lib/builtins/abort unreachable @@ -14966,7 +14970,7 @@ if i32.const 0 i32.const 304 - i32.const 936 + i32.const 934 i32.const 2 call $~lib/builtins/abort unreachable @@ -14981,7 +14985,7 @@ if i32.const 0 i32.const 304 - i32.const 939 + i32.const 937 i32.const 2 call $~lib/builtins/abort unreachable @@ -14996,7 +15000,7 @@ if i32.const 0 i32.const 304 - i32.const 942 + i32.const 940 i32.const 2 call $~lib/builtins/abort unreachable @@ -15102,7 +15106,7 @@ if i32.const 0 i32.const 304 - i32.const 979 + i32.const 977 i32.const 2 call $~lib/builtins/abort unreachable @@ -15139,7 +15143,7 @@ if i32.const 0 i32.const 304 - i32.const 988 + i32.const 986 i32.const 2 call $~lib/builtins/abort unreachable @@ -15160,7 +15164,7 @@ if i32.const 0 i32.const 304 - i32.const 989 + i32.const 987 i32.const 2 call $~lib/builtins/abort unreachable @@ -15181,7 +15185,7 @@ if i32.const 0 i32.const 304 - i32.const 990 + i32.const 988 i32.const 2 call $~lib/builtins/abort unreachable @@ -15202,7 +15206,7 @@ if i32.const 0 i32.const 304 - i32.const 991 + i32.const 989 i32.const 2 call $~lib/builtins/abort unreachable @@ -15227,7 +15231,7 @@ if i32.const 0 i32.const 304 - i32.const 992 + i32.const 990 i32.const 2 call $~lib/builtins/abort unreachable @@ -15248,7 +15252,7 @@ if i32.const 0 i32.const 304 - i32.const 993 + i32.const 991 i32.const 2 call $~lib/builtins/abort unreachable @@ -15285,7 +15289,7 @@ if i32.const 0 i32.const 304 - i32.const 995 + i32.const 993 i32.const 2 call $~lib/builtins/abort unreachable @@ -15319,7 +15323,7 @@ if i32.const 0 i32.const 304 - i32.const 998 + i32.const 996 i32.const 2 call $~lib/builtins/abort unreachable @@ -15400,7 +15404,7 @@ if i32.const 0 i32.const 304 - i32.const 1008 + i32.const 1006 i32.const 2 call $~lib/builtins/abort unreachable @@ -15414,7 +15418,7 @@ if i32.const 0 i32.const 304 - i32.const 1009 + i32.const 1007 i32.const 2 call $~lib/builtins/abort unreachable @@ -15428,7 +15432,7 @@ if i32.const 0 i32.const 304 - i32.const 1010 + i32.const 1008 i32.const 2 call $~lib/builtins/abort unreachable @@ -15442,7 +15446,7 @@ if i32.const 0 i32.const 304 - i32.const 1011 + i32.const 1009 i32.const 2 call $~lib/builtins/abort unreachable @@ -15466,7 +15470,7 @@ if i32.const 0 i32.const 304 - i32.const 1013 + i32.const 1011 i32.const 2 call $~lib/builtins/abort unreachable @@ -15491,7 +15495,7 @@ if i32.const 0 i32.const 304 - i32.const 1014 + i32.const 1012 i32.const 2 call $~lib/builtins/abort unreachable @@ -15516,7 +15520,7 @@ if i32.const 0 i32.const 304 - i32.const 1015 + i32.const 1013 i32.const 2 call $~lib/builtins/abort unreachable @@ -15541,7 +15545,7 @@ if i32.const 0 i32.const 304 - i32.const 1016 + i32.const 1014 i32.const 2 call $~lib/builtins/abort unreachable @@ -15561,7 +15565,7 @@ if i32.const 0 i32.const 304 - i32.const 1020 + i32.const 1018 i32.const 2 call $~lib/builtins/abort unreachable @@ -15581,7 +15585,7 @@ if i32.const 0 i32.const 304 - i32.const 1021 + i32.const 1019 i32.const 2 call $~lib/builtins/abort unreachable @@ -15628,7 +15632,7 @@ if i32.const 0 i32.const 304 - i32.const 1024 + i32.const 1022 i32.const 2 call $~lib/builtins/abort unreachable @@ -15675,7 +15679,7 @@ if i32.const 0 i32.const 304 - i32.const 1027 + i32.const 1025 i32.const 2 call $~lib/builtins/abort unreachable @@ -15722,7 +15726,7 @@ if i32.const 0 i32.const 304 - i32.const 1030 + i32.const 1028 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array.ts b/tests/compiler/std/array.ts index 7113b7c741..d8368396b3 100644 --- a/tests/compiler/std/array.ts +++ b/tests/compiler/std/array.ts @@ -826,8 +826,6 @@ function createReverseOrderedArray(size: i32): Array { return arr; } -NativeMath.seedRandom(reinterpret(JSMath.random())); - function createRandomOrderedArray(size: i32): Array { var arr = new Array(size); for (let i = 0; i < size; i++) { diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 57cdd9a91b..0b46fd333e 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -133,21 +133,21 @@ (data (i32.const 3840) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00\04\00\00\00\05\00\00\00") (data (i32.const 3888) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") (data (i32.const 3904) "^\00\00\00\01\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00") - (data (i32.const 4016) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") - (data (i32.const 4064) "\ac\00\00\00\01\00\00\00\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") - (data (i32.const 4256) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") - (data (i32.const 4304) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") - (data (i32.const 4352) "@\00\00\00\01\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") - (data (i32.const 4432) "@\00\00\00\01\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") - (data (i32.const 4512) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00") - (data (i32.const 4560) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00") - (data (i32.const 4608) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00") - (data (i32.const 4656) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") - (data (i32.const 4704) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4720) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 4752) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00") - (data (i32.const 4784) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") - (data (i32.const 4816) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 4016) "\ac\00\00\00\01\00\00\00\01\00\00\00\ac\00\00\00A\00B\00C\00D\00E\00F\00G\00H\00I\00J\00K\00L\00M\00N\00O\00P\00Q\00R\00S\00T\00U\00V\00W\00X\00Y\00Z\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\000\001\002\003\004\005\006\007\008\009\00_\00-\00,\00.\00+\00/\00\\\00[\00]\00{\00}\00(\00)\00<\00>\00*\00&\00$\00%\00^\00@\00#\00!\00?\00") + (data (i32.const 4208) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80?\00\00\c0\7f\00\00\80\ff\00\00\80?\00\00\00\00\00\00\80\bf\00\00\00\c0\00\00\80\7f") + (data (i32.const 4256) " \00\00\00\01\00\00\00\00\00\00\00 \00\00\00\00\00\80\ff\00\00\00\c0\00\00\80\bf\00\00\00\00\00\00\80?\00\00\80?\00\00\80\7f\00\00\c0\7f") + (data (i32.const 4304) "@\00\00\00\01\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0?\00\00\00\00\00\00\f8\7f\00\00\00\00\00\00\f0\ff\05\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\7f") + (data (i32.const 4384) "@\00\00\00\01\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\f0\ff\00\00\00\00\00\00\00\c0\00\00\00\00\00\00\f0\bf\00\00\00\00\00\00\00\00\00\00\00\00\00\00\f0?\05\00\00\00\00\00\f0?\00\00\00\00\00\00\f0\7f\00\00\00\00\00\00\f8\7f") + (data (i32.const 4464) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\02\00\00\00") + (data (i32.const 4512) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff\00\00\00\00\01\00\00\00\02\00\00\00") + (data (i32.const 4560) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\01\00\00\00\ff\ff\ff\ff\fe\ff\ff\ff\00\00\00\00\02\00\00\00") + (data (i32.const 4608) "\14\00\00\00\01\00\00\00\00\00\00\00\14\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\fe\ff\ff\ff\ff\ff\ff\ff") + (data (i32.const 4656) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 4672) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 4704) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01\00\00\00") + (data (i32.const 4736) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\03\00\00\00\02\00\00\00\01\00\00\00\00\00\00\00") + (data (i32.const 4768) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\03\00\00\00") + (data (i32.const 4800) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") (data (i32.const 4848) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") (data (i32.const 4880) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02\00\00\00") (data (i32.const 4912) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a\00") @@ -227,14 +227,12 @@ (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) (global $std/array/i (mut i32) (i32.const 0)) (global $~argumentsLength (mut i32) (i32.const 0)) + (global $std/array/charset i32 (i32.const 4032)) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) - (global $std/array/charset i32 (i32.const 4080)) - (global $~lib/ASC_SEEDRANDOM_HIGH i32 (i32.const 0)) - (global $~lib/ASC_SEEDRANDOM_LOW i32 (i32.const 0)) (global $~lib/builtins/i32.MIN_VALUE i32 (i32.const -2147483648)) (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) @@ -6895,123 +6893,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/math/murmurHash3 (; 137 ;) (param $0 i64) (result i64) - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - i64.const -49064778989728563 - i64.mul - local.set $0 - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - i64.const -4265267296055464877 - i64.mul - local.set $0 - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - ) - (func $~lib/math/splitMix32 (; 138 ;) (param $0 i32) (result i32) - local.get $0 - i32.const 1831565813 - i32.add - local.set $0 - local.get $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - local.get $0 - i32.const 1 - i32.or - i32.mul - local.set $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - i32.const 7 - i32.shr_u - i32.xor - local.get $0 - i32.const 61 - i32.or - i32.mul - i32.add - i32.xor - local.set $0 - local.get $0 - local.get $0 - i32.const 14 - i32.shr_u - i32.xor - ) - (func $~lib/math/NativeMath.seedRandom (; 139 ;) (param $0 i64) - i32.const 1 - global.set $~lib/math/random_seeded - local.get $0 - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state1_64 - local.get $0 - i32.wrap_i64 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state0_32 - global.get $~lib/math/random_state0_32 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state1_32 - global.get $~lib/math/random_state0_64 - i64.const 0 - i64.ne - if (result i32) - global.get $~lib/math/random_state1_64 - i64.const 0 - i64.ne - else - i32.const 0 - end - if (result i32) - global.get $~lib/math/random_state0_32 - i32.const 0 - i32.ne - else - i32.const 0 - end - if (result i32) - global.get $~lib/math/random_state1_32 - i32.const 0 - i32.ne - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 4032 - i32.const 1411 - i32.const 4 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/util/sort/insertionSort (; 140 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 137 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -7101,13 +6983,13 @@ end end ) - (func $~lib/rt/tlsf/__free (; 141 ;) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 138 ;) (param $0 i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 call $~lib/rt/tlsf/checkUsedBlock call $~lib/rt/tlsf/freeBlock ) - (func $~lib/util/sort/weakHeapSort (; 142 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 139 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7396,7 +7278,7 @@ local.get $12 f32.store ) - (func $~lib/array/Array#sort (; 143 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 140 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -7471,7 +7353,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 144 ;) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 141 ;) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -7504,7 +7386,7 @@ i32.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 145 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 142 ;) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -7523,7 +7405,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $std/array/isArraysEqual (; 146 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 143 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -7630,7 +7512,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 147 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 144 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -7720,7 +7602,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 148 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 145 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8009,7 +7891,7 @@ local.get $12 f64.store ) - (func $~lib/array/Array#sort (; 149 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 146 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -8084,7 +7966,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 150 ;) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 147 ;) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -8117,7 +7999,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 151 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 148 ;) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -8136,11 +8018,11 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array#get:length (; 152 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 149 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 153 ;) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__unchecked_get (; 150 ;) (param $0 i32) (param $1 i32) (result f64) local.get $0 i32.load offset=4 local.get $1 @@ -8149,7 +8031,7 @@ i32.add f64.load ) - (func $~lib/array/Array#__get (; 154 ;) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 151 ;) (param $0 i32) (param $1 i32) (result f64) (local $2 f64) local.get $1 local.get $0 @@ -8169,7 +8051,7 @@ local.set $2 local.get $2 ) - (func $std/array/isArraysEqual (; 155 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 152 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -8276,7 +8158,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 156 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 153 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8366,7 +8248,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 157 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 154 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8655,7 +8537,7 @@ local.get $12 i32.store ) - (func $~lib/array/Array#sort (; 158 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 155 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8728,12 +8610,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 159 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 156 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 160 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 157 ;) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -8752,7 +8634,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/util/sort/insertionSort (; 161 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 158 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8842,7 +8724,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 162 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 159 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9131,7 +9013,7 @@ local.get $12 i32.store ) - (func $~lib/array/Array#sort (; 163 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 160 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9204,7 +9086,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 164 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 161 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -9213,7 +9095,7 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 165 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 162 ;) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -9232,7 +9114,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $std/array/createReverseOrderedArray (; 166 ;) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 163 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9266,8 +9148,139 @@ end local.get $1 ) - (func $~lib/math/seedRandomSelect (; 167 ;) (result i64) - i64.const 5424538597996285423 + (func $~lib/math/seedRandomSelect (; 164 ;) (result i64) + (local $0 i64) + (local $1 i32) + loop $do-continue|0 + call $~lib/bindings/Math/random + i64.reinterpret_f64 + local.set $0 + local.get $0 + i64.const 0 + i64.ne + i32.eqz + local.set $1 + local.get $1 + br_if $do-continue|0 + end + local.get $0 + return + ) + (func $~lib/math/murmurHash3 (; 165 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (; 166 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 167 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + if (result i32) + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state0_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 4816 + i32.const 1411 + i32.const 4 + call $~lib/builtins/abort + unreachable + end ) (func $~lib/math/NativeMath.random (; 168 ;) (result f64) (local $0 i64) @@ -9429,7 +9442,7 @@ if i32.const 0 i32.const 304 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -9929,7 +9942,7 @@ if i32.const 0 i32.const 304 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -10404,7 +10417,7 @@ if i32.const 0 i32.const 304 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -10699,7 +10712,7 @@ if i32.const 0 i32.const 304 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -11769,7 +11782,7 @@ if i32.const 0 i32.const 304 - i32.const 881 + i32.const 879 i32.const 2 call $~lib/builtins/abort unreachable @@ -22603,13 +22616,10 @@ i32.const 3 call $~lib/array/Array#push drop - call $~lib/bindings/Math/random - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom i32.const 8 i32.const 2 i32.const 9 - i32.const 4272 + i32.const 4224 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $55 @@ -22623,7 +22633,7 @@ i32.const 8 i32.const 2 i32.const 9 - i32.const 4320 + i32.const 4272 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $56 @@ -22633,7 +22643,7 @@ if i32.const 0 i32.const 304 - i32.const 892 + i32.const 890 i32.const 2 call $~lib/builtins/abort unreachable @@ -22641,7 +22651,7 @@ i32.const 8 i32.const 3 i32.const 10 - i32.const 4368 + i32.const 4320 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $58 @@ -22655,7 +22665,7 @@ i32.const 8 i32.const 3 i32.const 10 - i32.const 4448 + i32.const 4400 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $57 @@ -22665,7 +22675,7 @@ if i32.const 0 i32.const 304 - i32.const 896 + i32.const 894 i32.const 2 call $~lib/builtins/abort unreachable @@ -22673,7 +22683,7 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 4528 + i32.const 4480 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $54 @@ -22687,7 +22697,7 @@ i32.const 5 i32.const 2 i32.const 3 - i32.const 4576 + i32.const 4528 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $53 @@ -22697,7 +22707,7 @@ if i32.const 0 i32.const 304 - i32.const 900 + i32.const 898 i32.const 2 call $~lib/builtins/abort unreachable @@ -22705,7 +22715,7 @@ i32.const 5 i32.const 2 i32.const 7 - i32.const 4624 + i32.const 4576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $52 @@ -22719,7 +22729,7 @@ i32.const 5 i32.const 2 i32.const 7 - i32.const 4672 + i32.const 4624 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $44 @@ -22729,7 +22739,7 @@ if i32.const 0 i32.const 304 - i32.const 904 + i32.const 902 i32.const 2 call $~lib/builtins/abort unreachable @@ -22737,35 +22747,35 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 4720 + i32.const 4672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $41 i32.const 1 i32.const 2 i32.const 3 - i32.const 4736 + i32.const 4688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $51 i32.const 2 i32.const 2 i32.const 3 - i32.const 4768 + i32.const 4720 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $50 i32.const 4 i32.const 2 i32.const 3 - i32.const 4800 + i32.const 4752 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $49 i32.const 4 i32.const 2 i32.const 3 - i32.const 4832 + i32.const 4784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $48 @@ -22802,7 +22812,7 @@ if i32.const 0 i32.const 304 - i32.const 924 + i32.const 922 i32.const 2 call $~lib/builtins/abort unreachable @@ -22823,7 +22833,7 @@ if i32.const 0 i32.const 304 - i32.const 927 + i32.const 925 i32.const 2 call $~lib/builtins/abort unreachable @@ -22838,7 +22848,7 @@ if i32.const 0 i32.const 304 - i32.const 930 + i32.const 928 i32.const 2 call $~lib/builtins/abort unreachable @@ -22853,7 +22863,7 @@ if i32.const 0 i32.const 304 - i32.const 933 + i32.const 931 i32.const 2 call $~lib/builtins/abort unreachable @@ -22868,7 +22878,7 @@ if i32.const 0 i32.const 304 - i32.const 936 + i32.const 934 i32.const 2 call $~lib/builtins/abort unreachable @@ -22883,7 +22893,7 @@ if i32.const 0 i32.const 304 - i32.const 939 + i32.const 937 i32.const 2 call $~lib/builtins/abort unreachable @@ -22898,7 +22908,7 @@ if i32.const 0 i32.const 304 - i32.const 942 + i32.const 940 i32.const 2 call $~lib/builtins/abort unreachable @@ -23010,7 +23020,7 @@ if i32.const 0 i32.const 304 - i32.const 979 + i32.const 977 i32.const 2 call $~lib/builtins/abort unreachable @@ -23045,7 +23055,7 @@ if i32.const 0 i32.const 304 - i32.const 988 + i32.const 986 i32.const 2 call $~lib/builtins/abort unreachable @@ -23066,7 +23076,7 @@ if i32.const 0 i32.const 304 - i32.const 989 + i32.const 987 i32.const 2 call $~lib/builtins/abort unreachable @@ -23087,7 +23097,7 @@ if i32.const 0 i32.const 304 - i32.const 990 + i32.const 988 i32.const 2 call $~lib/builtins/abort unreachable @@ -23108,7 +23118,7 @@ if i32.const 0 i32.const 304 - i32.const 991 + i32.const 989 i32.const 2 call $~lib/builtins/abort unreachable @@ -23129,7 +23139,7 @@ if i32.const 0 i32.const 304 - i32.const 992 + i32.const 990 i32.const 2 call $~lib/builtins/abort unreachable @@ -23150,7 +23160,7 @@ if i32.const 0 i32.const 304 - i32.const 993 + i32.const 991 i32.const 2 call $~lib/builtins/abort unreachable @@ -23195,7 +23205,7 @@ if i32.const 0 i32.const 304 - i32.const 995 + i32.const 993 i32.const 2 call $~lib/builtins/abort unreachable @@ -23236,7 +23246,7 @@ if i32.const 0 i32.const 304 - i32.const 998 + i32.const 996 i32.const 2 call $~lib/builtins/abort unreachable @@ -23318,7 +23328,7 @@ if i32.const 0 i32.const 304 - i32.const 1008 + i32.const 1006 i32.const 2 call $~lib/builtins/abort unreachable @@ -23332,7 +23342,7 @@ if i32.const 0 i32.const 304 - i32.const 1009 + i32.const 1007 i32.const 2 call $~lib/builtins/abort unreachable @@ -23346,7 +23356,7 @@ if i32.const 0 i32.const 304 - i32.const 1010 + i32.const 1008 i32.const 2 call $~lib/builtins/abort unreachable @@ -23360,7 +23370,7 @@ if i32.const 0 i32.const 304 - i32.const 1011 + i32.const 1009 i32.const 2 call $~lib/builtins/abort unreachable @@ -23380,7 +23390,7 @@ if i32.const 0 i32.const 304 - i32.const 1013 + i32.const 1011 i32.const 2 call $~lib/builtins/abort unreachable @@ -23400,7 +23410,7 @@ if i32.const 0 i32.const 304 - i32.const 1014 + i32.const 1012 i32.const 2 call $~lib/builtins/abort unreachable @@ -23420,7 +23430,7 @@ if i32.const 0 i32.const 304 - i32.const 1015 + i32.const 1013 i32.const 2 call $~lib/builtins/abort unreachable @@ -23440,7 +23450,7 @@ if i32.const 0 i32.const 304 - i32.const 1016 + i32.const 1014 i32.const 2 call $~lib/builtins/abort unreachable @@ -23461,7 +23471,7 @@ if i32.const 0 i32.const 304 - i32.const 1020 + i32.const 1018 i32.const 2 call $~lib/builtins/abort unreachable @@ -23481,7 +23491,7 @@ if i32.const 0 i32.const 304 - i32.const 1021 + i32.const 1019 i32.const 2 call $~lib/builtins/abort unreachable @@ -23527,7 +23537,7 @@ if i32.const 0 i32.const 304 - i32.const 1024 + i32.const 1022 i32.const 2 call $~lib/builtins/abort unreachable @@ -23573,7 +23583,7 @@ if i32.const 0 i32.const 304 - i32.const 1027 + i32.const 1025 i32.const 2 call $~lib/builtins/abort unreachable @@ -23624,7 +23634,7 @@ if i32.const 0 i32.const 304 - i32.const 1030 + i32.const 1028 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/math.json b/tests/compiler/std/math.json index b1da366ff4..49cb5d56a4 100644 --- a/tests/compiler/std/math.json +++ b/tests/compiler/std/math.json @@ -1,5 +1,6 @@ { "asc_flags": [ - "--runtime none" + "--runtime none", + "--seedRandom math" ] } \ No newline at end of file diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index c1040d79e0..7afb09cf32 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -22,6 +22,7 @@ (type $f32_i32_f32_=>_i32 (func (param f32 i32 f32) (result i32))) (type $f64_=>_i32 (func (param f64) (result i32))) (type $f64_i32_f64_=>_i32 (func (param f64 i32 f64) (result i32))) + (type $none_=>_i64 (func (result i64))) (type $i64_=>_i64 (func (param i64) (result i64))) (type $i64_i32_=>_i64 (func (param i64 i32) (result i64))) (type $none_=>_f32 (func (result f32))) @@ -8563,7 +8564,18 @@ local.get $3 call $std/math/check ) - (func $~lib/math/murmurHash3 (; 133 ;) (param $0 i64) (result i64) + (func $~lib/math/seedRandomSelect (; 133 ;) (result i64) + (local $0 i64) + loop $do-continue|0 + call $~lib/bindings/Math/random + i64.reinterpret_f64 + local.tee $0 + i64.eqz + br_if $do-continue|0 + end + local.get $0 + ) + (func $~lib/math/murmurHash3 (; 134 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -8584,7 +8596,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 134 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 135 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -8616,7 +8628,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 135 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 136 ;) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -8660,13 +8672,13 @@ unreachable end ) - (func $~lib/math/NativeMath.random (; 136 ;) (result f64) + (func $~lib/math/NativeMath.random (; 137 ;) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded i32.eqz if - i64.const -9113062828633802500 + call $~lib/math/seedRandomSelect call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 @@ -8700,13 +8712,13 @@ f64.const 1 f64.sub ) - (func $~lib/math/NativeMathf.random (; 137 ;) (result f32) + (func $~lib/math/NativeMathf.random (; 138 ;) (result f32) (local $0 i32) (local $1 i32) global.get $~lib/math/random_seeded i32.eqz if - i64.const -9113062828633802500 + call $~lib/math/seedRandomSelect call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_32 @@ -8742,7 +8754,7 @@ f32.const 1 f32.sub ) - (func $std/math/test_round (; 138 ;) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_round (; 139 ;) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.const 0.5 f64.add @@ -8753,7 +8765,7 @@ f64.const 0 call $std/math/check ) - (func $std/math/test_roundf (; 139 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_roundf (; 140 ;) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.const 0.5 f32.add @@ -8764,7 +8776,7 @@ f32.const 0 call $std/math/check ) - (func $std/math/test_sign (; 140 ;) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_sign (; 141 ;) (param $0 f64) (param $1 f64) (result i32) f64.const 1 local.get $0 f64.copysign @@ -8787,7 +8799,7 @@ i32.const 0 end ) - (func $std/math/test_signf (; 141 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_signf (; 142 ;) (param $0 f32) (param $1 f32) (result i32) f32.const 1 local.get $0 f32.copysign @@ -8801,7 +8813,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.rem (; 142 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.rem (; 143 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -9050,7 +9062,7 @@ end local.get $0 ) - (func $std/math/test_rem (; 143 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_rem (; 144 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.rem @@ -9058,7 +9070,7 @@ f64.const 0 call $std/math/check ) - (func $~lib/math/NativeMathf.rem (; 144 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.rem (; 145 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9299,7 +9311,7 @@ end local.get $0 ) - (func $std/math/test_remf (; 145 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_remf (; 146 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.rem @@ -9307,7 +9319,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.sin (; 146 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (; 147 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 f64) @@ -9627,7 +9639,7 @@ end local.get $0 ) - (func $std/math/test_sin (; 147 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_sin (; 148 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.sin local.get $1 @@ -9643,7 +9655,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sin (; 148 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 149 ;) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -9914,14 +9926,14 @@ end local.get $0 ) - (func $std/math/test_sinf (; 149 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_sinf (; 150 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.sin local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.sinh (; 150 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 151 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -9998,7 +10010,7 @@ f64.mul f64.mul ) - (func $std/math/test_sinh (; 151 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_sinh (; 152 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.sinh local.get $1 @@ -10014,7 +10026,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sinh (; 152 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 153 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -10086,14 +10098,14 @@ f32.mul f32.mul ) - (func $std/math/test_sinhf (; 153 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_sinhf (; 154 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.sinh local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_sqrt (; 154 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_sqrt (; 155 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 f64.sqrt local.get $1 @@ -10109,14 +10121,14 @@ i32.const 0 end ) - (func $std/math/test_sqrtf (; 155 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_sqrtf (; 156 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 f32.sqrt local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/tan_kern (; 156 ;) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) + (func $~lib/math/tan_kern (; 157 ;) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 f64) (local $4 f64) (local $5 f64) @@ -10298,7 +10310,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.tan (; 157 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tan (; 158 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -10475,7 +10487,7 @@ i32.sub call $~lib/math/tan_kern ) - (func $std/math/test_tan (; 158 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_tan (; 159 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.tan local.get $1 @@ -10491,7 +10503,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tan (; 159 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 160 ;) (param $0 f32) (result f32) (local $1 f64) (local $2 i32) (local $3 f64) @@ -10746,14 +10758,14 @@ local.get $1 f32.demote_f64 ) - (func $std/math/test_tanf (; 160 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_tanf (; 161 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.tan local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.tanh (; 161 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 162 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -10832,7 +10844,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_tanh (; 162 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_tanh (; 163 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.tanh local.get $1 @@ -10848,7 +10860,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tanh (; 163 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tanh (; 164 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) local.get $0 @@ -10922,14 +10934,14 @@ local.get $0 f32.copysign ) - (func $std/math/test_tanhf (; 164 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_tanhf (; 165 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.tanh local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_trunc (; 165 ;) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_trunc (; 166 ;) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.trunc local.get $1 @@ -10945,14 +10957,14 @@ i32.const 0 end ) - (func $std/math/test_truncf (; 166 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_truncf (; 167 ;) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.trunc local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.sincos (; 167 ;) (param $0 f64) + (func $~lib/math/NativeMath.sincos (; 168 ;) (param $0 f64) (local $1 f64) (local $2 f64) (local $3 f64) @@ -11347,7 +11359,7 @@ local.get $1 global.set $~lib/math/NativeMath.sincos_cos ) - (func $std/math/test_sincos (; 168 ;) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) + (func $std/math/test_sincos (; 169 ;) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (local $5 f64) (local $6 f64) local.get $3 @@ -11373,7 +11385,7 @@ drop end ) - (func $~lib/math/dtoi32 (; 169 ;) (param $0 f64) (result i32) + (func $~lib/math/dtoi32 (; 170 ;) (param $0 f64) (result i32) local.get $0 f64.const 4294967296 local.get $0 @@ -11385,7 +11397,7 @@ i64.trunc_f64_s i32.wrap_i64 ) - (func $~lib/math/NativeMath.imul (; 170 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 171 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) local.get $0 local.get $1 @@ -11406,7 +11418,7 @@ i32.mul f64.convert_i32_s ) - (func $~lib/math/NativeMath.clz32 (; 171 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.clz32 (; 172 ;) (param $0 f64) (result f64) local.get $0 local.get $0 f64.sub @@ -11421,7 +11433,7 @@ i32.clz f64.convert_i32_s ) - (func $~lib/math/ipow64 (; 172 ;) (param $0 i64) (param $1 i32) (result i64) + (func $~lib/math/ipow64 (; 173 ;) (param $0 i64) (param $1 i32) (result i64) (local $2 i64) i64.const 1 local.set $2 @@ -11452,7 +11464,7 @@ end local.get $2 ) - (func $~lib/math/ipow32f (; 173 ;) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/ipow32f (; 174 ;) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) local.get $1 @@ -11498,7 +11510,7 @@ end local.get $2 ) - (func $~lib/math/ipow64f (; 174 ;) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/ipow64f (; 175 ;) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (local $3 i32) local.get $1 @@ -11544,7 +11556,7 @@ end local.get $2 ) - (func $start:std/math (; 175 ;) + (func $start:std/math (; 176 ;) (local $0 f64) (local $1 f32) (local $2 i32) @@ -36881,9 +36893,6 @@ call $~lib/builtins/abort unreachable end - call $~lib/bindings/Math/random - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom loop $for-loop|0 local.get $2 f64.convert_i32_s @@ -36905,7 +36914,7 @@ if i32.const 0 i32.const 32 - i32.const 2850 + i32.const 2849 i32.const 2 call $~lib/builtins/abort unreachable @@ -36917,9 +36926,6 @@ br $for-loop|0 end end - call $~lib/bindings/Math/random - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom i32.const 0 local.set $2 loop $for-loop|1 @@ -36943,7 +36949,7 @@ if i32.const 0 i32.const 32 - i32.const 2858 + i32.const 2856 i32.const 2 call $~lib/builtins/abort unreachable @@ -36962,7 +36968,7 @@ if i32.const 0 i32.const 32 - i32.const 2872 + i32.const 2870 i32.const 0 call $~lib/builtins/abort unreachable @@ -36974,7 +36980,7 @@ if i32.const 0 i32.const 32 - i32.const 2873 + i32.const 2871 i32.const 0 call $~lib/builtins/abort unreachable @@ -36986,7 +36992,7 @@ if i32.const 0 i32.const 32 - i32.const 2874 + i32.const 2872 i32.const 0 call $~lib/builtins/abort unreachable @@ -36998,7 +37004,7 @@ if i32.const 0 i32.const 32 - i32.const 2875 + i32.const 2873 i32.const 0 call $~lib/builtins/abort unreachable @@ -37010,7 +37016,7 @@ if i32.const 0 i32.const 32 - i32.const 2876 + i32.const 2874 i32.const 0 call $~lib/builtins/abort unreachable @@ -37022,7 +37028,7 @@ if i32.const 0 i32.const 32 - i32.const 2877 + i32.const 2875 i32.const 0 call $~lib/builtins/abort unreachable @@ -37034,7 +37040,7 @@ if i32.const 0 i32.const 32 - i32.const 2878 + i32.const 2876 i32.const 0 call $~lib/builtins/abort unreachable @@ -37046,7 +37052,7 @@ if i32.const 0 i32.const 32 - i32.const 2879 + i32.const 2877 i32.const 0 call $~lib/builtins/abort unreachable @@ -37058,7 +37064,7 @@ if i32.const 0 i32.const 32 - i32.const 2880 + i32.const 2878 i32.const 0 call $~lib/builtins/abort unreachable @@ -37070,7 +37076,7 @@ if i32.const 0 i32.const 32 - i32.const 2881 + i32.const 2879 i32.const 0 call $~lib/builtins/abort unreachable @@ -37082,7 +37088,7 @@ if i32.const 0 i32.const 32 - i32.const 2884 + i32.const 2882 i32.const 0 call $~lib/builtins/abort unreachable @@ -37094,7 +37100,7 @@ if i32.const 0 i32.const 32 - i32.const 2885 + i32.const 2883 i32.const 0 call $~lib/builtins/abort unreachable @@ -37106,7 +37112,7 @@ if i32.const 0 i32.const 32 - i32.const 2886 + i32.const 2884 i32.const 0 call $~lib/builtins/abort unreachable @@ -37118,7 +37124,7 @@ if i32.const 0 i32.const 32 - i32.const 2887 + i32.const 2885 i32.const 0 call $~lib/builtins/abort unreachable @@ -37130,7 +37136,7 @@ if i32.const 0 i32.const 32 - i32.const 2888 + i32.const 2886 i32.const 0 call $~lib/builtins/abort unreachable @@ -37142,7 +37148,7 @@ if i32.const 0 i32.const 32 - i32.const 2889 + i32.const 2887 i32.const 0 call $~lib/builtins/abort unreachable @@ -37154,7 +37160,7 @@ if i32.const 0 i32.const 32 - i32.const 2890 + i32.const 2888 i32.const 0 call $~lib/builtins/abort unreachable @@ -37166,7 +37172,7 @@ if i32.const 0 i32.const 32 - i32.const 2891 + i32.const 2889 i32.const 0 call $~lib/builtins/abort unreachable @@ -37178,7 +37184,7 @@ if i32.const 0 i32.const 32 - i32.const 2892 + i32.const 2890 i32.const 0 call $~lib/builtins/abort unreachable @@ -37190,7 +37196,7 @@ if i32.const 0 i32.const 32 - i32.const 2893 + i32.const 2891 i32.const 0 call $~lib/builtins/abort unreachable @@ -37202,7 +37208,7 @@ if i32.const 0 i32.const 32 - i32.const 2894 + i32.const 2892 i32.const 0 call $~lib/builtins/abort unreachable @@ -37214,7 +37220,7 @@ if i32.const 0 i32.const 32 - i32.const 2895 + i32.const 2893 i32.const 0 call $~lib/builtins/abort unreachable @@ -37226,7 +37232,7 @@ if i32.const 0 i32.const 32 - i32.const 2896 + i32.const 2894 i32.const 0 call $~lib/builtins/abort unreachable @@ -37238,7 +37244,7 @@ if i32.const 0 i32.const 32 - i32.const 2897 + i32.const 2895 i32.const 0 call $~lib/builtins/abort unreachable @@ -37250,7 +37256,7 @@ if i32.const 0 i32.const 32 - i32.const 2898 + i32.const 2896 i32.const 0 call $~lib/builtins/abort unreachable @@ -37262,7 +37268,7 @@ if i32.const 0 i32.const 32 - i32.const 2899 + i32.const 2897 i32.const 0 call $~lib/builtins/abort unreachable @@ -37274,7 +37280,7 @@ if i32.const 0 i32.const 32 - i32.const 2900 + i32.const 2898 i32.const 0 call $~lib/builtins/abort unreachable @@ -37286,7 +37292,7 @@ if i32.const 0 i32.const 32 - i32.const 2909 + i32.const 2907 i32.const 0 call $~lib/builtins/abort unreachable @@ -37298,7 +37304,7 @@ if i32.const 0 i32.const 32 - i32.const 2910 + i32.const 2908 i32.const 0 call $~lib/builtins/abort unreachable @@ -37310,7 +37316,7 @@ if i32.const 0 i32.const 32 - i32.const 2911 + i32.const 2909 i32.const 0 call $~lib/builtins/abort unreachable @@ -37322,7 +37328,7 @@ if i32.const 0 i32.const 32 - i32.const 2912 + i32.const 2910 i32.const 0 call $~lib/builtins/abort unreachable @@ -37334,7 +37340,7 @@ if i32.const 0 i32.const 32 - i32.const 2913 + i32.const 2911 i32.const 0 call $~lib/builtins/abort unreachable @@ -37346,7 +37352,7 @@ if i32.const 0 i32.const 32 - i32.const 2914 + i32.const 2912 i32.const 0 call $~lib/builtins/abort unreachable @@ -37358,7 +37364,7 @@ if i32.const 0 i32.const 32 - i32.const 2915 + i32.const 2913 i32.const 0 call $~lib/builtins/abort unreachable @@ -37370,7 +37376,7 @@ if i32.const 0 i32.const 32 - i32.const 2916 + i32.const 2914 i32.const 0 call $~lib/builtins/abort unreachable @@ -37382,7 +37388,7 @@ if i32.const 0 i32.const 32 - i32.const 2917 + i32.const 2915 i32.const 0 call $~lib/builtins/abort unreachable @@ -37394,7 +37400,7 @@ if i32.const 0 i32.const 32 - i32.const 2918 + i32.const 2916 i32.const 0 call $~lib/builtins/abort unreachable @@ -37406,7 +37412,7 @@ if i32.const 0 i32.const 32 - i32.const 2921 + i32.const 2919 i32.const 0 call $~lib/builtins/abort unreachable @@ -37418,7 +37424,7 @@ if i32.const 0 i32.const 32 - i32.const 2922 + i32.const 2920 i32.const 0 call $~lib/builtins/abort unreachable @@ -37430,7 +37436,7 @@ if i32.const 0 i32.const 32 - i32.const 2923 + i32.const 2921 i32.const 0 call $~lib/builtins/abort unreachable @@ -37442,7 +37448,7 @@ if i32.const 0 i32.const 32 - i32.const 2924 + i32.const 2922 i32.const 0 call $~lib/builtins/abort unreachable @@ -37454,7 +37460,7 @@ if i32.const 0 i32.const 32 - i32.const 2925 + i32.const 2923 i32.const 0 call $~lib/builtins/abort unreachable @@ -37466,7 +37472,7 @@ if i32.const 0 i32.const 32 - i32.const 2926 + i32.const 2924 i32.const 0 call $~lib/builtins/abort unreachable @@ -37478,7 +37484,7 @@ if i32.const 0 i32.const 32 - i32.const 2927 + i32.const 2925 i32.const 0 call $~lib/builtins/abort unreachable @@ -37490,7 +37496,7 @@ if i32.const 0 i32.const 32 - i32.const 2928 + i32.const 2926 i32.const 0 call $~lib/builtins/abort unreachable @@ -37502,7 +37508,7 @@ if i32.const 0 i32.const 32 - i32.const 2929 + i32.const 2927 i32.const 0 call $~lib/builtins/abort unreachable @@ -37514,7 +37520,7 @@ if i32.const 0 i32.const 32 - i32.const 2930 + i32.const 2928 i32.const 0 call $~lib/builtins/abort unreachable @@ -37526,7 +37532,7 @@ if i32.const 0 i32.const 32 - i32.const 2931 + i32.const 2929 i32.const 0 call $~lib/builtins/abort unreachable @@ -37538,7 +37544,7 @@ if i32.const 0 i32.const 32 - i32.const 2932 + i32.const 2930 i32.const 0 call $~lib/builtins/abort unreachable @@ -37550,7 +37556,7 @@ if i32.const 0 i32.const 32 - i32.const 2933 + i32.const 2931 i32.const 0 call $~lib/builtins/abort unreachable @@ -37562,7 +37568,7 @@ if i32.const 0 i32.const 32 - i32.const 2934 + i32.const 2932 i32.const 0 call $~lib/builtins/abort unreachable @@ -37574,7 +37580,7 @@ if i32.const 0 i32.const 32 - i32.const 2935 + i32.const 2933 i32.const 0 call $~lib/builtins/abort unreachable @@ -37586,7 +37592,7 @@ if i32.const 0 i32.const 32 - i32.const 2936 + i32.const 2934 i32.const 0 call $~lib/builtins/abort unreachable @@ -37598,7 +37604,7 @@ if i32.const 0 i32.const 32 - i32.const 2937 + i32.const 2935 i32.const 0 call $~lib/builtins/abort unreachable @@ -37610,7 +37616,7 @@ if i32.const 0 i32.const 32 - i32.const 2948 + i32.const 2946 i32.const 0 call $~lib/builtins/abort unreachable @@ -37622,7 +37628,7 @@ if i32.const 0 i32.const 32 - i32.const 2949 + i32.const 2947 i32.const 0 call $~lib/builtins/abort unreachable @@ -37634,7 +37640,7 @@ if i32.const 0 i32.const 32 - i32.const 2950 + i32.const 2948 i32.const 0 call $~lib/builtins/abort unreachable @@ -37646,7 +37652,7 @@ if i32.const 0 i32.const 32 - i32.const 2951 + i32.const 2949 i32.const 0 call $~lib/builtins/abort unreachable @@ -37658,7 +37664,7 @@ if i32.const 0 i32.const 32 - i32.const 2952 + i32.const 2950 i32.const 0 call $~lib/builtins/abort unreachable @@ -37670,7 +37676,7 @@ if i32.const 0 i32.const 32 - i32.const 2953 + i32.const 2951 i32.const 0 call $~lib/builtins/abort unreachable @@ -37682,7 +37688,7 @@ if i32.const 0 i32.const 32 - i32.const 2954 + i32.const 2952 i32.const 0 call $~lib/builtins/abort unreachable @@ -37694,7 +37700,7 @@ if i32.const 0 i32.const 32 - i32.const 2955 + i32.const 2953 i32.const 0 call $~lib/builtins/abort unreachable @@ -37706,7 +37712,7 @@ if i32.const 0 i32.const 32 - i32.const 2956 + i32.const 2954 i32.const 0 call $~lib/builtins/abort unreachable @@ -37718,7 +37724,7 @@ if i32.const 0 i32.const 32 - i32.const 2964 + i32.const 2962 i32.const 0 call $~lib/builtins/abort unreachable @@ -37730,7 +37736,7 @@ if i32.const 0 i32.const 32 - i32.const 2965 + i32.const 2963 i32.const 0 call $~lib/builtins/abort unreachable @@ -37742,7 +37748,7 @@ if i32.const 0 i32.const 32 - i32.const 2966 + i32.const 2964 i32.const 0 call $~lib/builtins/abort unreachable @@ -37754,7 +37760,7 @@ if i32.const 0 i32.const 32 - i32.const 2967 + i32.const 2965 i32.const 0 call $~lib/builtins/abort unreachable @@ -37766,7 +37772,7 @@ if i32.const 0 i32.const 32 - i32.const 2968 + i32.const 2966 i32.const 0 call $~lib/builtins/abort unreachable @@ -37778,7 +37784,7 @@ if i32.const 0 i32.const 32 - i32.const 2969 + i32.const 2967 i32.const 0 call $~lib/builtins/abort unreachable @@ -37790,7 +37796,7 @@ if i32.const 0 i32.const 32 - i32.const 2970 + i32.const 2968 i32.const 0 call $~lib/builtins/abort unreachable @@ -37802,7 +37808,7 @@ if i32.const 0 i32.const 32 - i32.const 2971 + i32.const 2969 i32.const 0 call $~lib/builtins/abort unreachable @@ -37814,7 +37820,7 @@ if i32.const 0 i32.const 32 - i32.const 2972 + i32.const 2970 i32.const 0 call $~lib/builtins/abort unreachable @@ -37827,7 +37833,7 @@ if i32.const 0 i32.const 32 - i32.const 3009 + i32.const 3007 i32.const 0 call $~lib/builtins/abort unreachable @@ -37840,7 +37846,7 @@ if i32.const 0 i32.const 32 - i32.const 3010 + i32.const 3008 i32.const 0 call $~lib/builtins/abort unreachable @@ -37853,7 +37859,7 @@ if i32.const 0 i32.const 32 - i32.const 3011 + i32.const 3009 i32.const 0 call $~lib/builtins/abort unreachable @@ -37866,7 +37872,7 @@ if i32.const 0 i32.const 32 - i32.const 3012 + i32.const 3010 i32.const 0 call $~lib/builtins/abort unreachable @@ -37879,7 +37885,7 @@ if i32.const 0 i32.const 32 - i32.const 3013 + i32.const 3011 i32.const 0 call $~lib/builtins/abort unreachable @@ -37892,7 +37898,7 @@ if i32.const 0 i32.const 32 - i32.const 3014 + i32.const 3012 i32.const 0 call $~lib/builtins/abort unreachable @@ -37905,7 +37911,7 @@ if i32.const 0 i32.const 32 - i32.const 3015 + i32.const 3013 i32.const 0 call $~lib/builtins/abort unreachable @@ -37918,7 +37924,7 @@ if i32.const 0 i32.const 32 - i32.const 3016 + i32.const 3014 i32.const 0 call $~lib/builtins/abort unreachable @@ -37931,7 +37937,7 @@ if i32.const 0 i32.const 32 - i32.const 3017 + i32.const 3015 i32.const 0 call $~lib/builtins/abort unreachable @@ -37944,7 +37950,7 @@ if i32.const 0 i32.const 32 - i32.const 3018 + i32.const 3016 i32.const 0 call $~lib/builtins/abort unreachable @@ -37957,7 +37963,7 @@ if i32.const 0 i32.const 32 - i32.const 3021 + i32.const 3019 i32.const 0 call $~lib/builtins/abort unreachable @@ -37970,7 +37976,7 @@ if i32.const 0 i32.const 32 - i32.const 3022 + i32.const 3020 i32.const 0 call $~lib/builtins/abort unreachable @@ -37983,7 +37989,7 @@ if i32.const 0 i32.const 32 - i32.const 3023 + i32.const 3021 i32.const 0 call $~lib/builtins/abort unreachable @@ -37996,7 +38002,7 @@ if i32.const 0 i32.const 32 - i32.const 3024 + i32.const 3022 i32.const 0 call $~lib/builtins/abort unreachable @@ -38009,7 +38015,7 @@ if i32.const 0 i32.const 32 - i32.const 3025 + i32.const 3023 i32.const 0 call $~lib/builtins/abort unreachable @@ -38022,7 +38028,7 @@ if i32.const 0 i32.const 32 - i32.const 3026 + i32.const 3024 i32.const 0 call $~lib/builtins/abort unreachable @@ -38035,7 +38041,7 @@ if i32.const 0 i32.const 32 - i32.const 3027 + i32.const 3025 i32.const 0 call $~lib/builtins/abort unreachable @@ -38048,7 +38054,7 @@ if i32.const 0 i32.const 32 - i32.const 3028 + i32.const 3026 i32.const 0 call $~lib/builtins/abort unreachable @@ -38061,7 +38067,7 @@ if i32.const 0 i32.const 32 - i32.const 3029 + i32.const 3027 i32.const 0 call $~lib/builtins/abort unreachable @@ -38074,7 +38080,7 @@ if i32.const 0 i32.const 32 - i32.const 3030 + i32.const 3028 i32.const 0 call $~lib/builtins/abort unreachable @@ -38087,7 +38093,7 @@ if i32.const 0 i32.const 32 - i32.const 3031 + i32.const 3029 i32.const 0 call $~lib/builtins/abort unreachable @@ -38100,7 +38106,7 @@ if i32.const 0 i32.const 32 - i32.const 3032 + i32.const 3030 i32.const 0 call $~lib/builtins/abort unreachable @@ -38113,7 +38119,7 @@ if i32.const 0 i32.const 32 - i32.const 3033 + i32.const 3031 i32.const 0 call $~lib/builtins/abort unreachable @@ -38126,7 +38132,7 @@ if i32.const 0 i32.const 32 - i32.const 3034 + i32.const 3032 i32.const 0 call $~lib/builtins/abort unreachable @@ -38139,7 +38145,7 @@ if i32.const 0 i32.const 32 - i32.const 3035 + i32.const 3033 i32.const 0 call $~lib/builtins/abort unreachable @@ -38152,7 +38158,7 @@ if i32.const 0 i32.const 32 - i32.const 3036 + i32.const 3034 i32.const 0 call $~lib/builtins/abort unreachable @@ -38165,7 +38171,7 @@ if i32.const 0 i32.const 32 - i32.const 3037 + i32.const 3035 i32.const 0 call $~lib/builtins/abort unreachable @@ -38178,7 +38184,7 @@ if i32.const 0 i32.const 32 - i32.const 3038 + i32.const 3036 i32.const 0 call $~lib/builtins/abort unreachable @@ -38191,7 +38197,7 @@ if i32.const 0 i32.const 32 - i32.const 3039 + i32.const 3037 i32.const 0 call $~lib/builtins/abort unreachable @@ -38204,7 +38210,7 @@ if i32.const 0 i32.const 32 - i32.const 3040 + i32.const 3038 i32.const 0 call $~lib/builtins/abort unreachable @@ -38217,7 +38223,7 @@ if i32.const 0 i32.const 32 - i32.const 3041 + i32.const 3039 i32.const 0 call $~lib/builtins/abort unreachable @@ -38230,7 +38236,7 @@ if i32.const 0 i32.const 32 - i32.const 3042 + i32.const 3040 i32.const 0 call $~lib/builtins/abort unreachable @@ -38243,7 +38249,7 @@ if i32.const 0 i32.const 32 - i32.const 3043 + i32.const 3041 i32.const 0 call $~lib/builtins/abort unreachable @@ -38256,7 +38262,7 @@ if i32.const 0 i32.const 32 - i32.const 3044 + i32.const 3042 i32.const 0 call $~lib/builtins/abort unreachable @@ -38269,7 +38275,7 @@ if i32.const 0 i32.const 32 - i32.const 3045 + i32.const 3043 i32.const 0 call $~lib/builtins/abort unreachable @@ -38282,7 +38288,7 @@ if i32.const 0 i32.const 32 - i32.const 3046 + i32.const 3044 i32.const 0 call $~lib/builtins/abort unreachable @@ -38295,7 +38301,7 @@ if i32.const 0 i32.const 32 - i32.const 3047 + i32.const 3045 i32.const 0 call $~lib/builtins/abort unreachable @@ -38308,7 +38314,7 @@ if i32.const 0 i32.const 32 - i32.const 3048 + i32.const 3046 i32.const 0 call $~lib/builtins/abort unreachable @@ -38321,7 +38327,7 @@ if i32.const 0 i32.const 32 - i32.const 3049 + i32.const 3047 i32.const 0 call $~lib/builtins/abort unreachable @@ -38334,7 +38340,7 @@ if i32.const 0 i32.const 32 - i32.const 3050 + i32.const 3048 i32.const 0 call $~lib/builtins/abort unreachable @@ -38347,7 +38353,7 @@ if i32.const 0 i32.const 32 - i32.const 3051 + i32.const 3049 i32.const 0 call $~lib/builtins/abort unreachable @@ -38360,7 +38366,7 @@ if i32.const 0 i32.const 32 - i32.const 3052 + i32.const 3050 i32.const 0 call $~lib/builtins/abort unreachable @@ -38373,7 +38379,7 @@ if i32.const 0 i32.const 32 - i32.const 3053 + i32.const 3051 i32.const 0 call $~lib/builtins/abort unreachable @@ -38386,7 +38392,7 @@ if i32.const 0 i32.const 32 - i32.const 3054 + i32.const 3052 i32.const 0 call $~lib/builtins/abort unreachable @@ -38399,7 +38405,7 @@ if i32.const 0 i32.const 32 - i32.const 3055 + i32.const 3053 i32.const 0 call $~lib/builtins/abort unreachable @@ -38412,7 +38418,7 @@ if i32.const 0 i32.const 32 - i32.const 3056 + i32.const 3054 i32.const 0 call $~lib/builtins/abort unreachable @@ -38425,7 +38431,7 @@ if i32.const 0 i32.const 32 - i32.const 3057 + i32.const 3055 i32.const 0 call $~lib/builtins/abort unreachable @@ -38438,7 +38444,7 @@ if i32.const 0 i32.const 32 - i32.const 3058 + i32.const 3056 i32.const 0 call $~lib/builtins/abort unreachable @@ -38451,7 +38457,7 @@ if i32.const 0 i32.const 32 - i32.const 3059 + i32.const 3057 i32.const 0 call $~lib/builtins/abort unreachable @@ -38464,7 +38470,7 @@ if i32.const 0 i32.const 32 - i32.const 3060 + i32.const 3058 i32.const 0 call $~lib/builtins/abort unreachable @@ -38477,7 +38483,7 @@ if i32.const 0 i32.const 32 - i32.const 3061 + i32.const 3059 i32.const 0 call $~lib/builtins/abort unreachable @@ -38490,7 +38496,7 @@ if i32.const 0 i32.const 32 - i32.const 3062 + i32.const 3060 i32.const 0 call $~lib/builtins/abort unreachable @@ -38503,7 +38509,7 @@ if i32.const 0 i32.const 32 - i32.const 3063 + i32.const 3061 i32.const 0 call $~lib/builtins/abort unreachable @@ -38516,7 +38522,7 @@ if i32.const 0 i32.const 32 - i32.const 3064 + i32.const 3062 i32.const 0 call $~lib/builtins/abort unreachable @@ -38529,7 +38535,7 @@ if i32.const 0 i32.const 32 - i32.const 3065 + i32.const 3063 i32.const 0 call $~lib/builtins/abort unreachable @@ -38542,7 +38548,7 @@ if i32.const 0 i32.const 32 - i32.const 3066 + i32.const 3064 i32.const 0 call $~lib/builtins/abort unreachable @@ -38555,7 +38561,7 @@ if i32.const 0 i32.const 32 - i32.const 3067 + i32.const 3065 i32.const 0 call $~lib/builtins/abort unreachable @@ -38568,7 +38574,7 @@ if i32.const 0 i32.const 32 - i32.const 3068 + i32.const 3066 i32.const 0 call $~lib/builtins/abort unreachable @@ -38581,7 +38587,7 @@ if i32.const 0 i32.const 32 - i32.const 3069 + i32.const 3067 i32.const 0 call $~lib/builtins/abort unreachable @@ -38594,7 +38600,7 @@ if i32.const 0 i32.const 32 - i32.const 3070 + i32.const 3068 i32.const 0 call $~lib/builtins/abort unreachable @@ -38607,7 +38613,7 @@ if i32.const 0 i32.const 32 - i32.const 3071 + i32.const 3069 i32.const 0 call $~lib/builtins/abort unreachable @@ -38620,7 +38626,7 @@ if i32.const 0 i32.const 32 - i32.const 3072 + i32.const 3070 i32.const 0 call $~lib/builtins/abort unreachable @@ -38633,7 +38639,7 @@ if i32.const 0 i32.const 32 - i32.const 3073 + i32.const 3071 i32.const 0 call $~lib/builtins/abort unreachable @@ -38646,7 +38652,7 @@ if i32.const 0 i32.const 32 - i32.const 3074 + i32.const 3072 i32.const 0 call $~lib/builtins/abort unreachable @@ -38659,7 +38665,7 @@ if i32.const 0 i32.const 32 - i32.const 3075 + i32.const 3073 i32.const 0 call $~lib/builtins/abort unreachable @@ -38672,7 +38678,7 @@ if i32.const 0 i32.const 32 - i32.const 3076 + i32.const 3074 i32.const 0 call $~lib/builtins/abort unreachable @@ -38685,7 +38691,7 @@ if i32.const 0 i32.const 32 - i32.const 3077 + i32.const 3075 i32.const 0 call $~lib/builtins/abort unreachable @@ -38698,7 +38704,7 @@ if i32.const 0 i32.const 32 - i32.const 3078 + i32.const 3076 i32.const 0 call $~lib/builtins/abort unreachable @@ -38711,7 +38717,7 @@ if i32.const 0 i32.const 32 - i32.const 3079 + i32.const 3077 i32.const 0 call $~lib/builtins/abort unreachable @@ -38724,7 +38730,7 @@ if i32.const 0 i32.const 32 - i32.const 3080 + i32.const 3078 i32.const 0 call $~lib/builtins/abort unreachable @@ -38737,7 +38743,7 @@ if i32.const 0 i32.const 32 - i32.const 3081 + i32.const 3079 i32.const 0 call $~lib/builtins/abort unreachable @@ -38750,7 +38756,7 @@ if i32.const 0 i32.const 32 - i32.const 3082 + i32.const 3080 i32.const 0 call $~lib/builtins/abort unreachable @@ -38763,7 +38769,7 @@ if i32.const 0 i32.const 32 - i32.const 3083 + i32.const 3081 i32.const 0 call $~lib/builtins/abort unreachable @@ -38776,7 +38782,7 @@ if i32.const 0 i32.const 32 - i32.const 3084 + i32.const 3082 i32.const 0 call $~lib/builtins/abort unreachable @@ -38789,7 +38795,7 @@ if i32.const 0 i32.const 32 - i32.const 3085 + i32.const 3083 i32.const 0 call $~lib/builtins/abort unreachable @@ -38802,7 +38808,7 @@ if i32.const 0 i32.const 32 - i32.const 3086 + i32.const 3084 i32.const 0 call $~lib/builtins/abort unreachable @@ -38815,7 +38821,7 @@ if i32.const 0 i32.const 32 - i32.const 3087 + i32.const 3085 i32.const 0 call $~lib/builtins/abort unreachable @@ -38828,7 +38834,7 @@ if i32.const 0 i32.const 32 - i32.const 3096 + i32.const 3094 i32.const 0 call $~lib/builtins/abort unreachable @@ -38841,7 +38847,7 @@ if i32.const 0 i32.const 32 - i32.const 3097 + i32.const 3095 i32.const 0 call $~lib/builtins/abort unreachable @@ -38854,7 +38860,7 @@ if i32.const 0 i32.const 32 - i32.const 3098 + i32.const 3096 i32.const 0 call $~lib/builtins/abort unreachable @@ -38867,7 +38873,7 @@ if i32.const 0 i32.const 32 - i32.const 3099 + i32.const 3097 i32.const 0 call $~lib/builtins/abort unreachable @@ -38880,7 +38886,7 @@ if i32.const 0 i32.const 32 - i32.const 3100 + i32.const 3098 i32.const 0 call $~lib/builtins/abort unreachable @@ -38893,7 +38899,7 @@ if i32.const 0 i32.const 32 - i32.const 3101 + i32.const 3099 i32.const 0 call $~lib/builtins/abort unreachable @@ -38906,7 +38912,7 @@ if i32.const 0 i32.const 32 - i32.const 3102 + i32.const 3100 i32.const 0 call $~lib/builtins/abort unreachable @@ -38919,7 +38925,7 @@ if i32.const 0 i32.const 32 - i32.const 3103 + i32.const 3101 i32.const 0 call $~lib/builtins/abort unreachable @@ -38932,7 +38938,7 @@ if i32.const 0 i32.const 32 - i32.const 3104 + i32.const 3102 i32.const 0 call $~lib/builtins/abort unreachable @@ -38945,7 +38951,7 @@ if i32.const 0 i32.const 32 - i32.const 3105 + i32.const 3103 i32.const 0 call $~lib/builtins/abort unreachable @@ -38958,7 +38964,7 @@ if i32.const 0 i32.const 32 - i32.const 3108 + i32.const 3106 i32.const 0 call $~lib/builtins/abort unreachable @@ -38971,7 +38977,7 @@ if i32.const 0 i32.const 32 - i32.const 3109 + i32.const 3107 i32.const 0 call $~lib/builtins/abort unreachable @@ -38984,7 +38990,7 @@ if i32.const 0 i32.const 32 - i32.const 3110 + i32.const 3108 i32.const 0 call $~lib/builtins/abort unreachable @@ -38997,7 +39003,7 @@ if i32.const 0 i32.const 32 - i32.const 3111 + i32.const 3109 i32.const 0 call $~lib/builtins/abort unreachable @@ -39010,7 +39016,7 @@ if i32.const 0 i32.const 32 - i32.const 3112 + i32.const 3110 i32.const 0 call $~lib/builtins/abort unreachable @@ -39023,7 +39029,7 @@ if i32.const 0 i32.const 32 - i32.const 3113 + i32.const 3111 i32.const 0 call $~lib/builtins/abort unreachable @@ -39036,7 +39042,7 @@ if i32.const 0 i32.const 32 - i32.const 3114 + i32.const 3112 i32.const 0 call $~lib/builtins/abort unreachable @@ -39049,7 +39055,7 @@ if i32.const 0 i32.const 32 - i32.const 3115 + i32.const 3113 i32.const 0 call $~lib/builtins/abort unreachable @@ -39062,7 +39068,7 @@ if i32.const 0 i32.const 32 - i32.const 3116 + i32.const 3114 i32.const 0 call $~lib/builtins/abort unreachable @@ -39075,7 +39081,7 @@ if i32.const 0 i32.const 32 - i32.const 3117 + i32.const 3115 i32.const 0 call $~lib/builtins/abort unreachable @@ -39088,7 +39094,7 @@ if i32.const 0 i32.const 32 - i32.const 3118 + i32.const 3116 i32.const 0 call $~lib/builtins/abort unreachable @@ -39101,7 +39107,7 @@ if i32.const 0 i32.const 32 - i32.const 3119 + i32.const 3117 i32.const 0 call $~lib/builtins/abort unreachable @@ -39114,7 +39120,7 @@ if i32.const 0 i32.const 32 - i32.const 3120 + i32.const 3118 i32.const 0 call $~lib/builtins/abort unreachable @@ -39127,7 +39133,7 @@ if i32.const 0 i32.const 32 - i32.const 3121 + i32.const 3119 i32.const 0 call $~lib/builtins/abort unreachable @@ -39140,7 +39146,7 @@ if i32.const 0 i32.const 32 - i32.const 3122 + i32.const 3120 i32.const 0 call $~lib/builtins/abort unreachable @@ -39153,7 +39159,7 @@ if i32.const 0 i32.const 32 - i32.const 3123 + i32.const 3121 i32.const 0 call $~lib/builtins/abort unreachable @@ -39166,7 +39172,7 @@ if i32.const 0 i32.const 32 - i32.const 3124 + i32.const 3122 i32.const 0 call $~lib/builtins/abort unreachable @@ -39179,7 +39185,7 @@ if i32.const 0 i32.const 32 - i32.const 3125 + i32.const 3123 i32.const 0 call $~lib/builtins/abort unreachable @@ -39192,7 +39198,7 @@ if i32.const 0 i32.const 32 - i32.const 3126 + i32.const 3124 i32.const 0 call $~lib/builtins/abort unreachable @@ -39205,7 +39211,7 @@ if i32.const 0 i32.const 32 - i32.const 3127 + i32.const 3125 i32.const 0 call $~lib/builtins/abort unreachable @@ -39218,7 +39224,7 @@ if i32.const 0 i32.const 32 - i32.const 3128 + i32.const 3126 i32.const 0 call $~lib/builtins/abort unreachable @@ -39231,7 +39237,7 @@ if i32.const 0 i32.const 32 - i32.const 3129 + i32.const 3127 i32.const 0 call $~lib/builtins/abort unreachable @@ -39244,7 +39250,7 @@ if i32.const 0 i32.const 32 - i32.const 3130 + i32.const 3128 i32.const 0 call $~lib/builtins/abort unreachable @@ -39257,7 +39263,7 @@ if i32.const 0 i32.const 32 - i32.const 3131 + i32.const 3129 i32.const 0 call $~lib/builtins/abort unreachable @@ -39270,7 +39276,7 @@ if i32.const 0 i32.const 32 - i32.const 3132 + i32.const 3130 i32.const 0 call $~lib/builtins/abort unreachable @@ -39283,7 +39289,7 @@ if i32.const 0 i32.const 32 - i32.const 3133 + i32.const 3131 i32.const 0 call $~lib/builtins/abort unreachable @@ -39296,7 +39302,7 @@ if i32.const 0 i32.const 32 - i32.const 3134 + i32.const 3132 i32.const 0 call $~lib/builtins/abort unreachable @@ -39309,7 +39315,7 @@ if i32.const 0 i32.const 32 - i32.const 3135 + i32.const 3133 i32.const 0 call $~lib/builtins/abort unreachable @@ -39322,7 +39328,7 @@ if i32.const 0 i32.const 32 - i32.const 3136 + i32.const 3134 i32.const 0 call $~lib/builtins/abort unreachable @@ -39335,7 +39341,7 @@ if i32.const 0 i32.const 32 - i32.const 3137 + i32.const 3135 i32.const 0 call $~lib/builtins/abort unreachable @@ -39348,7 +39354,7 @@ if i32.const 0 i32.const 32 - i32.const 3138 + i32.const 3136 i32.const 0 call $~lib/builtins/abort unreachable @@ -39361,7 +39367,7 @@ if i32.const 0 i32.const 32 - i32.const 3139 + i32.const 3137 i32.const 0 call $~lib/builtins/abort unreachable @@ -39374,7 +39380,7 @@ if i32.const 0 i32.const 32 - i32.const 3140 + i32.const 3138 i32.const 0 call $~lib/builtins/abort unreachable @@ -39387,7 +39393,7 @@ if i32.const 0 i32.const 32 - i32.const 3141 + i32.const 3139 i32.const 0 call $~lib/builtins/abort unreachable @@ -39400,7 +39406,7 @@ if i32.const 0 i32.const 32 - i32.const 3142 + i32.const 3140 i32.const 0 call $~lib/builtins/abort unreachable @@ -39413,7 +39419,7 @@ if i32.const 0 i32.const 32 - i32.const 3143 + i32.const 3141 i32.const 0 call $~lib/builtins/abort unreachable @@ -39426,7 +39432,7 @@ if i32.const 0 i32.const 32 - i32.const 3144 + i32.const 3142 i32.const 0 call $~lib/builtins/abort unreachable @@ -39439,7 +39445,7 @@ if i32.const 0 i32.const 32 - i32.const 3145 + i32.const 3143 i32.const 0 call $~lib/builtins/abort unreachable @@ -39452,7 +39458,7 @@ if i32.const 0 i32.const 32 - i32.const 3146 + i32.const 3144 i32.const 0 call $~lib/builtins/abort unreachable @@ -39465,7 +39471,7 @@ if i32.const 0 i32.const 32 - i32.const 3147 + i32.const 3145 i32.const 0 call $~lib/builtins/abort unreachable @@ -39478,7 +39484,7 @@ if i32.const 0 i32.const 32 - i32.const 3148 + i32.const 3146 i32.const 0 call $~lib/builtins/abort unreachable @@ -39491,7 +39497,7 @@ if i32.const 0 i32.const 32 - i32.const 3149 + i32.const 3147 i32.const 0 call $~lib/builtins/abort unreachable @@ -39504,7 +39510,7 @@ if i32.const 0 i32.const 32 - i32.const 3150 + i32.const 3148 i32.const 0 call $~lib/builtins/abort unreachable @@ -39517,7 +39523,7 @@ if i32.const 0 i32.const 32 - i32.const 3151 + i32.const 3149 i32.const 0 call $~lib/builtins/abort unreachable @@ -39530,7 +39536,7 @@ if i32.const 0 i32.const 32 - i32.const 3152 + i32.const 3150 i32.const 0 call $~lib/builtins/abort unreachable @@ -39543,7 +39549,7 @@ if i32.const 0 i32.const 32 - i32.const 3153 + i32.const 3151 i32.const 0 call $~lib/builtins/abort unreachable @@ -39556,7 +39562,7 @@ if i32.const 0 i32.const 32 - i32.const 3154 + i32.const 3152 i32.const 0 call $~lib/builtins/abort unreachable @@ -39569,7 +39575,7 @@ if i32.const 0 i32.const 32 - i32.const 3155 + i32.const 3153 i32.const 0 call $~lib/builtins/abort unreachable @@ -39582,7 +39588,7 @@ if i32.const 0 i32.const 32 - i32.const 3156 + i32.const 3154 i32.const 0 call $~lib/builtins/abort unreachable @@ -39595,7 +39601,7 @@ if i32.const 0 i32.const 32 - i32.const 3157 + i32.const 3155 i32.const 0 call $~lib/builtins/abort unreachable @@ -39608,7 +39614,7 @@ if i32.const 0 i32.const 32 - i32.const 3158 + i32.const 3156 i32.const 0 call $~lib/builtins/abort unreachable @@ -39621,7 +39627,7 @@ if i32.const 0 i32.const 32 - i32.const 3159 + i32.const 3157 i32.const 0 call $~lib/builtins/abort unreachable @@ -39634,7 +39640,7 @@ if i32.const 0 i32.const 32 - i32.const 3160 + i32.const 3158 i32.const 0 call $~lib/builtins/abort unreachable @@ -39647,7 +39653,7 @@ if i32.const 0 i32.const 32 - i32.const 3161 + i32.const 3159 i32.const 0 call $~lib/builtins/abort unreachable @@ -39660,7 +39666,7 @@ if i32.const 0 i32.const 32 - i32.const 3162 + i32.const 3160 i32.const 0 call $~lib/builtins/abort unreachable @@ -39673,7 +39679,7 @@ if i32.const 0 i32.const 32 - i32.const 3163 + i32.const 3161 i32.const 0 call $~lib/builtins/abort unreachable @@ -39686,7 +39692,7 @@ if i32.const 0 i32.const 32 - i32.const 3164 + i32.const 3162 i32.const 0 call $~lib/builtins/abort unreachable @@ -39699,7 +39705,7 @@ if i32.const 0 i32.const 32 - i32.const 3165 + i32.const 3163 i32.const 0 call $~lib/builtins/abort unreachable @@ -39712,7 +39718,7 @@ if i32.const 0 i32.const 32 - i32.const 3166 + i32.const 3164 i32.const 0 call $~lib/builtins/abort unreachable @@ -39725,7 +39731,7 @@ if i32.const 0 i32.const 32 - i32.const 3167 + i32.const 3165 i32.const 0 call $~lib/builtins/abort unreachable @@ -39738,7 +39744,7 @@ if i32.const 0 i32.const 32 - i32.const 3168 + i32.const 3166 i32.const 0 call $~lib/builtins/abort unreachable @@ -39751,7 +39757,7 @@ if i32.const 0 i32.const 32 - i32.const 3169 + i32.const 3167 i32.const 0 call $~lib/builtins/abort unreachable @@ -39764,7 +39770,7 @@ if i32.const 0 i32.const 32 - i32.const 3170 + i32.const 3168 i32.const 0 call $~lib/builtins/abort unreachable @@ -39777,7 +39783,7 @@ if i32.const 0 i32.const 32 - i32.const 3171 + i32.const 3169 i32.const 0 call $~lib/builtins/abort unreachable @@ -39790,7 +39796,7 @@ if i32.const 0 i32.const 32 - i32.const 3172 + i32.const 3170 i32.const 0 call $~lib/builtins/abort unreachable @@ -39803,7 +39809,7 @@ if i32.const 0 i32.const 32 - i32.const 3173 + i32.const 3171 i32.const 0 call $~lib/builtins/abort unreachable @@ -39816,7 +39822,7 @@ if i32.const 0 i32.const 32 - i32.const 3174 + i32.const 3172 i32.const 0 call $~lib/builtins/abort unreachable @@ -39829,7 +39835,7 @@ if i32.const 0 i32.const 32 - i32.const 3186 + i32.const 3184 i32.const 0 call $~lib/builtins/abort unreachable @@ -39842,7 +39848,7 @@ if i32.const 0 i32.const 32 - i32.const 3187 + i32.const 3185 i32.const 0 call $~lib/builtins/abort unreachable @@ -39855,7 +39861,7 @@ if i32.const 0 i32.const 32 - i32.const 3188 + i32.const 3186 i32.const 0 call $~lib/builtins/abort unreachable @@ -39868,7 +39874,7 @@ if i32.const 0 i32.const 32 - i32.const 3189 + i32.const 3187 i32.const 0 call $~lib/builtins/abort unreachable @@ -39881,7 +39887,7 @@ if i32.const 0 i32.const 32 - i32.const 3190 + i32.const 3188 i32.const 0 call $~lib/builtins/abort unreachable @@ -39894,7 +39900,7 @@ if i32.const 0 i32.const 32 - i32.const 3191 + i32.const 3189 i32.const 0 call $~lib/builtins/abort unreachable @@ -39907,7 +39913,7 @@ if i32.const 0 i32.const 32 - i32.const 3192 + i32.const 3190 i32.const 0 call $~lib/builtins/abort unreachable @@ -39920,7 +39926,7 @@ if i32.const 0 i32.const 32 - i32.const 3193 + i32.const 3191 i32.const 0 call $~lib/builtins/abort unreachable @@ -39933,7 +39939,7 @@ if i32.const 0 i32.const 32 - i32.const 3194 + i32.const 3192 i32.const 0 call $~lib/builtins/abort unreachable @@ -39946,7 +39952,7 @@ if i32.const 0 i32.const 32 - i32.const 3195 + i32.const 3193 i32.const 0 call $~lib/builtins/abort unreachable @@ -39959,7 +39965,7 @@ if i32.const 0 i32.const 32 - i32.const 3198 + i32.const 3196 i32.const 0 call $~lib/builtins/abort unreachable @@ -39972,7 +39978,7 @@ if i32.const 0 i32.const 32 - i32.const 3199 + i32.const 3197 i32.const 0 call $~lib/builtins/abort unreachable @@ -39985,7 +39991,7 @@ if i32.const 0 i32.const 32 - i32.const 3200 + i32.const 3198 i32.const 0 call $~lib/builtins/abort unreachable @@ -39998,7 +40004,7 @@ if i32.const 0 i32.const 32 - i32.const 3201 + i32.const 3199 i32.const 0 call $~lib/builtins/abort unreachable @@ -40011,7 +40017,7 @@ if i32.const 0 i32.const 32 - i32.const 3202 + i32.const 3200 i32.const 0 call $~lib/builtins/abort unreachable @@ -40024,7 +40030,7 @@ if i32.const 0 i32.const 32 - i32.const 3203 + i32.const 3201 i32.const 0 call $~lib/builtins/abort unreachable @@ -40037,7 +40043,7 @@ if i32.const 0 i32.const 32 - i32.const 3204 + i32.const 3202 i32.const 0 call $~lib/builtins/abort unreachable @@ -40050,7 +40056,7 @@ if i32.const 0 i32.const 32 - i32.const 3205 + i32.const 3203 i32.const 0 call $~lib/builtins/abort unreachable @@ -40063,7 +40069,7 @@ if i32.const 0 i32.const 32 - i32.const 3206 + i32.const 3204 i32.const 0 call $~lib/builtins/abort unreachable @@ -40076,7 +40082,7 @@ if i32.const 0 i32.const 32 - i32.const 3207 + i32.const 3205 i32.const 0 call $~lib/builtins/abort unreachable @@ -40089,7 +40095,7 @@ if i32.const 0 i32.const 32 - i32.const 3208 + i32.const 3206 i32.const 0 call $~lib/builtins/abort unreachable @@ -40102,7 +40108,7 @@ if i32.const 0 i32.const 32 - i32.const 3209 + i32.const 3207 i32.const 0 call $~lib/builtins/abort unreachable @@ -40115,7 +40121,7 @@ if i32.const 0 i32.const 32 - i32.const 3210 + i32.const 3208 i32.const 0 call $~lib/builtins/abort unreachable @@ -40128,7 +40134,7 @@ if i32.const 0 i32.const 32 - i32.const 3211 + i32.const 3209 i32.const 0 call $~lib/builtins/abort unreachable @@ -40141,7 +40147,7 @@ if i32.const 0 i32.const 32 - i32.const 3212 + i32.const 3210 i32.const 0 call $~lib/builtins/abort unreachable @@ -40154,7 +40160,7 @@ if i32.const 0 i32.const 32 - i32.const 3213 + i32.const 3211 i32.const 0 call $~lib/builtins/abort unreachable @@ -40167,7 +40173,7 @@ if i32.const 0 i32.const 32 - i32.const 3214 + i32.const 3212 i32.const 0 call $~lib/builtins/abort unreachable @@ -40180,7 +40186,7 @@ if i32.const 0 i32.const 32 - i32.const 3215 + i32.const 3213 i32.const 0 call $~lib/builtins/abort unreachable @@ -40193,7 +40199,7 @@ if i32.const 0 i32.const 32 - i32.const 3216 + i32.const 3214 i32.const 0 call $~lib/builtins/abort unreachable @@ -40206,7 +40212,7 @@ if i32.const 0 i32.const 32 - i32.const 3217 + i32.const 3215 i32.const 0 call $~lib/builtins/abort unreachable @@ -40219,7 +40225,7 @@ if i32.const 0 i32.const 32 - i32.const 3218 + i32.const 3216 i32.const 0 call $~lib/builtins/abort unreachable @@ -40232,7 +40238,7 @@ if i32.const 0 i32.const 32 - i32.const 3219 + i32.const 3217 i32.const 0 call $~lib/builtins/abort unreachable @@ -40245,7 +40251,7 @@ if i32.const 0 i32.const 32 - i32.const 3220 + i32.const 3218 i32.const 0 call $~lib/builtins/abort unreachable @@ -40258,7 +40264,7 @@ if i32.const 0 i32.const 32 - i32.const 3221 + i32.const 3219 i32.const 0 call $~lib/builtins/abort unreachable @@ -40271,7 +40277,7 @@ if i32.const 0 i32.const 32 - i32.const 3222 + i32.const 3220 i32.const 0 call $~lib/builtins/abort unreachable @@ -40284,7 +40290,7 @@ if i32.const 0 i32.const 32 - i32.const 3223 + i32.const 3221 i32.const 0 call $~lib/builtins/abort unreachable @@ -40297,7 +40303,7 @@ if i32.const 0 i32.const 32 - i32.const 3224 + i32.const 3222 i32.const 0 call $~lib/builtins/abort unreachable @@ -40310,7 +40316,7 @@ if i32.const 0 i32.const 32 - i32.const 3225 + i32.const 3223 i32.const 0 call $~lib/builtins/abort unreachable @@ -40323,7 +40329,7 @@ if i32.const 0 i32.const 32 - i32.const 3226 + i32.const 3224 i32.const 0 call $~lib/builtins/abort unreachable @@ -40336,7 +40342,7 @@ if i32.const 0 i32.const 32 - i32.const 3227 + i32.const 3225 i32.const 0 call $~lib/builtins/abort unreachable @@ -40349,7 +40355,7 @@ if i32.const 0 i32.const 32 - i32.const 3228 + i32.const 3226 i32.const 0 call $~lib/builtins/abort unreachable @@ -40362,7 +40368,7 @@ if i32.const 0 i32.const 32 - i32.const 3229 + i32.const 3227 i32.const 0 call $~lib/builtins/abort unreachable @@ -40375,7 +40381,7 @@ if i32.const 0 i32.const 32 - i32.const 3230 + i32.const 3228 i32.const 0 call $~lib/builtins/abort unreachable @@ -40388,7 +40394,7 @@ if i32.const 0 i32.const 32 - i32.const 3231 + i32.const 3229 i32.const 0 call $~lib/builtins/abort unreachable @@ -40401,7 +40407,7 @@ if i32.const 0 i32.const 32 - i32.const 3232 + i32.const 3230 i32.const 0 call $~lib/builtins/abort unreachable @@ -40414,7 +40420,7 @@ if i32.const 0 i32.const 32 - i32.const 3233 + i32.const 3231 i32.const 0 call $~lib/builtins/abort unreachable @@ -40427,7 +40433,7 @@ if i32.const 0 i32.const 32 - i32.const 3234 + i32.const 3232 i32.const 0 call $~lib/builtins/abort unreachable @@ -40440,7 +40446,7 @@ if i32.const 0 i32.const 32 - i32.const 3237 + i32.const 3235 i32.const 0 call $~lib/builtins/abort unreachable @@ -40453,7 +40459,7 @@ if i32.const 0 i32.const 32 - i32.const 3238 + i32.const 3236 i32.const 0 call $~lib/builtins/abort unreachable @@ -40466,7 +40472,7 @@ if i32.const 0 i32.const 32 - i32.const 3239 + i32.const 3237 i32.const 0 call $~lib/builtins/abort unreachable @@ -40479,7 +40485,7 @@ if i32.const 0 i32.const 32 - i32.const 3240 + i32.const 3238 i32.const 0 call $~lib/builtins/abort unreachable @@ -40492,7 +40498,7 @@ if i32.const 0 i32.const 32 - i32.const 3241 + i32.const 3239 i32.const 0 call $~lib/builtins/abort unreachable @@ -40505,7 +40511,7 @@ if i32.const 0 i32.const 32 - i32.const 3244 + i32.const 3242 i32.const 0 call $~lib/builtins/abort unreachable @@ -40518,7 +40524,7 @@ if i32.const 0 i32.const 32 - i32.const 3245 + i32.const 3243 i32.const 0 call $~lib/builtins/abort unreachable @@ -40530,7 +40536,7 @@ if i32.const 0 i32.const 32 - i32.const 3248 + i32.const 3246 i32.const 0 call $~lib/builtins/abort unreachable @@ -40542,7 +40548,7 @@ if i32.const 0 i32.const 32 - i32.const 3249 + i32.const 3247 i32.const 0 call $~lib/builtins/abort unreachable @@ -40554,7 +40560,7 @@ if i32.const 0 i32.const 32 - i32.const 3251 + i32.const 3249 i32.const 0 call $~lib/builtins/abort unreachable @@ -40566,7 +40572,7 @@ if i32.const 0 i32.const 32 - i32.const 3252 + i32.const 3250 i32.const 0 call $~lib/builtins/abort unreachable @@ -40578,7 +40584,7 @@ if i32.const 0 i32.const 32 - i32.const 3255 + i32.const 3253 i32.const 0 call $~lib/builtins/abort unreachable @@ -40590,7 +40596,7 @@ if i32.const 0 i32.const 32 - i32.const 3256 + i32.const 3254 i32.const 0 call $~lib/builtins/abort unreachable @@ -40602,7 +40608,7 @@ if i32.const 0 i32.const 32 - i32.const 3257 + i32.const 3255 i32.const 0 call $~lib/builtins/abort unreachable @@ -40614,7 +40620,7 @@ if i32.const 0 i32.const 32 - i32.const 3258 + i32.const 3256 i32.const 0 call $~lib/builtins/abort unreachable @@ -40626,7 +40632,7 @@ if i32.const 0 i32.const 32 - i32.const 3260 + i32.const 3258 i32.const 0 call $~lib/builtins/abort unreachable @@ -40638,7 +40644,7 @@ if i32.const 0 i32.const 32 - i32.const 3261 + i32.const 3259 i32.const 0 call $~lib/builtins/abort unreachable @@ -40650,7 +40656,7 @@ if i32.const 0 i32.const 32 - i32.const 3263 + i32.const 3261 i32.const 0 call $~lib/builtins/abort unreachable @@ -40662,7 +40668,7 @@ if i32.const 0 i32.const 32 - i32.const 3264 + i32.const 3262 i32.const 0 call $~lib/builtins/abort unreachable @@ -40674,7 +40680,7 @@ if i32.const 0 i32.const 32 - i32.const 3265 + i32.const 3263 i32.const 0 call $~lib/builtins/abort unreachable @@ -40686,7 +40692,7 @@ if i32.const 0 i32.const 32 - i32.const 3266 + i32.const 3264 i32.const 0 call $~lib/builtins/abort unreachable @@ -40698,7 +40704,7 @@ if i32.const 0 i32.const 32 - i32.const 3267 + i32.const 3265 i32.const 0 call $~lib/builtins/abort unreachable @@ -40710,7 +40716,7 @@ if i32.const 0 i32.const 32 - i32.const 3270 + i32.const 3268 i32.const 0 call $~lib/builtins/abort unreachable @@ -40722,7 +40728,7 @@ if i32.const 0 i32.const 32 - i32.const 3271 + i32.const 3269 i32.const 0 call $~lib/builtins/abort unreachable @@ -40735,7 +40741,7 @@ if i32.const 0 i32.const 32 - i32.const 3280 + i32.const 3278 i32.const 0 call $~lib/builtins/abort unreachable @@ -40748,7 +40754,7 @@ if i32.const 0 i32.const 32 - i32.const 3281 + i32.const 3279 i32.const 0 call $~lib/builtins/abort unreachable @@ -40761,7 +40767,7 @@ if i32.const 0 i32.const 32 - i32.const 3282 + i32.const 3280 i32.const 0 call $~lib/builtins/abort unreachable @@ -40774,7 +40780,7 @@ if i32.const 0 i32.const 32 - i32.const 3283 + i32.const 3281 i32.const 0 call $~lib/builtins/abort unreachable @@ -40787,7 +40793,7 @@ if i32.const 0 i32.const 32 - i32.const 3284 + i32.const 3282 i32.const 0 call $~lib/builtins/abort unreachable @@ -40800,7 +40806,7 @@ if i32.const 0 i32.const 32 - i32.const 3285 + i32.const 3283 i32.const 0 call $~lib/builtins/abort unreachable @@ -40813,7 +40819,7 @@ if i32.const 0 i32.const 32 - i32.const 3286 + i32.const 3284 i32.const 0 call $~lib/builtins/abort unreachable @@ -40826,7 +40832,7 @@ if i32.const 0 i32.const 32 - i32.const 3287 + i32.const 3285 i32.const 0 call $~lib/builtins/abort unreachable @@ -40839,7 +40845,7 @@ if i32.const 0 i32.const 32 - i32.const 3288 + i32.const 3286 i32.const 0 call $~lib/builtins/abort unreachable @@ -40852,7 +40858,7 @@ if i32.const 0 i32.const 32 - i32.const 3289 + i32.const 3287 i32.const 0 call $~lib/builtins/abort unreachable @@ -40865,7 +40871,7 @@ if i32.const 0 i32.const 32 - i32.const 3292 + i32.const 3290 i32.const 0 call $~lib/builtins/abort unreachable @@ -40878,7 +40884,7 @@ if i32.const 0 i32.const 32 - i32.const 3293 + i32.const 3291 i32.const 0 call $~lib/builtins/abort unreachable @@ -40891,7 +40897,7 @@ if i32.const 0 i32.const 32 - i32.const 3294 + i32.const 3292 i32.const 0 call $~lib/builtins/abort unreachable @@ -40904,7 +40910,7 @@ if i32.const 0 i32.const 32 - i32.const 3295 + i32.const 3293 i32.const 0 call $~lib/builtins/abort unreachable @@ -40917,7 +40923,7 @@ if i32.const 0 i32.const 32 - i32.const 3296 + i32.const 3294 i32.const 0 call $~lib/builtins/abort unreachable @@ -40930,7 +40936,7 @@ if i32.const 0 i32.const 32 - i32.const 3299 + i32.const 3297 i32.const 0 call $~lib/builtins/abort unreachable @@ -40943,7 +40949,7 @@ if i32.const 0 i32.const 32 - i32.const 3300 + i32.const 3298 i32.const 0 call $~lib/builtins/abort unreachable @@ -40956,7 +40962,7 @@ if i32.const 0 i32.const 32 - i32.const 3301 + i32.const 3299 i32.const 0 call $~lib/builtins/abort unreachable @@ -40969,7 +40975,7 @@ if i32.const 0 i32.const 32 - i32.const 3302 + i32.const 3300 i32.const 0 call $~lib/builtins/abort unreachable @@ -40982,7 +40988,7 @@ if i32.const 0 i32.const 32 - i32.const 3303 + i32.const 3301 i32.const 0 call $~lib/builtins/abort unreachable @@ -40995,7 +41001,7 @@ if i32.const 0 i32.const 32 - i32.const 3304 + i32.const 3302 i32.const 0 call $~lib/builtins/abort unreachable @@ -41008,7 +41014,7 @@ if i32.const 0 i32.const 32 - i32.const 3305 + i32.const 3303 i32.const 0 call $~lib/builtins/abort unreachable @@ -41021,7 +41027,7 @@ if i32.const 0 i32.const 32 - i32.const 3306 + i32.const 3304 i32.const 0 call $~lib/builtins/abort unreachable @@ -41034,7 +41040,7 @@ if i32.const 0 i32.const 32 - i32.const 3307 + i32.const 3305 i32.const 0 call $~lib/builtins/abort unreachable @@ -41047,7 +41053,7 @@ if i32.const 0 i32.const 32 - i32.const 3308 + i32.const 3306 i32.const 0 call $~lib/builtins/abort unreachable @@ -41060,7 +41066,7 @@ if i32.const 0 i32.const 32 - i32.const 3309 + i32.const 3307 i32.const 0 call $~lib/builtins/abort unreachable @@ -41073,7 +41079,7 @@ if i32.const 0 i32.const 32 - i32.const 3310 + i32.const 3308 i32.const 0 call $~lib/builtins/abort unreachable @@ -41086,7 +41092,7 @@ if i32.const 0 i32.const 32 - i32.const 3311 + i32.const 3309 i32.const 0 call $~lib/builtins/abort unreachable @@ -41099,7 +41105,7 @@ if i32.const 0 i32.const 32 - i32.const 3312 + i32.const 3310 i32.const 0 call $~lib/builtins/abort unreachable @@ -41112,7 +41118,7 @@ if i32.const 0 i32.const 32 - i32.const 3313 + i32.const 3311 i32.const 0 call $~lib/builtins/abort unreachable @@ -41125,7 +41131,7 @@ if i32.const 0 i32.const 32 - i32.const 3314 + i32.const 3312 i32.const 0 call $~lib/builtins/abort unreachable @@ -41138,7 +41144,7 @@ if i32.const 0 i32.const 32 - i32.const 3315 + i32.const 3313 i32.const 0 call $~lib/builtins/abort unreachable @@ -41151,7 +41157,7 @@ if i32.const 0 i32.const 32 - i32.const 3316 + i32.const 3314 i32.const 0 call $~lib/builtins/abort unreachable @@ -41164,7 +41170,7 @@ if i32.const 0 i32.const 32 - i32.const 3317 + i32.const 3315 i32.const 0 call $~lib/builtins/abort unreachable @@ -41177,7 +41183,7 @@ if i32.const 0 i32.const 32 - i32.const 3318 + i32.const 3316 i32.const 0 call $~lib/builtins/abort unreachable @@ -41190,7 +41196,7 @@ if i32.const 0 i32.const 32 - i32.const 3319 + i32.const 3317 i32.const 0 call $~lib/builtins/abort unreachable @@ -41203,7 +41209,7 @@ if i32.const 0 i32.const 32 - i32.const 3320 + i32.const 3318 i32.const 0 call $~lib/builtins/abort unreachable @@ -41216,7 +41222,7 @@ if i32.const 0 i32.const 32 - i32.const 3321 + i32.const 3319 i32.const 0 call $~lib/builtins/abort unreachable @@ -41229,7 +41235,7 @@ if i32.const 0 i32.const 32 - i32.const 3322 + i32.const 3320 i32.const 0 call $~lib/builtins/abort unreachable @@ -41242,7 +41248,7 @@ if i32.const 0 i32.const 32 - i32.const 3323 + i32.const 3321 i32.const 0 call $~lib/builtins/abort unreachable @@ -41255,7 +41261,7 @@ if i32.const 0 i32.const 32 - i32.const 3324 + i32.const 3322 i32.const 0 call $~lib/builtins/abort unreachable @@ -41268,7 +41274,7 @@ if i32.const 0 i32.const 32 - i32.const 3325 + i32.const 3323 i32.const 0 call $~lib/builtins/abort unreachable @@ -41281,7 +41287,7 @@ if i32.const 0 i32.const 32 - i32.const 3326 + i32.const 3324 i32.const 0 call $~lib/builtins/abort unreachable @@ -41294,7 +41300,7 @@ if i32.const 0 i32.const 32 - i32.const 3327 + i32.const 3325 i32.const 0 call $~lib/builtins/abort unreachable @@ -41307,7 +41313,7 @@ if i32.const 0 i32.const 32 - i32.const 3328 + i32.const 3326 i32.const 0 call $~lib/builtins/abort unreachable @@ -41320,7 +41326,7 @@ if i32.const 0 i32.const 32 - i32.const 3329 + i32.const 3327 i32.const 0 call $~lib/builtins/abort unreachable @@ -41333,7 +41339,7 @@ if i32.const 0 i32.const 32 - i32.const 3330 + i32.const 3328 i32.const 0 call $~lib/builtins/abort unreachable @@ -41346,7 +41352,7 @@ if i32.const 0 i32.const 32 - i32.const 3331 + i32.const 3329 i32.const 0 call $~lib/builtins/abort unreachable @@ -41359,7 +41365,7 @@ if i32.const 0 i32.const 32 - i32.const 3332 + i32.const 3330 i32.const 0 call $~lib/builtins/abort unreachable @@ -41372,7 +41378,7 @@ if i32.const 0 i32.const 32 - i32.const 3333 + i32.const 3331 i32.const 0 call $~lib/builtins/abort unreachable @@ -41385,7 +41391,7 @@ if i32.const 0 i32.const 32 - i32.const 3334 + i32.const 3332 i32.const 0 call $~lib/builtins/abort unreachable @@ -41398,7 +41404,7 @@ if i32.const 0 i32.const 32 - i32.const 3335 + i32.const 3333 i32.const 0 call $~lib/builtins/abort unreachable @@ -41411,7 +41417,7 @@ if i32.const 0 i32.const 32 - i32.const 3336 + i32.const 3334 i32.const 0 call $~lib/builtins/abort unreachable @@ -41424,7 +41430,7 @@ if i32.const 0 i32.const 32 - i32.const 3339 + i32.const 3337 i32.const 0 call $~lib/builtins/abort unreachable @@ -41437,7 +41443,7 @@ if i32.const 0 i32.const 32 - i32.const 3340 + i32.const 3338 i32.const 0 call $~lib/builtins/abort unreachable @@ -41450,7 +41456,7 @@ if i32.const 0 i32.const 32 - i32.const 3341 + i32.const 3339 i32.const 0 call $~lib/builtins/abort unreachable @@ -41463,7 +41469,7 @@ if i32.const 0 i32.const 32 - i32.const 3342 + i32.const 3340 i32.const 0 call $~lib/builtins/abort unreachable @@ -41476,7 +41482,7 @@ if i32.const 0 i32.const 32 - i32.const 3343 + i32.const 3341 i32.const 0 call $~lib/builtins/abort unreachable @@ -41489,7 +41495,7 @@ if i32.const 0 i32.const 32 - i32.const 3344 + i32.const 3342 i32.const 0 call $~lib/builtins/abort unreachable @@ -41502,7 +41508,7 @@ if i32.const 0 i32.const 32 - i32.const 3345 + i32.const 3343 i32.const 0 call $~lib/builtins/abort unreachable @@ -41515,7 +41521,7 @@ if i32.const 0 i32.const 32 - i32.const 3346 + i32.const 3344 i32.const 0 call $~lib/builtins/abort unreachable @@ -41528,7 +41534,7 @@ if i32.const 0 i32.const 32 - i32.const 3347 + i32.const 3345 i32.const 0 call $~lib/builtins/abort unreachable @@ -41541,7 +41547,7 @@ if i32.const 0 i32.const 32 - i32.const 3348 + i32.const 3346 i32.const 0 call $~lib/builtins/abort unreachable @@ -41554,7 +41560,7 @@ if i32.const 0 i32.const 32 - i32.const 3349 + i32.const 3347 i32.const 0 call $~lib/builtins/abort unreachable @@ -41567,7 +41573,7 @@ if i32.const 0 i32.const 32 - i32.const 3350 + i32.const 3348 i32.const 0 call $~lib/builtins/abort unreachable @@ -41580,7 +41586,7 @@ if i32.const 0 i32.const 32 - i32.const 3351 + i32.const 3349 i32.const 0 call $~lib/builtins/abort unreachable @@ -41593,7 +41599,7 @@ if i32.const 0 i32.const 32 - i32.const 3352 + i32.const 3350 i32.const 0 call $~lib/builtins/abort unreachable @@ -41606,7 +41612,7 @@ if i32.const 0 i32.const 32 - i32.const 3364 + i32.const 3362 i32.const 0 call $~lib/builtins/abort unreachable @@ -41619,7 +41625,7 @@ if i32.const 0 i32.const 32 - i32.const 3365 + i32.const 3363 i32.const 0 call $~lib/builtins/abort unreachable @@ -41632,7 +41638,7 @@ if i32.const 0 i32.const 32 - i32.const 3366 + i32.const 3364 i32.const 0 call $~lib/builtins/abort unreachable @@ -41645,7 +41651,7 @@ if i32.const 0 i32.const 32 - i32.const 3367 + i32.const 3365 i32.const 0 call $~lib/builtins/abort unreachable @@ -41658,7 +41664,7 @@ if i32.const 0 i32.const 32 - i32.const 3368 + i32.const 3366 i32.const 0 call $~lib/builtins/abort unreachable @@ -41671,7 +41677,7 @@ if i32.const 0 i32.const 32 - i32.const 3369 + i32.const 3367 i32.const 0 call $~lib/builtins/abort unreachable @@ -41684,7 +41690,7 @@ if i32.const 0 i32.const 32 - i32.const 3370 + i32.const 3368 i32.const 0 call $~lib/builtins/abort unreachable @@ -41697,7 +41703,7 @@ if i32.const 0 i32.const 32 - i32.const 3371 + i32.const 3369 i32.const 0 call $~lib/builtins/abort unreachable @@ -41710,7 +41716,7 @@ if i32.const 0 i32.const 32 - i32.const 3372 + i32.const 3370 i32.const 0 call $~lib/builtins/abort unreachable @@ -41723,7 +41729,7 @@ if i32.const 0 i32.const 32 - i32.const 3373 + i32.const 3371 i32.const 0 call $~lib/builtins/abort unreachable @@ -41736,7 +41742,7 @@ if i32.const 0 i32.const 32 - i32.const 3376 + i32.const 3374 i32.const 0 call $~lib/builtins/abort unreachable @@ -41749,7 +41755,7 @@ if i32.const 0 i32.const 32 - i32.const 3377 + i32.const 3375 i32.const 0 call $~lib/builtins/abort unreachable @@ -41762,7 +41768,7 @@ if i32.const 0 i32.const 32 - i32.const 3378 + i32.const 3376 i32.const 0 call $~lib/builtins/abort unreachable @@ -41775,7 +41781,7 @@ if i32.const 0 i32.const 32 - i32.const 3379 + i32.const 3377 i32.const 0 call $~lib/builtins/abort unreachable @@ -41788,7 +41794,7 @@ if i32.const 0 i32.const 32 - i32.const 3380 + i32.const 3378 i32.const 0 call $~lib/builtins/abort unreachable @@ -41801,7 +41807,7 @@ if i32.const 0 i32.const 32 - i32.const 3389 + i32.const 3387 i32.const 0 call $~lib/builtins/abort unreachable @@ -41814,7 +41820,7 @@ if i32.const 0 i32.const 32 - i32.const 3390 + i32.const 3388 i32.const 0 call $~lib/builtins/abort unreachable @@ -41827,7 +41833,7 @@ if i32.const 0 i32.const 32 - i32.const 3391 + i32.const 3389 i32.const 0 call $~lib/builtins/abort unreachable @@ -41840,7 +41846,7 @@ if i32.const 0 i32.const 32 - i32.const 3392 + i32.const 3390 i32.const 0 call $~lib/builtins/abort unreachable @@ -41853,7 +41859,7 @@ if i32.const 0 i32.const 32 - i32.const 3393 + i32.const 3391 i32.const 0 call $~lib/builtins/abort unreachable @@ -41866,7 +41872,7 @@ if i32.const 0 i32.const 32 - i32.const 3394 + i32.const 3392 i32.const 0 call $~lib/builtins/abort unreachable @@ -41879,7 +41885,7 @@ if i32.const 0 i32.const 32 - i32.const 3395 + i32.const 3393 i32.const 0 call $~lib/builtins/abort unreachable @@ -41892,7 +41898,7 @@ if i32.const 0 i32.const 32 - i32.const 3396 + i32.const 3394 i32.const 0 call $~lib/builtins/abort unreachable @@ -41905,7 +41911,7 @@ if i32.const 0 i32.const 32 - i32.const 3397 + i32.const 3395 i32.const 0 call $~lib/builtins/abort unreachable @@ -41918,7 +41924,7 @@ if i32.const 0 i32.const 32 - i32.const 3398 + i32.const 3396 i32.const 0 call $~lib/builtins/abort unreachable @@ -41931,7 +41937,7 @@ if i32.const 0 i32.const 32 - i32.const 3401 + i32.const 3399 i32.const 0 call $~lib/builtins/abort unreachable @@ -41944,7 +41950,7 @@ if i32.const 0 i32.const 32 - i32.const 3402 + i32.const 3400 i32.const 0 call $~lib/builtins/abort unreachable @@ -41957,7 +41963,7 @@ if i32.const 0 i32.const 32 - i32.const 3403 + i32.const 3401 i32.const 0 call $~lib/builtins/abort unreachable @@ -41970,7 +41976,7 @@ if i32.const 0 i32.const 32 - i32.const 3404 + i32.const 3402 i32.const 0 call $~lib/builtins/abort unreachable @@ -41983,7 +41989,7 @@ if i32.const 0 i32.const 32 - i32.const 3405 + i32.const 3403 i32.const 0 call $~lib/builtins/abort unreachable @@ -41996,7 +42002,7 @@ if i32.const 0 i32.const 32 - i32.const 3417 + i32.const 3415 i32.const 0 call $~lib/builtins/abort unreachable @@ -42009,7 +42015,7 @@ if i32.const 0 i32.const 32 - i32.const 3418 + i32.const 3416 i32.const 0 call $~lib/builtins/abort unreachable @@ -42022,7 +42028,7 @@ if i32.const 0 i32.const 32 - i32.const 3419 + i32.const 3417 i32.const 0 call $~lib/builtins/abort unreachable @@ -42035,7 +42041,7 @@ if i32.const 0 i32.const 32 - i32.const 3420 + i32.const 3418 i32.const 0 call $~lib/builtins/abort unreachable @@ -42048,7 +42054,7 @@ if i32.const 0 i32.const 32 - i32.const 3421 + i32.const 3419 i32.const 0 call $~lib/builtins/abort unreachable @@ -42061,7 +42067,7 @@ if i32.const 0 i32.const 32 - i32.const 3422 + i32.const 3420 i32.const 0 call $~lib/builtins/abort unreachable @@ -42074,7 +42080,7 @@ if i32.const 0 i32.const 32 - i32.const 3423 + i32.const 3421 i32.const 0 call $~lib/builtins/abort unreachable @@ -42087,7 +42093,7 @@ if i32.const 0 i32.const 32 - i32.const 3424 + i32.const 3422 i32.const 0 call $~lib/builtins/abort unreachable @@ -42100,7 +42106,7 @@ if i32.const 0 i32.const 32 - i32.const 3425 + i32.const 3423 i32.const 0 call $~lib/builtins/abort unreachable @@ -42113,7 +42119,7 @@ if i32.const 0 i32.const 32 - i32.const 3426 + i32.const 3424 i32.const 0 call $~lib/builtins/abort unreachable @@ -42126,7 +42132,7 @@ if i32.const 0 i32.const 32 - i32.const 3429 + i32.const 3427 i32.const 0 call $~lib/builtins/abort unreachable @@ -42139,7 +42145,7 @@ if i32.const 0 i32.const 32 - i32.const 3430 + i32.const 3428 i32.const 0 call $~lib/builtins/abort unreachable @@ -42152,7 +42158,7 @@ if i32.const 0 i32.const 32 - i32.const 3431 + i32.const 3429 i32.const 0 call $~lib/builtins/abort unreachable @@ -42165,7 +42171,7 @@ if i32.const 0 i32.const 32 - i32.const 3432 + i32.const 3430 i32.const 0 call $~lib/builtins/abort unreachable @@ -42178,7 +42184,7 @@ if i32.const 0 i32.const 32 - i32.const 3433 + i32.const 3431 i32.const 0 call $~lib/builtins/abort unreachable @@ -42191,7 +42197,7 @@ if i32.const 0 i32.const 32 - i32.const 3434 + i32.const 3432 i32.const 0 call $~lib/builtins/abort unreachable @@ -42204,7 +42210,7 @@ if i32.const 0 i32.const 32 - i32.const 3435 + i32.const 3433 i32.const 0 call $~lib/builtins/abort unreachable @@ -42217,7 +42223,7 @@ if i32.const 0 i32.const 32 - i32.const 3436 + i32.const 3434 i32.const 0 call $~lib/builtins/abort unreachable @@ -42230,7 +42236,7 @@ if i32.const 0 i32.const 32 - i32.const 3437 + i32.const 3435 i32.const 0 call $~lib/builtins/abort unreachable @@ -42243,7 +42249,7 @@ if i32.const 0 i32.const 32 - i32.const 3438 + i32.const 3436 i32.const 0 call $~lib/builtins/abort unreachable @@ -42256,7 +42262,7 @@ if i32.const 0 i32.const 32 - i32.const 3439 + i32.const 3437 i32.const 0 call $~lib/builtins/abort unreachable @@ -42269,7 +42275,7 @@ if i32.const 0 i32.const 32 - i32.const 3440 + i32.const 3438 i32.const 0 call $~lib/builtins/abort unreachable @@ -42282,7 +42288,7 @@ if i32.const 0 i32.const 32 - i32.const 3441 + i32.const 3439 i32.const 0 call $~lib/builtins/abort unreachable @@ -42295,7 +42301,7 @@ if i32.const 0 i32.const 32 - i32.const 3442 + i32.const 3440 i32.const 0 call $~lib/builtins/abort unreachable @@ -42308,7 +42314,7 @@ if i32.const 0 i32.const 32 - i32.const 3443 + i32.const 3441 i32.const 0 call $~lib/builtins/abort unreachable @@ -42321,7 +42327,7 @@ if i32.const 0 i32.const 32 - i32.const 3444 + i32.const 3442 i32.const 0 call $~lib/builtins/abort unreachable @@ -42334,7 +42340,7 @@ if i32.const 0 i32.const 32 - i32.const 3445 + i32.const 3443 i32.const 0 call $~lib/builtins/abort unreachable @@ -42347,7 +42353,7 @@ if i32.const 0 i32.const 32 - i32.const 3446 + i32.const 3444 i32.const 0 call $~lib/builtins/abort unreachable @@ -42360,7 +42366,7 @@ if i32.const 0 i32.const 32 - i32.const 3447 + i32.const 3445 i32.const 0 call $~lib/builtins/abort unreachable @@ -42373,7 +42379,7 @@ if i32.const 0 i32.const 32 - i32.const 3448 + i32.const 3446 i32.const 0 call $~lib/builtins/abort unreachable @@ -42386,7 +42392,7 @@ if i32.const 0 i32.const 32 - i32.const 3449 + i32.const 3447 i32.const 0 call $~lib/builtins/abort unreachable @@ -42399,7 +42405,7 @@ if i32.const 0 i32.const 32 - i32.const 3450 + i32.const 3448 i32.const 0 call $~lib/builtins/abort unreachable @@ -42412,7 +42418,7 @@ if i32.const 0 i32.const 32 - i32.const 3451 + i32.const 3449 i32.const 0 call $~lib/builtins/abort unreachable @@ -42425,7 +42431,7 @@ if i32.const 0 i32.const 32 - i32.const 3452 + i32.const 3450 i32.const 0 call $~lib/builtins/abort unreachable @@ -42438,7 +42444,7 @@ if i32.const 0 i32.const 32 - i32.const 3453 + i32.const 3451 i32.const 0 call $~lib/builtins/abort unreachable @@ -42451,7 +42457,7 @@ if i32.const 0 i32.const 32 - i32.const 3454 + i32.const 3452 i32.const 0 call $~lib/builtins/abort unreachable @@ -42464,7 +42470,7 @@ if i32.const 0 i32.const 32 - i32.const 3455 + i32.const 3453 i32.const 0 call $~lib/builtins/abort unreachable @@ -42477,7 +42483,7 @@ if i32.const 0 i32.const 32 - i32.const 3456 + i32.const 3454 i32.const 0 call $~lib/builtins/abort unreachable @@ -42490,7 +42496,7 @@ if i32.const 0 i32.const 32 - i32.const 3457 + i32.const 3455 i32.const 0 call $~lib/builtins/abort unreachable @@ -42503,7 +42509,7 @@ if i32.const 0 i32.const 32 - i32.const 3458 + i32.const 3456 i32.const 0 call $~lib/builtins/abort unreachable @@ -42516,7 +42522,7 @@ if i32.const 0 i32.const 32 - i32.const 3459 + i32.const 3457 i32.const 0 call $~lib/builtins/abort unreachable @@ -42529,7 +42535,7 @@ if i32.const 0 i32.const 32 - i32.const 3460 + i32.const 3458 i32.const 0 call $~lib/builtins/abort unreachable @@ -42542,7 +42548,7 @@ if i32.const 0 i32.const 32 - i32.const 3461 + i32.const 3459 i32.const 0 call $~lib/builtins/abort unreachable @@ -42555,7 +42561,7 @@ if i32.const 0 i32.const 32 - i32.const 3462 + i32.const 3460 i32.const 0 call $~lib/builtins/abort unreachable @@ -42568,7 +42574,7 @@ if i32.const 0 i32.const 32 - i32.const 3463 + i32.const 3461 i32.const 0 call $~lib/builtins/abort unreachable @@ -42581,7 +42587,7 @@ if i32.const 0 i32.const 32 - i32.const 3464 + i32.const 3462 i32.const 0 call $~lib/builtins/abort unreachable @@ -42594,7 +42600,7 @@ if i32.const 0 i32.const 32 - i32.const 3465 + i32.const 3463 i32.const 0 call $~lib/builtins/abort unreachable @@ -42607,7 +42613,7 @@ if i32.const 0 i32.const 32 - i32.const 3466 + i32.const 3464 i32.const 0 call $~lib/builtins/abort unreachable @@ -42620,7 +42626,7 @@ if i32.const 0 i32.const 32 - i32.const 3467 + i32.const 3465 i32.const 0 call $~lib/builtins/abort unreachable @@ -42633,7 +42639,7 @@ if i32.const 0 i32.const 32 - i32.const 3468 + i32.const 3466 i32.const 0 call $~lib/builtins/abort unreachable @@ -42646,7 +42652,7 @@ if i32.const 0 i32.const 32 - i32.const 3469 + i32.const 3467 i32.const 0 call $~lib/builtins/abort unreachable @@ -42659,7 +42665,7 @@ if i32.const 0 i32.const 32 - i32.const 3470 + i32.const 3468 i32.const 0 call $~lib/builtins/abort unreachable @@ -42672,7 +42678,7 @@ if i32.const 0 i32.const 32 - i32.const 3471 + i32.const 3469 i32.const 0 call $~lib/builtins/abort unreachable @@ -42685,7 +42691,7 @@ if i32.const 0 i32.const 32 - i32.const 3472 + i32.const 3470 i32.const 0 call $~lib/builtins/abort unreachable @@ -42698,7 +42704,7 @@ if i32.const 0 i32.const 32 - i32.const 3473 + i32.const 3471 i32.const 0 call $~lib/builtins/abort unreachable @@ -42711,7 +42717,7 @@ if i32.const 0 i32.const 32 - i32.const 3474 + i32.const 3472 i32.const 0 call $~lib/builtins/abort unreachable @@ -42724,7 +42730,7 @@ if i32.const 0 i32.const 32 - i32.const 3475 + i32.const 3473 i32.const 0 call $~lib/builtins/abort unreachable @@ -42737,7 +42743,7 @@ if i32.const 0 i32.const 32 - i32.const 3476 + i32.const 3474 i32.const 0 call $~lib/builtins/abort unreachable @@ -42750,7 +42756,7 @@ if i32.const 0 i32.const 32 - i32.const 3477 + i32.const 3475 i32.const 0 call $~lib/builtins/abort unreachable @@ -42763,7 +42769,7 @@ if i32.const 0 i32.const 32 - i32.const 3478 + i32.const 3476 i32.const 0 call $~lib/builtins/abort unreachable @@ -42776,7 +42782,7 @@ if i32.const 0 i32.const 32 - i32.const 3479 + i32.const 3477 i32.const 0 call $~lib/builtins/abort unreachable @@ -42789,7 +42795,7 @@ if i32.const 0 i32.const 32 - i32.const 3480 + i32.const 3478 i32.const 0 call $~lib/builtins/abort unreachable @@ -42802,7 +42808,7 @@ if i32.const 0 i32.const 32 - i32.const 3481 + i32.const 3479 i32.const 0 call $~lib/builtins/abort unreachable @@ -42815,7 +42821,7 @@ if i32.const 0 i32.const 32 - i32.const 3482 + i32.const 3480 i32.const 0 call $~lib/builtins/abort unreachable @@ -42828,7 +42834,7 @@ if i32.const 0 i32.const 32 - i32.const 3483 + i32.const 3481 i32.const 0 call $~lib/builtins/abort unreachable @@ -42841,7 +42847,7 @@ if i32.const 0 i32.const 32 - i32.const 3484 + i32.const 3482 i32.const 0 call $~lib/builtins/abort unreachable @@ -42854,7 +42860,7 @@ if i32.const 0 i32.const 32 - i32.const 3485 + i32.const 3483 i32.const 0 call $~lib/builtins/abort unreachable @@ -42867,7 +42873,7 @@ if i32.const 0 i32.const 32 - i32.const 3486 + i32.const 3484 i32.const 0 call $~lib/builtins/abort unreachable @@ -42880,7 +42886,7 @@ if i32.const 0 i32.const 32 - i32.const 3487 + i32.const 3485 i32.const 0 call $~lib/builtins/abort unreachable @@ -42893,7 +42899,7 @@ if i32.const 0 i32.const 32 - i32.const 3488 + i32.const 3486 i32.const 0 call $~lib/builtins/abort unreachable @@ -42906,7 +42912,7 @@ if i32.const 0 i32.const 32 - i32.const 3489 + i32.const 3487 i32.const 0 call $~lib/builtins/abort unreachable @@ -42919,7 +42925,7 @@ if i32.const 0 i32.const 32 - i32.const 3490 + i32.const 3488 i32.const 0 call $~lib/builtins/abort unreachable @@ -42932,7 +42938,7 @@ if i32.const 0 i32.const 32 - i32.const 3491 + i32.const 3489 i32.const 0 call $~lib/builtins/abort unreachable @@ -42945,7 +42951,7 @@ if i32.const 0 i32.const 32 - i32.const 3492 + i32.const 3490 i32.const 0 call $~lib/builtins/abort unreachable @@ -42958,7 +42964,7 @@ if i32.const 0 i32.const 32 - i32.const 3493 + i32.const 3491 i32.const 0 call $~lib/builtins/abort unreachable @@ -42971,7 +42977,7 @@ if i32.const 0 i32.const 32 - i32.const 3494 + i32.const 3492 i32.const 0 call $~lib/builtins/abort unreachable @@ -42984,7 +42990,7 @@ if i32.const 0 i32.const 32 - i32.const 3495 + i32.const 3493 i32.const 0 call $~lib/builtins/abort unreachable @@ -42997,7 +43003,7 @@ if i32.const 0 i32.const 32 - i32.const 3496 + i32.const 3494 i32.const 0 call $~lib/builtins/abort unreachable @@ -43010,7 +43016,7 @@ if i32.const 0 i32.const 32 - i32.const 3497 + i32.const 3495 i32.const 0 call $~lib/builtins/abort unreachable @@ -43023,7 +43029,7 @@ if i32.const 0 i32.const 32 - i32.const 3498 + i32.const 3496 i32.const 0 call $~lib/builtins/abort unreachable @@ -43036,7 +43042,7 @@ if i32.const 0 i32.const 32 - i32.const 3499 + i32.const 3497 i32.const 0 call $~lib/builtins/abort unreachable @@ -43049,7 +43055,7 @@ if i32.const 0 i32.const 32 - i32.const 3500 + i32.const 3498 i32.const 0 call $~lib/builtins/abort unreachable @@ -43062,7 +43068,7 @@ if i32.const 0 i32.const 32 - i32.const 3501 + i32.const 3499 i32.const 0 call $~lib/builtins/abort unreachable @@ -43075,7 +43081,7 @@ if i32.const 0 i32.const 32 - i32.const 3502 + i32.const 3500 i32.const 0 call $~lib/builtins/abort unreachable @@ -43088,7 +43094,7 @@ if i32.const 0 i32.const 32 - i32.const 3511 + i32.const 3509 i32.const 0 call $~lib/builtins/abort unreachable @@ -43101,7 +43107,7 @@ if i32.const 0 i32.const 32 - i32.const 3512 + i32.const 3510 i32.const 0 call $~lib/builtins/abort unreachable @@ -43114,7 +43120,7 @@ if i32.const 0 i32.const 32 - i32.const 3513 + i32.const 3511 i32.const 0 call $~lib/builtins/abort unreachable @@ -43127,7 +43133,7 @@ if i32.const 0 i32.const 32 - i32.const 3514 + i32.const 3512 i32.const 0 call $~lib/builtins/abort unreachable @@ -43140,7 +43146,7 @@ if i32.const 0 i32.const 32 - i32.const 3515 + i32.const 3513 i32.const 0 call $~lib/builtins/abort unreachable @@ -43153,7 +43159,7 @@ if i32.const 0 i32.const 32 - i32.const 3516 + i32.const 3514 i32.const 0 call $~lib/builtins/abort unreachable @@ -43166,7 +43172,7 @@ if i32.const 0 i32.const 32 - i32.const 3517 + i32.const 3515 i32.const 0 call $~lib/builtins/abort unreachable @@ -43179,7 +43185,7 @@ if i32.const 0 i32.const 32 - i32.const 3518 + i32.const 3516 i32.const 0 call $~lib/builtins/abort unreachable @@ -43192,7 +43198,7 @@ if i32.const 0 i32.const 32 - i32.const 3519 + i32.const 3517 i32.const 0 call $~lib/builtins/abort unreachable @@ -43205,7 +43211,7 @@ if i32.const 0 i32.const 32 - i32.const 3520 + i32.const 3518 i32.const 0 call $~lib/builtins/abort unreachable @@ -43218,7 +43224,7 @@ if i32.const 0 i32.const 32 - i32.const 3523 + i32.const 3521 i32.const 0 call $~lib/builtins/abort unreachable @@ -43231,7 +43237,7 @@ if i32.const 0 i32.const 32 - i32.const 3524 + i32.const 3522 i32.const 0 call $~lib/builtins/abort unreachable @@ -43244,7 +43250,7 @@ if i32.const 0 i32.const 32 - i32.const 3525 + i32.const 3523 i32.const 0 call $~lib/builtins/abort unreachable @@ -43257,7 +43263,7 @@ if i32.const 0 i32.const 32 - i32.const 3526 + i32.const 3524 i32.const 0 call $~lib/builtins/abort unreachable @@ -43270,7 +43276,7 @@ if i32.const 0 i32.const 32 - i32.const 3527 + i32.const 3525 i32.const 0 call $~lib/builtins/abort unreachable @@ -43283,7 +43289,7 @@ if i32.const 0 i32.const 32 - i32.const 3528 + i32.const 3526 i32.const 0 call $~lib/builtins/abort unreachable @@ -43296,7 +43302,7 @@ if i32.const 0 i32.const 32 - i32.const 3529 + i32.const 3527 i32.const 0 call $~lib/builtins/abort unreachable @@ -43309,7 +43315,7 @@ if i32.const 0 i32.const 32 - i32.const 3530 + i32.const 3528 i32.const 0 call $~lib/builtins/abort unreachable @@ -43322,7 +43328,7 @@ if i32.const 0 i32.const 32 - i32.const 3531 + i32.const 3529 i32.const 0 call $~lib/builtins/abort unreachable @@ -43335,7 +43341,7 @@ if i32.const 0 i32.const 32 - i32.const 3532 + i32.const 3530 i32.const 0 call $~lib/builtins/abort unreachable @@ -43348,7 +43354,7 @@ if i32.const 0 i32.const 32 - i32.const 3533 + i32.const 3531 i32.const 0 call $~lib/builtins/abort unreachable @@ -43361,7 +43367,7 @@ if i32.const 0 i32.const 32 - i32.const 3534 + i32.const 3532 i32.const 0 call $~lib/builtins/abort unreachable @@ -43374,7 +43380,7 @@ if i32.const 0 i32.const 32 - i32.const 3535 + i32.const 3533 i32.const 0 call $~lib/builtins/abort unreachable @@ -43387,7 +43393,7 @@ if i32.const 0 i32.const 32 - i32.const 3536 + i32.const 3534 i32.const 0 call $~lib/builtins/abort unreachable @@ -43400,7 +43406,7 @@ if i32.const 0 i32.const 32 - i32.const 3537 + i32.const 3535 i32.const 0 call $~lib/builtins/abort unreachable @@ -43413,7 +43419,7 @@ if i32.const 0 i32.const 32 - i32.const 3538 + i32.const 3536 i32.const 0 call $~lib/builtins/abort unreachable @@ -43426,7 +43432,7 @@ if i32.const 0 i32.const 32 - i32.const 3539 + i32.const 3537 i32.const 0 call $~lib/builtins/abort unreachable @@ -43439,7 +43445,7 @@ if i32.const 0 i32.const 32 - i32.const 3540 + i32.const 3538 i32.const 0 call $~lib/builtins/abort unreachable @@ -43452,7 +43458,7 @@ if i32.const 0 i32.const 32 - i32.const 3541 + i32.const 3539 i32.const 0 call $~lib/builtins/abort unreachable @@ -43465,7 +43471,7 @@ if i32.const 0 i32.const 32 - i32.const 3542 + i32.const 3540 i32.const 0 call $~lib/builtins/abort unreachable @@ -43478,7 +43484,7 @@ if i32.const 0 i32.const 32 - i32.const 3543 + i32.const 3541 i32.const 0 call $~lib/builtins/abort unreachable @@ -43491,7 +43497,7 @@ if i32.const 0 i32.const 32 - i32.const 3544 + i32.const 3542 i32.const 0 call $~lib/builtins/abort unreachable @@ -43504,7 +43510,7 @@ if i32.const 0 i32.const 32 - i32.const 3556 + i32.const 3554 i32.const 0 call $~lib/builtins/abort unreachable @@ -43517,7 +43523,7 @@ if i32.const 0 i32.const 32 - i32.const 3557 + i32.const 3555 i32.const 0 call $~lib/builtins/abort unreachable @@ -43530,7 +43536,7 @@ if i32.const 0 i32.const 32 - i32.const 3558 + i32.const 3556 i32.const 0 call $~lib/builtins/abort unreachable @@ -43543,7 +43549,7 @@ if i32.const 0 i32.const 32 - i32.const 3559 + i32.const 3557 i32.const 0 call $~lib/builtins/abort unreachable @@ -43556,7 +43562,7 @@ if i32.const 0 i32.const 32 - i32.const 3560 + i32.const 3558 i32.const 0 call $~lib/builtins/abort unreachable @@ -43569,7 +43575,7 @@ if i32.const 0 i32.const 32 - i32.const 3561 + i32.const 3559 i32.const 0 call $~lib/builtins/abort unreachable @@ -43582,7 +43588,7 @@ if i32.const 0 i32.const 32 - i32.const 3562 + i32.const 3560 i32.const 0 call $~lib/builtins/abort unreachable @@ -43595,7 +43601,7 @@ if i32.const 0 i32.const 32 - i32.const 3563 + i32.const 3561 i32.const 0 call $~lib/builtins/abort unreachable @@ -43608,7 +43614,7 @@ if i32.const 0 i32.const 32 - i32.const 3564 + i32.const 3562 i32.const 0 call $~lib/builtins/abort unreachable @@ -43621,7 +43627,7 @@ if i32.const 0 i32.const 32 - i32.const 3565 + i32.const 3563 i32.const 0 call $~lib/builtins/abort unreachable @@ -43634,7 +43640,7 @@ if i32.const 0 i32.const 32 - i32.const 3568 + i32.const 3566 i32.const 0 call $~lib/builtins/abort unreachable @@ -43647,7 +43653,7 @@ if i32.const 0 i32.const 32 - i32.const 3569 + i32.const 3567 i32.const 0 call $~lib/builtins/abort unreachable @@ -43660,7 +43666,7 @@ if i32.const 0 i32.const 32 - i32.const 3570 + i32.const 3568 i32.const 0 call $~lib/builtins/abort unreachable @@ -43673,7 +43679,7 @@ if i32.const 0 i32.const 32 - i32.const 3571 + i32.const 3569 i32.const 0 call $~lib/builtins/abort unreachable @@ -43686,7 +43692,7 @@ if i32.const 0 i32.const 32 - i32.const 3572 + i32.const 3570 i32.const 0 call $~lib/builtins/abort unreachable @@ -43699,7 +43705,7 @@ if i32.const 0 i32.const 32 - i32.const 3573 + i32.const 3571 i32.const 0 call $~lib/builtins/abort unreachable @@ -43712,7 +43718,7 @@ if i32.const 0 i32.const 32 - i32.const 3574 + i32.const 3572 i32.const 0 call $~lib/builtins/abort unreachable @@ -43725,7 +43731,7 @@ if i32.const 0 i32.const 32 - i32.const 3575 + i32.const 3573 i32.const 0 call $~lib/builtins/abort unreachable @@ -43738,7 +43744,7 @@ if i32.const 0 i32.const 32 - i32.const 3576 + i32.const 3574 i32.const 0 call $~lib/builtins/abort unreachable @@ -43751,7 +43757,7 @@ if i32.const 0 i32.const 32 - i32.const 3577 + i32.const 3575 i32.const 0 call $~lib/builtins/abort unreachable @@ -43764,7 +43770,7 @@ if i32.const 0 i32.const 32 - i32.const 3578 + i32.const 3576 i32.const 0 call $~lib/builtins/abort unreachable @@ -43777,7 +43783,7 @@ if i32.const 0 i32.const 32 - i32.const 3579 + i32.const 3577 i32.const 0 call $~lib/builtins/abort unreachable @@ -43790,7 +43796,7 @@ if i32.const 0 i32.const 32 - i32.const 3580 + i32.const 3578 i32.const 0 call $~lib/builtins/abort unreachable @@ -43803,7 +43809,7 @@ if i32.const 0 i32.const 32 - i32.const 3581 + i32.const 3579 i32.const 0 call $~lib/builtins/abort unreachable @@ -43816,7 +43822,7 @@ if i32.const 0 i32.const 32 - i32.const 3582 + i32.const 3580 i32.const 0 call $~lib/builtins/abort unreachable @@ -43829,7 +43835,7 @@ if i32.const 0 i32.const 32 - i32.const 3583 + i32.const 3581 i32.const 0 call $~lib/builtins/abort unreachable @@ -43842,7 +43848,7 @@ if i32.const 0 i32.const 32 - i32.const 3584 + i32.const 3582 i32.const 0 call $~lib/builtins/abort unreachable @@ -43855,7 +43861,7 @@ if i32.const 0 i32.const 32 - i32.const 3585 + i32.const 3583 i32.const 0 call $~lib/builtins/abort unreachable @@ -43868,7 +43874,7 @@ if i32.const 0 i32.const 32 - i32.const 3586 + i32.const 3584 i32.const 0 call $~lib/builtins/abort unreachable @@ -43881,7 +43887,7 @@ if i32.const 0 i32.const 32 - i32.const 3587 + i32.const 3585 i32.const 0 call $~lib/builtins/abort unreachable @@ -43894,7 +43900,7 @@ if i32.const 0 i32.const 32 - i32.const 3588 + i32.const 3586 i32.const 0 call $~lib/builtins/abort unreachable @@ -43907,7 +43913,7 @@ if i32.const 0 i32.const 32 - i32.const 3589 + i32.const 3587 i32.const 0 call $~lib/builtins/abort unreachable @@ -43920,7 +43926,7 @@ if i32.const 0 i32.const 32 - i32.const 3590 + i32.const 3588 i32.const 0 call $~lib/builtins/abort unreachable @@ -43933,7 +43939,7 @@ if i32.const 0 i32.const 32 - i32.const 3591 + i32.const 3589 i32.const 0 call $~lib/builtins/abort unreachable @@ -43946,7 +43952,7 @@ if i32.const 0 i32.const 32 - i32.const 3592 + i32.const 3590 i32.const 0 call $~lib/builtins/abort unreachable @@ -43959,7 +43965,7 @@ if i32.const 0 i32.const 32 - i32.const 3593 + i32.const 3591 i32.const 0 call $~lib/builtins/abort unreachable @@ -43972,7 +43978,7 @@ if i32.const 0 i32.const 32 - i32.const 3594 + i32.const 3592 i32.const 0 call $~lib/builtins/abort unreachable @@ -43985,7 +43991,7 @@ if i32.const 0 i32.const 32 - i32.const 3595 + i32.const 3593 i32.const 0 call $~lib/builtins/abort unreachable @@ -43998,7 +44004,7 @@ if i32.const 0 i32.const 32 - i32.const 3596 + i32.const 3594 i32.const 0 call $~lib/builtins/abort unreachable @@ -44011,7 +44017,7 @@ if i32.const 0 i32.const 32 - i32.const 3597 + i32.const 3595 i32.const 0 call $~lib/builtins/abort unreachable @@ -44024,7 +44030,7 @@ if i32.const 0 i32.const 32 - i32.const 3598 + i32.const 3596 i32.const 0 call $~lib/builtins/abort unreachable @@ -44037,7 +44043,7 @@ if i32.const 0 i32.const 32 - i32.const 3599 + i32.const 3597 i32.const 0 call $~lib/builtins/abort unreachable @@ -44050,7 +44056,7 @@ if i32.const 0 i32.const 32 - i32.const 3600 + i32.const 3598 i32.const 0 call $~lib/builtins/abort unreachable @@ -44063,7 +44069,7 @@ if i32.const 0 i32.const 32 - i32.const 3601 + i32.const 3599 i32.const 0 call $~lib/builtins/abort unreachable @@ -44076,7 +44082,7 @@ if i32.const 0 i32.const 32 - i32.const 3602 + i32.const 3600 i32.const 0 call $~lib/builtins/abort unreachable @@ -44089,7 +44095,7 @@ if i32.const 0 i32.const 32 - i32.const 3603 + i32.const 3601 i32.const 0 call $~lib/builtins/abort unreachable @@ -44102,7 +44108,7 @@ if i32.const 0 i32.const 32 - i32.const 3604 + i32.const 3602 i32.const 0 call $~lib/builtins/abort unreachable @@ -44115,7 +44121,7 @@ if i32.const 0 i32.const 32 - i32.const 3605 + i32.const 3603 i32.const 0 call $~lib/builtins/abort unreachable @@ -44128,7 +44134,7 @@ if i32.const 0 i32.const 32 - i32.const 3608 + i32.const 3606 i32.const 0 call $~lib/builtins/abort unreachable @@ -44141,7 +44147,7 @@ if i32.const 0 i32.const 32 - i32.const 3609 + i32.const 3607 i32.const 0 call $~lib/builtins/abort unreachable @@ -44154,7 +44160,7 @@ if i32.const 0 i32.const 32 - i32.const 3610 + i32.const 3608 i32.const 0 call $~lib/builtins/abort unreachable @@ -44167,7 +44173,7 @@ if i32.const 0 i32.const 32 - i32.const 3611 + i32.const 3609 i32.const 0 call $~lib/builtins/abort unreachable @@ -44180,7 +44186,7 @@ if i32.const 0 i32.const 32 - i32.const 3612 + i32.const 3610 i32.const 0 call $~lib/builtins/abort unreachable @@ -44193,7 +44199,7 @@ if i32.const 0 i32.const 32 - i32.const 3613 + i32.const 3611 i32.const 0 call $~lib/builtins/abort unreachable @@ -44206,7 +44212,7 @@ if i32.const 0 i32.const 32 - i32.const 3614 + i32.const 3612 i32.const 0 call $~lib/builtins/abort unreachable @@ -44219,7 +44225,7 @@ if i32.const 0 i32.const 32 - i32.const 3615 + i32.const 3613 i32.const 0 call $~lib/builtins/abort unreachable @@ -44232,7 +44238,7 @@ if i32.const 0 i32.const 32 - i32.const 3617 + i32.const 3615 i32.const 0 call $~lib/builtins/abort unreachable @@ -44245,7 +44251,7 @@ if i32.const 0 i32.const 32 - i32.const 3618 + i32.const 3616 i32.const 0 call $~lib/builtins/abort unreachable @@ -44258,7 +44264,7 @@ if i32.const 0 i32.const 32 - i32.const 3619 + i32.const 3617 i32.const 0 call $~lib/builtins/abort unreachable @@ -44271,7 +44277,7 @@ if i32.const 0 i32.const 32 - i32.const 3620 + i32.const 3618 i32.const 0 call $~lib/builtins/abort unreachable @@ -44284,7 +44290,7 @@ if i32.const 0 i32.const 32 - i32.const 3621 + i32.const 3619 i32.const 0 call $~lib/builtins/abort unreachable @@ -44297,7 +44303,7 @@ if i32.const 0 i32.const 32 - i32.const 3622 + i32.const 3620 i32.const 0 call $~lib/builtins/abort unreachable @@ -44310,7 +44316,7 @@ if i32.const 0 i32.const 32 - i32.const 3623 + i32.const 3621 i32.const 0 call $~lib/builtins/abort unreachable @@ -44323,7 +44329,7 @@ if i32.const 0 i32.const 32 - i32.const 3624 + i32.const 3622 i32.const 0 call $~lib/builtins/abort unreachable @@ -44336,7 +44342,7 @@ if i32.const 0 i32.const 32 - i32.const 3627 + i32.const 3625 i32.const 0 call $~lib/builtins/abort unreachable @@ -44349,7 +44355,7 @@ if i32.const 0 i32.const 32 - i32.const 3628 + i32.const 3626 i32.const 0 call $~lib/builtins/abort unreachable @@ -44362,7 +44368,7 @@ if i32.const 0 i32.const 32 - i32.const 3629 + i32.const 3627 i32.const 0 call $~lib/builtins/abort unreachable @@ -44375,7 +44381,7 @@ if i32.const 0 i32.const 32 - i32.const 3630 + i32.const 3628 i32.const 0 call $~lib/builtins/abort unreachable @@ -44388,7 +44394,7 @@ if i32.const 0 i32.const 32 - i32.const 3631 + i32.const 3629 i32.const 0 call $~lib/builtins/abort unreachable @@ -44401,7 +44407,7 @@ if i32.const 0 i32.const 32 - i32.const 3640 + i32.const 3638 i32.const 0 call $~lib/builtins/abort unreachable @@ -44414,7 +44420,7 @@ if i32.const 0 i32.const 32 - i32.const 3641 + i32.const 3639 i32.const 0 call $~lib/builtins/abort unreachable @@ -44427,7 +44433,7 @@ if i32.const 0 i32.const 32 - i32.const 3642 + i32.const 3640 i32.const 0 call $~lib/builtins/abort unreachable @@ -44440,7 +44446,7 @@ if i32.const 0 i32.const 32 - i32.const 3643 + i32.const 3641 i32.const 0 call $~lib/builtins/abort unreachable @@ -44453,7 +44459,7 @@ if i32.const 0 i32.const 32 - i32.const 3644 + i32.const 3642 i32.const 0 call $~lib/builtins/abort unreachable @@ -44466,7 +44472,7 @@ if i32.const 0 i32.const 32 - i32.const 3645 + i32.const 3643 i32.const 0 call $~lib/builtins/abort unreachable @@ -44479,7 +44485,7 @@ if i32.const 0 i32.const 32 - i32.const 3646 + i32.const 3644 i32.const 0 call $~lib/builtins/abort unreachable @@ -44492,7 +44498,7 @@ if i32.const 0 i32.const 32 - i32.const 3647 + i32.const 3645 i32.const 0 call $~lib/builtins/abort unreachable @@ -44505,7 +44511,7 @@ if i32.const 0 i32.const 32 - i32.const 3648 + i32.const 3646 i32.const 0 call $~lib/builtins/abort unreachable @@ -44518,7 +44524,7 @@ if i32.const 0 i32.const 32 - i32.const 3649 + i32.const 3647 i32.const 0 call $~lib/builtins/abort unreachable @@ -44531,7 +44537,7 @@ if i32.const 0 i32.const 32 - i32.const 3652 + i32.const 3650 i32.const 0 call $~lib/builtins/abort unreachable @@ -44544,7 +44550,7 @@ if i32.const 0 i32.const 32 - i32.const 3653 + i32.const 3651 i32.const 0 call $~lib/builtins/abort unreachable @@ -44557,7 +44563,7 @@ if i32.const 0 i32.const 32 - i32.const 3654 + i32.const 3652 i32.const 0 call $~lib/builtins/abort unreachable @@ -44570,7 +44576,7 @@ if i32.const 0 i32.const 32 - i32.const 3655 + i32.const 3653 i32.const 0 call $~lib/builtins/abort unreachable @@ -44583,7 +44589,7 @@ if i32.const 0 i32.const 32 - i32.const 3656 + i32.const 3654 i32.const 0 call $~lib/builtins/abort unreachable @@ -44596,7 +44602,7 @@ if i32.const 0 i32.const 32 - i32.const 3659 + i32.const 3657 i32.const 0 call $~lib/builtins/abort unreachable @@ -44609,7 +44615,7 @@ if i32.const 0 i32.const 32 - i32.const 3660 + i32.const 3658 i32.const 0 call $~lib/builtins/abort unreachable @@ -44622,7 +44628,7 @@ if i32.const 0 i32.const 32 - i32.const 3661 + i32.const 3659 i32.const 0 call $~lib/builtins/abort unreachable @@ -44635,7 +44641,7 @@ if i32.const 0 i32.const 32 - i32.const 3662 + i32.const 3660 i32.const 0 call $~lib/builtins/abort unreachable @@ -44648,7 +44654,7 @@ if i32.const 0 i32.const 32 - i32.const 3663 + i32.const 3661 i32.const 0 call $~lib/builtins/abort unreachable @@ -44661,7 +44667,7 @@ if i32.const 0 i32.const 32 - i32.const 3664 + i32.const 3662 i32.const 0 call $~lib/builtins/abort unreachable @@ -44674,7 +44680,7 @@ if i32.const 0 i32.const 32 - i32.const 3665 + i32.const 3663 i32.const 0 call $~lib/builtins/abort unreachable @@ -44687,7 +44693,7 @@ if i32.const 0 i32.const 32 - i32.const 3666 + i32.const 3664 i32.const 0 call $~lib/builtins/abort unreachable @@ -44700,7 +44706,7 @@ if i32.const 0 i32.const 32 - i32.const 3667 + i32.const 3665 i32.const 0 call $~lib/builtins/abort unreachable @@ -44713,7 +44719,7 @@ if i32.const 0 i32.const 32 - i32.const 3668 + i32.const 3666 i32.const 0 call $~lib/builtins/abort unreachable @@ -44726,7 +44732,7 @@ if i32.const 0 i32.const 32 - i32.const 3669 + i32.const 3667 i32.const 0 call $~lib/builtins/abort unreachable @@ -44739,7 +44745,7 @@ if i32.const 0 i32.const 32 - i32.const 3670 + i32.const 3668 i32.const 0 call $~lib/builtins/abort unreachable @@ -44752,7 +44758,7 @@ if i32.const 0 i32.const 32 - i32.const 3671 + i32.const 3669 i32.const 0 call $~lib/builtins/abort unreachable @@ -44765,7 +44771,7 @@ if i32.const 0 i32.const 32 - i32.const 3672 + i32.const 3670 i32.const 0 call $~lib/builtins/abort unreachable @@ -44778,7 +44784,7 @@ if i32.const 0 i32.const 32 - i32.const 3673 + i32.const 3671 i32.const 0 call $~lib/builtins/abort unreachable @@ -44791,7 +44797,7 @@ if i32.const 0 i32.const 32 - i32.const 3674 + i32.const 3672 i32.const 0 call $~lib/builtins/abort unreachable @@ -44804,7 +44810,7 @@ if i32.const 0 i32.const 32 - i32.const 3675 + i32.const 3673 i32.const 0 call $~lib/builtins/abort unreachable @@ -44817,7 +44823,7 @@ if i32.const 0 i32.const 32 - i32.const 3676 + i32.const 3674 i32.const 0 call $~lib/builtins/abort unreachable @@ -44830,7 +44836,7 @@ if i32.const 0 i32.const 32 - i32.const 3677 + i32.const 3675 i32.const 0 call $~lib/builtins/abort unreachable @@ -44843,7 +44849,7 @@ if i32.const 0 i32.const 32 - i32.const 3678 + i32.const 3676 i32.const 0 call $~lib/builtins/abort unreachable @@ -44856,7 +44862,7 @@ if i32.const 0 i32.const 32 - i32.const 3679 + i32.const 3677 i32.const 0 call $~lib/builtins/abort unreachable @@ -44869,7 +44875,7 @@ if i32.const 0 i32.const 32 - i32.const 3680 + i32.const 3678 i32.const 0 call $~lib/builtins/abort unreachable @@ -44882,7 +44888,7 @@ if i32.const 0 i32.const 32 - i32.const 3681 + i32.const 3679 i32.const 0 call $~lib/builtins/abort unreachable @@ -44895,7 +44901,7 @@ if i32.const 0 i32.const 32 - i32.const 3682 + i32.const 3680 i32.const 0 call $~lib/builtins/abort unreachable @@ -44908,7 +44914,7 @@ if i32.const 0 i32.const 32 - i32.const 3683 + i32.const 3681 i32.const 0 call $~lib/builtins/abort unreachable @@ -44921,7 +44927,7 @@ if i32.const 0 i32.const 32 - i32.const 3684 + i32.const 3682 i32.const 0 call $~lib/builtins/abort unreachable @@ -44934,7 +44940,7 @@ if i32.const 0 i32.const 32 - i32.const 3685 + i32.const 3683 i32.const 0 call $~lib/builtins/abort unreachable @@ -44947,7 +44953,7 @@ if i32.const 0 i32.const 32 - i32.const 3686 + i32.const 3684 i32.const 0 call $~lib/builtins/abort unreachable @@ -44960,7 +44966,7 @@ if i32.const 0 i32.const 32 - i32.const 3687 + i32.const 3685 i32.const 0 call $~lib/builtins/abort unreachable @@ -44973,7 +44979,7 @@ if i32.const 0 i32.const 32 - i32.const 3688 + i32.const 3686 i32.const 0 call $~lib/builtins/abort unreachable @@ -44986,7 +44992,7 @@ if i32.const 0 i32.const 32 - i32.const 3689 + i32.const 3687 i32.const 0 call $~lib/builtins/abort unreachable @@ -44999,7 +45005,7 @@ if i32.const 0 i32.const 32 - i32.const 3690 + i32.const 3688 i32.const 0 call $~lib/builtins/abort unreachable @@ -45012,7 +45018,7 @@ if i32.const 0 i32.const 32 - i32.const 3691 + i32.const 3689 i32.const 0 call $~lib/builtins/abort unreachable @@ -45025,7 +45031,7 @@ if i32.const 0 i32.const 32 - i32.const 3692 + i32.const 3690 i32.const 0 call $~lib/builtins/abort unreachable @@ -45038,7 +45044,7 @@ if i32.const 0 i32.const 32 - i32.const 3693 + i32.const 3691 i32.const 0 call $~lib/builtins/abort unreachable @@ -45051,7 +45057,7 @@ if i32.const 0 i32.const 32 - i32.const 3694 + i32.const 3692 i32.const 0 call $~lib/builtins/abort unreachable @@ -45064,7 +45070,7 @@ if i32.const 0 i32.const 32 - i32.const 3706 + i32.const 3704 i32.const 0 call $~lib/builtins/abort unreachable @@ -45077,7 +45083,7 @@ if i32.const 0 i32.const 32 - i32.const 3707 + i32.const 3705 i32.const 0 call $~lib/builtins/abort unreachable @@ -45090,7 +45096,7 @@ if i32.const 0 i32.const 32 - i32.const 3708 + i32.const 3706 i32.const 0 call $~lib/builtins/abort unreachable @@ -45103,7 +45109,7 @@ if i32.const 0 i32.const 32 - i32.const 3709 + i32.const 3707 i32.const 0 call $~lib/builtins/abort unreachable @@ -45116,7 +45122,7 @@ if i32.const 0 i32.const 32 - i32.const 3710 + i32.const 3708 i32.const 0 call $~lib/builtins/abort unreachable @@ -45129,7 +45135,7 @@ if i32.const 0 i32.const 32 - i32.const 3711 + i32.const 3709 i32.const 0 call $~lib/builtins/abort unreachable @@ -45142,7 +45148,7 @@ if i32.const 0 i32.const 32 - i32.const 3712 + i32.const 3710 i32.const 0 call $~lib/builtins/abort unreachable @@ -45155,7 +45161,7 @@ if i32.const 0 i32.const 32 - i32.const 3713 + i32.const 3711 i32.const 0 call $~lib/builtins/abort unreachable @@ -45168,7 +45174,7 @@ if i32.const 0 i32.const 32 - i32.const 3714 + i32.const 3712 i32.const 0 call $~lib/builtins/abort unreachable @@ -45181,7 +45187,7 @@ if i32.const 0 i32.const 32 - i32.const 3715 + i32.const 3713 i32.const 0 call $~lib/builtins/abort unreachable @@ -45194,7 +45200,7 @@ if i32.const 0 i32.const 32 - i32.const 3718 + i32.const 3716 i32.const 0 call $~lib/builtins/abort unreachable @@ -45207,7 +45213,7 @@ if i32.const 0 i32.const 32 - i32.const 3719 + i32.const 3717 i32.const 0 call $~lib/builtins/abort unreachable @@ -45220,7 +45226,7 @@ if i32.const 0 i32.const 32 - i32.const 3720 + i32.const 3718 i32.const 0 call $~lib/builtins/abort unreachable @@ -45233,7 +45239,7 @@ if i32.const 0 i32.const 32 - i32.const 3721 + i32.const 3719 i32.const 0 call $~lib/builtins/abort unreachable @@ -45246,7 +45252,7 @@ if i32.const 0 i32.const 32 - i32.const 3722 + i32.const 3720 i32.const 0 call $~lib/builtins/abort unreachable @@ -45259,7 +45265,7 @@ if i32.const 0 i32.const 32 - i32.const 3731 + i32.const 3729 i32.const 0 call $~lib/builtins/abort unreachable @@ -45272,7 +45278,7 @@ if i32.const 0 i32.const 32 - i32.const 3732 + i32.const 3730 i32.const 0 call $~lib/builtins/abort unreachable @@ -45285,7 +45291,7 @@ if i32.const 0 i32.const 32 - i32.const 3733 + i32.const 3731 i32.const 0 call $~lib/builtins/abort unreachable @@ -45298,7 +45304,7 @@ if i32.const 0 i32.const 32 - i32.const 3734 + i32.const 3732 i32.const 0 call $~lib/builtins/abort unreachable @@ -45311,7 +45317,7 @@ if i32.const 0 i32.const 32 - i32.const 3735 + i32.const 3733 i32.const 0 call $~lib/builtins/abort unreachable @@ -45324,7 +45330,7 @@ if i32.const 0 i32.const 32 - i32.const 3736 + i32.const 3734 i32.const 0 call $~lib/builtins/abort unreachable @@ -45337,7 +45343,7 @@ if i32.const 0 i32.const 32 - i32.const 3737 + i32.const 3735 i32.const 0 call $~lib/builtins/abort unreachable @@ -45350,7 +45356,7 @@ if i32.const 0 i32.const 32 - i32.const 3738 + i32.const 3736 i32.const 0 call $~lib/builtins/abort unreachable @@ -45363,7 +45369,7 @@ if i32.const 0 i32.const 32 - i32.const 3739 + i32.const 3737 i32.const 0 call $~lib/builtins/abort unreachable @@ -45376,7 +45382,7 @@ if i32.const 0 i32.const 32 - i32.const 3740 + i32.const 3738 i32.const 0 call $~lib/builtins/abort unreachable @@ -45389,7 +45395,7 @@ if i32.const 0 i32.const 32 - i32.const 3743 + i32.const 3741 i32.const 0 call $~lib/builtins/abort unreachable @@ -45402,7 +45408,7 @@ if i32.const 0 i32.const 32 - i32.const 3744 + i32.const 3742 i32.const 0 call $~lib/builtins/abort unreachable @@ -45415,7 +45421,7 @@ if i32.const 0 i32.const 32 - i32.const 3745 + i32.const 3743 i32.const 0 call $~lib/builtins/abort unreachable @@ -45428,7 +45434,7 @@ if i32.const 0 i32.const 32 - i32.const 3746 + i32.const 3744 i32.const 0 call $~lib/builtins/abort unreachable @@ -45441,7 +45447,7 @@ if i32.const 0 i32.const 32 - i32.const 3747 + i32.const 3745 i32.const 0 call $~lib/builtins/abort unreachable @@ -45453,7 +45459,7 @@ if i32.const 0 i32.const 32 - i32.const 3759 + i32.const 3757 i32.const 0 call $~lib/builtins/abort unreachable @@ -45465,7 +45471,7 @@ if i32.const 0 i32.const 32 - i32.const 3760 + i32.const 3758 i32.const 0 call $~lib/builtins/abort unreachable @@ -45477,7 +45483,7 @@ if i32.const 0 i32.const 32 - i32.const 3761 + i32.const 3759 i32.const 0 call $~lib/builtins/abort unreachable @@ -45489,7 +45495,7 @@ if i32.const 0 i32.const 32 - i32.const 3762 + i32.const 3760 i32.const 0 call $~lib/builtins/abort unreachable @@ -45501,7 +45507,7 @@ if i32.const 0 i32.const 32 - i32.const 3763 + i32.const 3761 i32.const 0 call $~lib/builtins/abort unreachable @@ -45513,7 +45519,7 @@ if i32.const 0 i32.const 32 - i32.const 3764 + i32.const 3762 i32.const 0 call $~lib/builtins/abort unreachable @@ -45525,7 +45531,7 @@ if i32.const 0 i32.const 32 - i32.const 3765 + i32.const 3763 i32.const 0 call $~lib/builtins/abort unreachable @@ -45537,7 +45543,7 @@ if i32.const 0 i32.const 32 - i32.const 3766 + i32.const 3764 i32.const 0 call $~lib/builtins/abort unreachable @@ -45549,7 +45555,7 @@ if i32.const 0 i32.const 32 - i32.const 3767 + i32.const 3765 i32.const 0 call $~lib/builtins/abort unreachable @@ -45561,7 +45567,7 @@ if i32.const 0 i32.const 32 - i32.const 3768 + i32.const 3766 i32.const 0 call $~lib/builtins/abort unreachable @@ -45573,7 +45579,7 @@ if i32.const 0 i32.const 32 - i32.const 3771 + i32.const 3769 i32.const 0 call $~lib/builtins/abort unreachable @@ -45585,7 +45591,7 @@ if i32.const 0 i32.const 32 - i32.const 3772 + i32.const 3770 i32.const 0 call $~lib/builtins/abort unreachable @@ -45597,7 +45603,7 @@ if i32.const 0 i32.const 32 - i32.const 3773 + i32.const 3771 i32.const 0 call $~lib/builtins/abort unreachable @@ -45609,7 +45615,7 @@ if i32.const 0 i32.const 32 - i32.const 3774 + i32.const 3772 i32.const 0 call $~lib/builtins/abort unreachable @@ -45621,7 +45627,7 @@ if i32.const 0 i32.const 32 - i32.const 3775 + i32.const 3773 i32.const 0 call $~lib/builtins/abort unreachable @@ -45633,7 +45639,7 @@ if i32.const 0 i32.const 32 - i32.const 3776 + i32.const 3774 i32.const 0 call $~lib/builtins/abort unreachable @@ -45645,7 +45651,7 @@ if i32.const 0 i32.const 32 - i32.const 3777 + i32.const 3775 i32.const 0 call $~lib/builtins/abort unreachable @@ -45657,7 +45663,7 @@ if i32.const 0 i32.const 32 - i32.const 3778 + i32.const 3776 i32.const 0 call $~lib/builtins/abort unreachable @@ -45669,7 +45675,7 @@ if i32.const 0 i32.const 32 - i32.const 3779 + i32.const 3777 i32.const 0 call $~lib/builtins/abort unreachable @@ -45681,7 +45687,7 @@ if i32.const 0 i32.const 32 - i32.const 3780 + i32.const 3778 i32.const 0 call $~lib/builtins/abort unreachable @@ -45693,7 +45699,7 @@ if i32.const 0 i32.const 32 - i32.const 3781 + i32.const 3779 i32.const 0 call $~lib/builtins/abort unreachable @@ -45705,7 +45711,7 @@ if i32.const 0 i32.const 32 - i32.const 3782 + i32.const 3780 i32.const 0 call $~lib/builtins/abort unreachable @@ -45717,7 +45723,7 @@ if i32.const 0 i32.const 32 - i32.const 3783 + i32.const 3781 i32.const 0 call $~lib/builtins/abort unreachable @@ -45729,7 +45735,7 @@ if i32.const 0 i32.const 32 - i32.const 3784 + i32.const 3782 i32.const 0 call $~lib/builtins/abort unreachable @@ -45741,7 +45747,7 @@ if i32.const 0 i32.const 32 - i32.const 3785 + i32.const 3783 i32.const 0 call $~lib/builtins/abort unreachable @@ -45753,7 +45759,7 @@ if i32.const 0 i32.const 32 - i32.const 3794 + i32.const 3792 i32.const 0 call $~lib/builtins/abort unreachable @@ -45765,7 +45771,7 @@ if i32.const 0 i32.const 32 - i32.const 3795 + i32.const 3793 i32.const 0 call $~lib/builtins/abort unreachable @@ -45777,7 +45783,7 @@ if i32.const 0 i32.const 32 - i32.const 3796 + i32.const 3794 i32.const 0 call $~lib/builtins/abort unreachable @@ -45789,7 +45795,7 @@ if i32.const 0 i32.const 32 - i32.const 3797 + i32.const 3795 i32.const 0 call $~lib/builtins/abort unreachable @@ -45801,7 +45807,7 @@ if i32.const 0 i32.const 32 - i32.const 3798 + i32.const 3796 i32.const 0 call $~lib/builtins/abort unreachable @@ -45813,7 +45819,7 @@ if i32.const 0 i32.const 32 - i32.const 3799 + i32.const 3797 i32.const 0 call $~lib/builtins/abort unreachable @@ -45825,7 +45831,7 @@ if i32.const 0 i32.const 32 - i32.const 3800 + i32.const 3798 i32.const 0 call $~lib/builtins/abort unreachable @@ -45837,7 +45843,7 @@ if i32.const 0 i32.const 32 - i32.const 3801 + i32.const 3799 i32.const 0 call $~lib/builtins/abort unreachable @@ -45849,7 +45855,7 @@ if i32.const 0 i32.const 32 - i32.const 3802 + i32.const 3800 i32.const 0 call $~lib/builtins/abort unreachable @@ -45861,7 +45867,7 @@ if i32.const 0 i32.const 32 - i32.const 3803 + i32.const 3801 i32.const 0 call $~lib/builtins/abort unreachable @@ -45873,7 +45879,7 @@ if i32.const 0 i32.const 32 - i32.const 3806 + i32.const 3804 i32.const 0 call $~lib/builtins/abort unreachable @@ -45885,7 +45891,7 @@ if i32.const 0 i32.const 32 - i32.const 3807 + i32.const 3805 i32.const 0 call $~lib/builtins/abort unreachable @@ -45897,7 +45903,7 @@ if i32.const 0 i32.const 32 - i32.const 3808 + i32.const 3806 i32.const 0 call $~lib/builtins/abort unreachable @@ -45909,7 +45915,7 @@ if i32.const 0 i32.const 32 - i32.const 3809 + i32.const 3807 i32.const 0 call $~lib/builtins/abort unreachable @@ -45921,7 +45927,7 @@ if i32.const 0 i32.const 32 - i32.const 3810 + i32.const 3808 i32.const 0 call $~lib/builtins/abort unreachable @@ -45933,7 +45939,7 @@ if i32.const 0 i32.const 32 - i32.const 3811 + i32.const 3809 i32.const 0 call $~lib/builtins/abort unreachable @@ -45945,7 +45951,7 @@ if i32.const 0 i32.const 32 - i32.const 3812 + i32.const 3810 i32.const 0 call $~lib/builtins/abort unreachable @@ -45957,7 +45963,7 @@ if i32.const 0 i32.const 32 - i32.const 3813 + i32.const 3811 i32.const 0 call $~lib/builtins/abort unreachable @@ -45969,7 +45975,7 @@ if i32.const 0 i32.const 32 - i32.const 3814 + i32.const 3812 i32.const 0 call $~lib/builtins/abort unreachable @@ -45981,7 +45987,7 @@ if i32.const 0 i32.const 32 - i32.const 3815 + i32.const 3813 i32.const 0 call $~lib/builtins/abort unreachable @@ -45993,7 +45999,7 @@ if i32.const 0 i32.const 32 - i32.const 3816 + i32.const 3814 i32.const 0 call $~lib/builtins/abort unreachable @@ -46005,7 +46011,7 @@ if i32.const 0 i32.const 32 - i32.const 3817 + i32.const 3815 i32.const 0 call $~lib/builtins/abort unreachable @@ -46017,7 +46023,7 @@ if i32.const 0 i32.const 32 - i32.const 3818 + i32.const 3816 i32.const 0 call $~lib/builtins/abort unreachable @@ -46029,7 +46035,7 @@ if i32.const 0 i32.const 32 - i32.const 3819 + i32.const 3817 i32.const 0 call $~lib/builtins/abort unreachable @@ -46041,7 +46047,7 @@ if i32.const 0 i32.const 32 - i32.const 3820 + i32.const 3818 i32.const 0 call $~lib/builtins/abort unreachable @@ -46114,7 +46120,7 @@ if i32.const 0 i32.const 32 - i32.const 3861 + i32.const 3859 i32.const 0 call $~lib/builtins/abort unreachable @@ -46127,7 +46133,7 @@ if i32.const 0 i32.const 32 - i32.const 3862 + i32.const 3860 i32.const 0 call $~lib/builtins/abort unreachable @@ -46140,7 +46146,7 @@ if i32.const 0 i32.const 32 - i32.const 3863 + i32.const 3861 i32.const 0 call $~lib/builtins/abort unreachable @@ -46153,7 +46159,7 @@ if i32.const 0 i32.const 32 - i32.const 3864 + i32.const 3862 i32.const 0 call $~lib/builtins/abort unreachable @@ -46166,7 +46172,7 @@ if i32.const 0 i32.const 32 - i32.const 3865 + i32.const 3863 i32.const 0 call $~lib/builtins/abort unreachable @@ -46179,7 +46185,7 @@ if i32.const 0 i32.const 32 - i32.const 3866 + i32.const 3864 i32.const 0 call $~lib/builtins/abort unreachable @@ -46192,7 +46198,7 @@ if i32.const 0 i32.const 32 - i32.const 3867 + i32.const 3865 i32.const 0 call $~lib/builtins/abort unreachable @@ -46205,7 +46211,7 @@ if i32.const 0 i32.const 32 - i32.const 3868 + i32.const 3866 i32.const 0 call $~lib/builtins/abort unreachable @@ -46218,7 +46224,7 @@ if i32.const 0 i32.const 32 - i32.const 3869 + i32.const 3867 i32.const 0 call $~lib/builtins/abort unreachable @@ -46231,7 +46237,7 @@ if i32.const 0 i32.const 32 - i32.const 3870 + i32.const 3868 i32.const 0 call $~lib/builtins/abort unreachable @@ -46244,7 +46250,7 @@ if i32.const 0 i32.const 32 - i32.const 3871 + i32.const 3869 i32.const 0 call $~lib/builtins/abort unreachable @@ -46257,7 +46263,7 @@ if i32.const 0 i32.const 32 - i32.const 3872 + i32.const 3870 i32.const 0 call $~lib/builtins/abort unreachable @@ -46269,7 +46275,7 @@ if i32.const 0 i32.const 32 - i32.const 3876 + i32.const 3874 i32.const 0 call $~lib/builtins/abort unreachable @@ -46281,7 +46287,7 @@ if i32.const 0 i32.const 32 - i32.const 3877 + i32.const 3875 i32.const 0 call $~lib/builtins/abort unreachable @@ -46293,7 +46299,7 @@ if i32.const 0 i32.const 32 - i32.const 3878 + i32.const 3876 i32.const 0 call $~lib/builtins/abort unreachable @@ -46305,7 +46311,7 @@ if i32.const 0 i32.const 32 - i32.const 3879 + i32.const 3877 i32.const 0 call $~lib/builtins/abort unreachable @@ -46317,7 +46323,7 @@ if i32.const 0 i32.const 32 - i32.const 3880 + i32.const 3878 i32.const 0 call $~lib/builtins/abort unreachable @@ -46329,7 +46335,7 @@ if i32.const 0 i32.const 32 - i32.const 3881 + i32.const 3879 i32.const 0 call $~lib/builtins/abort unreachable @@ -46341,7 +46347,7 @@ if i32.const 0 i32.const 32 - i32.const 3882 + i32.const 3880 i32.const 0 call $~lib/builtins/abort unreachable @@ -46353,7 +46359,7 @@ if i32.const 0 i32.const 32 - i32.const 3883 + i32.const 3881 i32.const 0 call $~lib/builtins/abort unreachable @@ -46365,7 +46371,7 @@ if i32.const 0 i32.const 32 - i32.const 3884 + i32.const 3882 i32.const 0 call $~lib/builtins/abort unreachable @@ -46377,7 +46383,7 @@ if i32.const 0 i32.const 32 - i32.const 3885 + i32.const 3883 i32.const 0 call $~lib/builtins/abort unreachable @@ -46389,7 +46395,7 @@ if i32.const 0 i32.const 32 - i32.const 3886 + i32.const 3884 i32.const 0 call $~lib/builtins/abort unreachable @@ -46401,7 +46407,7 @@ if i32.const 0 i32.const 32 - i32.const 3887 + i32.const 3885 i32.const 0 call $~lib/builtins/abort unreachable @@ -46413,7 +46419,7 @@ if i32.const 0 i32.const 32 - i32.const 3888 + i32.const 3886 i32.const 0 call $~lib/builtins/abort unreachable @@ -46425,7 +46431,7 @@ if i32.const 0 i32.const 32 - i32.const 3889 + i32.const 3887 i32.const 0 call $~lib/builtins/abort unreachable @@ -46437,7 +46443,7 @@ if i32.const 0 i32.const 32 - i32.const 3890 + i32.const 3888 i32.const 0 call $~lib/builtins/abort unreachable @@ -46449,7 +46455,7 @@ if i32.const 0 i32.const 32 - i32.const 3891 + i32.const 3889 i32.const 0 call $~lib/builtins/abort unreachable @@ -46462,7 +46468,7 @@ if i32.const 0 i32.const 32 - i32.const 3895 + i32.const 3893 i32.const 0 call $~lib/builtins/abort unreachable @@ -46475,7 +46481,7 @@ if i32.const 0 i32.const 32 - i32.const 3896 + i32.const 3894 i32.const 0 call $~lib/builtins/abort unreachable @@ -46488,7 +46494,7 @@ if i32.const 0 i32.const 32 - i32.const 3897 + i32.const 3895 i32.const 0 call $~lib/builtins/abort unreachable @@ -46501,7 +46507,7 @@ if i32.const 0 i32.const 32 - i32.const 3898 + i32.const 3896 i32.const 0 call $~lib/builtins/abort unreachable @@ -46514,7 +46520,7 @@ if i32.const 0 i32.const 32 - i32.const 3900 + i32.const 3898 i32.const 0 call $~lib/builtins/abort unreachable @@ -46527,7 +46533,7 @@ if i32.const 0 i32.const 32 - i32.const 3901 + i32.const 3899 i32.const 0 call $~lib/builtins/abort unreachable @@ -46540,7 +46546,7 @@ if i32.const 0 i32.const 32 - i32.const 3902 + i32.const 3900 i32.const 0 call $~lib/builtins/abort unreachable @@ -46553,7 +46559,7 @@ if i32.const 0 i32.const 32 - i32.const 3903 + i32.const 3901 i32.const 0 call $~lib/builtins/abort unreachable @@ -46566,7 +46572,7 @@ if i32.const 0 i32.const 32 - i32.const 3905 + i32.const 3903 i32.const 0 call $~lib/builtins/abort unreachable @@ -46579,7 +46585,7 @@ if i32.const 0 i32.const 32 - i32.const 3906 + i32.const 3904 i32.const 0 call $~lib/builtins/abort unreachable @@ -46592,7 +46598,7 @@ if i32.const 0 i32.const 32 - i32.const 3907 + i32.const 3905 i32.const 0 call $~lib/builtins/abort unreachable @@ -46605,7 +46611,7 @@ if i32.const 0 i32.const 32 - i32.const 3908 + i32.const 3906 i32.const 0 call $~lib/builtins/abort unreachable @@ -46618,7 +46624,7 @@ if i32.const 0 i32.const 32 - i32.const 3910 + i32.const 3908 i32.const 0 call $~lib/builtins/abort unreachable @@ -46631,7 +46637,7 @@ if i32.const 0 i32.const 32 - i32.const 3911 + i32.const 3909 i32.const 0 call $~lib/builtins/abort unreachable @@ -46644,7 +46650,7 @@ if i32.const 0 i32.const 32 - i32.const 3912 + i32.const 3910 i32.const 0 call $~lib/builtins/abort unreachable @@ -46657,7 +46663,7 @@ if i32.const 0 i32.const 32 - i32.const 3913 + i32.const 3911 i32.const 0 call $~lib/builtins/abort unreachable @@ -46670,7 +46676,7 @@ if i32.const 0 i32.const 32 - i32.const 3915 + i32.const 3913 i32.const 0 call $~lib/builtins/abort unreachable @@ -46683,7 +46689,7 @@ if i32.const 0 i32.const 32 - i32.const 3916 + i32.const 3914 i32.const 0 call $~lib/builtins/abort unreachable @@ -46696,7 +46702,7 @@ if i32.const 0 i32.const 32 - i32.const 3917 + i32.const 3915 i32.const 0 call $~lib/builtins/abort unreachable @@ -46709,7 +46715,7 @@ if i32.const 0 i32.const 32 - i32.const 3918 + i32.const 3916 i32.const 0 call $~lib/builtins/abort unreachable @@ -46722,7 +46728,7 @@ if i32.const 0 i32.const 32 - i32.const 3920 + i32.const 3918 i32.const 0 call $~lib/builtins/abort unreachable @@ -46735,7 +46741,7 @@ if i32.const 0 i32.const 32 - i32.const 3921 + i32.const 3919 i32.const 0 call $~lib/builtins/abort unreachable @@ -46748,7 +46754,7 @@ if i32.const 0 i32.const 32 - i32.const 3922 + i32.const 3920 i32.const 0 call $~lib/builtins/abort unreachable @@ -46761,7 +46767,7 @@ if i32.const 0 i32.const 32 - i32.const 3923 + i32.const 3921 i32.const 0 call $~lib/builtins/abort unreachable @@ -46774,7 +46780,7 @@ if i32.const 0 i32.const 32 - i32.const 3924 + i32.const 3922 i32.const 0 call $~lib/builtins/abort unreachable @@ -46787,7 +46793,7 @@ if i32.const 0 i32.const 32 - i32.const 3925 + i32.const 3923 i32.const 0 call $~lib/builtins/abort unreachable @@ -46800,7 +46806,7 @@ if i32.const 0 i32.const 32 - i32.const 3926 + i32.const 3924 i32.const 0 call $~lib/builtins/abort unreachable @@ -46817,7 +46823,7 @@ if i32.const 0 i32.const 32 - i32.const 3928 + i32.const 3926 i32.const 0 call $~lib/builtins/abort unreachable @@ -46830,7 +46836,7 @@ if i32.const 0 i32.const 32 - i32.const 3932 + i32.const 3930 i32.const 0 call $~lib/builtins/abort unreachable @@ -46843,7 +46849,7 @@ if i32.const 0 i32.const 32 - i32.const 3933 + i32.const 3931 i32.const 0 call $~lib/builtins/abort unreachable @@ -46857,7 +46863,7 @@ if i32.const 0 i32.const 32 - i32.const 3934 + i32.const 3932 i32.const 0 call $~lib/builtins/abort unreachable @@ -46871,7 +46877,7 @@ if i32.const 0 i32.const 32 - i32.const 3935 + i32.const 3933 i32.const 0 call $~lib/builtins/abort unreachable @@ -46885,7 +46891,7 @@ if i32.const 0 i32.const 32 - i32.const 3936 + i32.const 3934 i32.const 0 call $~lib/builtins/abort unreachable @@ -46898,7 +46904,7 @@ if i32.const 0 i32.const 32 - i32.const 3937 + i32.const 3935 i32.const 0 call $~lib/builtins/abort unreachable @@ -46911,7 +46917,7 @@ if i32.const 0 i32.const 32 - i32.const 3938 + i32.const 3936 i32.const 0 call $~lib/builtins/abort unreachable @@ -46924,7 +46930,7 @@ if i32.const 0 i32.const 32 - i32.const 3939 + i32.const 3937 i32.const 0 call $~lib/builtins/abort unreachable @@ -46937,7 +46943,7 @@ if i32.const 0 i32.const 32 - i32.const 3940 + i32.const 3938 i32.const 0 call $~lib/builtins/abort unreachable @@ -46950,7 +46956,7 @@ if i32.const 0 i32.const 32 - i32.const 3941 + i32.const 3939 i32.const 0 call $~lib/builtins/abort unreachable @@ -46963,7 +46969,7 @@ if i32.const 0 i32.const 32 - i32.const 3942 + i32.const 3940 i32.const 0 call $~lib/builtins/abort unreachable @@ -46976,7 +46982,7 @@ if i32.const 0 i32.const 32 - i32.const 3943 + i32.const 3941 i32.const 0 call $~lib/builtins/abort unreachable @@ -46989,7 +46995,7 @@ if i32.const 0 i32.const 32 - i32.const 3944 + i32.const 3942 i32.const 0 call $~lib/builtins/abort unreachable @@ -47002,7 +47008,7 @@ if i32.const 0 i32.const 32 - i32.const 3945 + i32.const 3943 i32.const 0 call $~lib/builtins/abort unreachable @@ -47015,7 +47021,7 @@ if i32.const 0 i32.const 32 - i32.const 3946 + i32.const 3944 i32.const 0 call $~lib/builtins/abort unreachable @@ -47028,7 +47034,7 @@ if i32.const 0 i32.const 32 - i32.const 3947 + i32.const 3945 i32.const 0 call $~lib/builtins/abort unreachable @@ -47041,7 +47047,7 @@ if i32.const 0 i32.const 32 - i32.const 3951 + i32.const 3949 i32.const 0 call $~lib/builtins/abort unreachable @@ -47054,7 +47060,7 @@ if i32.const 0 i32.const 32 - i32.const 3952 + i32.const 3950 i32.const 0 call $~lib/builtins/abort unreachable @@ -47068,7 +47074,7 @@ if i32.const 0 i32.const 32 - i32.const 3953 + i32.const 3951 i32.const 0 call $~lib/builtins/abort unreachable @@ -47082,7 +47088,7 @@ if i32.const 0 i32.const 32 - i32.const 3954 + i32.const 3952 i32.const 0 call $~lib/builtins/abort unreachable @@ -47096,7 +47102,7 @@ if i32.const 0 i32.const 32 - i32.const 3955 + i32.const 3953 i32.const 0 call $~lib/builtins/abort unreachable @@ -47109,7 +47115,7 @@ if i32.const 0 i32.const 32 - i32.const 3956 + i32.const 3954 i32.const 0 call $~lib/builtins/abort unreachable @@ -47122,7 +47128,7 @@ if i32.const 0 i32.const 32 - i32.const 3957 + i32.const 3955 i32.const 0 call $~lib/builtins/abort unreachable @@ -47135,7 +47141,7 @@ if i32.const 0 i32.const 32 - i32.const 3958 + i32.const 3956 i32.const 0 call $~lib/builtins/abort unreachable @@ -47148,7 +47154,7 @@ if i32.const 0 i32.const 32 - i32.const 3959 + i32.const 3957 i32.const 0 call $~lib/builtins/abort unreachable @@ -47161,7 +47167,7 @@ if i32.const 0 i32.const 32 - i32.const 3960 + i32.const 3958 i32.const 0 call $~lib/builtins/abort unreachable @@ -47174,7 +47180,7 @@ if i32.const 0 i32.const 32 - i32.const 3961 + i32.const 3959 i32.const 0 call $~lib/builtins/abort unreachable @@ -47187,7 +47193,7 @@ if i32.const 0 i32.const 32 - i32.const 3962 + i32.const 3960 i32.const 0 call $~lib/builtins/abort unreachable @@ -47200,7 +47206,7 @@ if i32.const 0 i32.const 32 - i32.const 3963 + i32.const 3961 i32.const 0 call $~lib/builtins/abort unreachable @@ -47213,7 +47219,7 @@ if i32.const 0 i32.const 32 - i32.const 3964 + i32.const 3962 i32.const 0 call $~lib/builtins/abort unreachable @@ -47226,7 +47232,7 @@ if i32.const 0 i32.const 32 - i32.const 3965 + i32.const 3963 i32.const 0 call $~lib/builtins/abort unreachable @@ -47239,13 +47245,13 @@ if i32.const 0 i32.const 32 - i32.const 3966 + i32.const 3964 i32.const 0 call $~lib/builtins/abort unreachable end ) - (func $~start (; 176 ;) + (func $~start (; 177 ;) call $start:std/math ) ) diff --git a/tests/compiler/std/math.ts b/tests/compiler/std/math.ts index 2ba0a2806a..99963b2609 100644 --- a/tests/compiler/std/math.ts +++ b/tests/compiler/std/math.ts @@ -2844,7 +2844,6 @@ assert(test_powf(-2.0, -1.0, -0.5, 0.0, 0)); // Math.random //////////////////////////////////////////////////////////////////////////////////////////////////// -NativeMath.seedRandom(reinterpret(JSMath.random())); for (let i = 0; i < 1e6; ++i) { let r = NativeMath.random(); assert(r >= 0.0 && r < 1.0); @@ -2852,7 +2851,6 @@ for (let i = 0; i < 1e6; ++i) { // Mathf.random //////////////////////////////////////////////////////////////////////////////////// -NativeMathf.seedRandom(reinterpret(JSMath.random())); for (let i = 0; i < 1e6; ++i) { let r = NativeMathf.random(); assert(r >= 0.0 && r < 1.0); diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 99649d5718..75e42deee3 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -147,8 +147,6 @@ (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) - (global $~lib/ASC_SEEDRANDOM_HIGH i32 (i32.const 0)) - (global $~lib/ASC_SEEDRANDOM_LOW i32 (i32.const 0)) (global $~lib/math/NativeMath.sincos_sin (mut f64) (f64.const 0)) (global $~lib/math/NativeMath.sincos_cos (mut f64) (f64.const 0)) (global $~lib/builtins/f64.MAX_VALUE f64 (f64.const 1797693134862315708145274e284)) @@ -11223,7 +11221,25 @@ local.get $4 call $std/math/check ) - (func $~lib/math/murmurHash3 (; 135 ;) (param $0 i64) (result i64) + (func $~lib/math/seedRandomSelect (; 135 ;) (result i64) + (local $0 i64) + (local $1 i32) + loop $do-continue|0 + call $~lib/bindings/Math/random + i64.reinterpret_f64 + local.set $0 + local.get $0 + i64.const 0 + i64.ne + i32.eqz + local.set $1 + local.get $1 + br_if $do-continue|0 + end + local.get $0 + return + ) + (func $~lib/math/murmurHash3 (; 136 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -11252,7 +11268,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 136 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 137 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -11287,7 +11303,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 137 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 138 ;) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -11339,9 +11355,6 @@ unreachable end ) - (func $~lib/math/seedRandomSelect (; 138 ;) (result i64) - i64.const -6694241901998521029 - ) (func $~lib/math/NativeMath.random (; 139 ;) (result f64) (local $0 i64) (local $1 i64) @@ -16165,8 +16178,7 @@ (local $0 f64) (local $1 i32) (local $2 i32) - (local $3 i64) - (local $4 f32) + (local $3 f32) f64.const 2.718281828459045 global.get $~lib/bindings/Math/E f64.const 0 @@ -44193,9 +44205,6 @@ call $~lib/builtins/abort unreachable end - call $~lib/bindings/Math/random - i64.reinterpret_f64 - call $~lib/math/NativeMath.seedRandom i32.const 0 local.set $1 loop $for-loop|0 @@ -44222,7 +44231,7 @@ if i32.const 0 i32.const 32 - i32.const 2850 + i32.const 2849 i32.const 2 call $~lib/builtins/abort unreachable @@ -44234,11 +44243,6 @@ br $for-loop|0 end end - call $~lib/bindings/Math/random - i64.reinterpret_f64 - local.set $3 - local.get $3 - call $~lib/math/NativeMath.seedRandom i32.const 0 local.set $1 loop $for-loop|1 @@ -44250,12 +44254,12 @@ local.get $2 if call $~lib/math/NativeMathf.random - local.set $4 - local.get $4 + local.set $3 + local.get $3 f32.const 0 f32.ge if (result i32) - local.get $4 + local.get $3 f32.const 1 f32.lt else @@ -44265,7 +44269,7 @@ if i32.const 0 i32.const 32 - i32.const 2858 + i32.const 2856 i32.const 2 call $~lib/builtins/abort unreachable @@ -44286,7 +44290,7 @@ if i32.const 0 i32.const 32 - i32.const 2872 + i32.const 2870 i32.const 0 call $~lib/builtins/abort unreachable @@ -44300,7 +44304,7 @@ if i32.const 0 i32.const 32 - i32.const 2873 + i32.const 2871 i32.const 0 call $~lib/builtins/abort unreachable @@ -44314,7 +44318,7 @@ if i32.const 0 i32.const 32 - i32.const 2874 + i32.const 2872 i32.const 0 call $~lib/builtins/abort unreachable @@ -44328,7 +44332,7 @@ if i32.const 0 i32.const 32 - i32.const 2875 + i32.const 2873 i32.const 0 call $~lib/builtins/abort unreachable @@ -44342,7 +44346,7 @@ if i32.const 0 i32.const 32 - i32.const 2876 + i32.const 2874 i32.const 0 call $~lib/builtins/abort unreachable @@ -44356,7 +44360,7 @@ if i32.const 0 i32.const 32 - i32.const 2877 + i32.const 2875 i32.const 0 call $~lib/builtins/abort unreachable @@ -44370,7 +44374,7 @@ if i32.const 0 i32.const 32 - i32.const 2878 + i32.const 2876 i32.const 0 call $~lib/builtins/abort unreachable @@ -44384,7 +44388,7 @@ if i32.const 0 i32.const 32 - i32.const 2879 + i32.const 2877 i32.const 0 call $~lib/builtins/abort unreachable @@ -44398,7 +44402,7 @@ if i32.const 0 i32.const 32 - i32.const 2880 + i32.const 2878 i32.const 0 call $~lib/builtins/abort unreachable @@ -44412,7 +44416,7 @@ if i32.const 0 i32.const 32 - i32.const 2881 + i32.const 2879 i32.const 0 call $~lib/builtins/abort unreachable @@ -44426,7 +44430,7 @@ if i32.const 0 i32.const 32 - i32.const 2884 + i32.const 2882 i32.const 0 call $~lib/builtins/abort unreachable @@ -44440,7 +44444,7 @@ if i32.const 0 i32.const 32 - i32.const 2885 + i32.const 2883 i32.const 0 call $~lib/builtins/abort unreachable @@ -44454,7 +44458,7 @@ if i32.const 0 i32.const 32 - i32.const 2886 + i32.const 2884 i32.const 0 call $~lib/builtins/abort unreachable @@ -44468,7 +44472,7 @@ if i32.const 0 i32.const 32 - i32.const 2887 + i32.const 2885 i32.const 0 call $~lib/builtins/abort unreachable @@ -44482,7 +44486,7 @@ if i32.const 0 i32.const 32 - i32.const 2888 + i32.const 2886 i32.const 0 call $~lib/builtins/abort unreachable @@ -44496,7 +44500,7 @@ if i32.const 0 i32.const 32 - i32.const 2889 + i32.const 2887 i32.const 0 call $~lib/builtins/abort unreachable @@ -44510,7 +44514,7 @@ if i32.const 0 i32.const 32 - i32.const 2890 + i32.const 2888 i32.const 0 call $~lib/builtins/abort unreachable @@ -44524,7 +44528,7 @@ if i32.const 0 i32.const 32 - i32.const 2891 + i32.const 2889 i32.const 0 call $~lib/builtins/abort unreachable @@ -44538,7 +44542,7 @@ if i32.const 0 i32.const 32 - i32.const 2892 + i32.const 2890 i32.const 0 call $~lib/builtins/abort unreachable @@ -44552,7 +44556,7 @@ if i32.const 0 i32.const 32 - i32.const 2893 + i32.const 2891 i32.const 0 call $~lib/builtins/abort unreachable @@ -44566,7 +44570,7 @@ if i32.const 0 i32.const 32 - i32.const 2894 + i32.const 2892 i32.const 0 call $~lib/builtins/abort unreachable @@ -44580,7 +44584,7 @@ if i32.const 0 i32.const 32 - i32.const 2895 + i32.const 2893 i32.const 0 call $~lib/builtins/abort unreachable @@ -44594,7 +44598,7 @@ if i32.const 0 i32.const 32 - i32.const 2896 + i32.const 2894 i32.const 0 call $~lib/builtins/abort unreachable @@ -44608,7 +44612,7 @@ if i32.const 0 i32.const 32 - i32.const 2897 + i32.const 2895 i32.const 0 call $~lib/builtins/abort unreachable @@ -44622,7 +44626,7 @@ if i32.const 0 i32.const 32 - i32.const 2898 + i32.const 2896 i32.const 0 call $~lib/builtins/abort unreachable @@ -44636,7 +44640,7 @@ if i32.const 0 i32.const 32 - i32.const 2899 + i32.const 2897 i32.const 0 call $~lib/builtins/abort unreachable @@ -44650,7 +44654,7 @@ if i32.const 0 i32.const 32 - i32.const 2900 + i32.const 2898 i32.const 0 call $~lib/builtins/abort unreachable @@ -44664,7 +44668,7 @@ if i32.const 0 i32.const 32 - i32.const 2909 + i32.const 2907 i32.const 0 call $~lib/builtins/abort unreachable @@ -44678,7 +44682,7 @@ if i32.const 0 i32.const 32 - i32.const 2910 + i32.const 2908 i32.const 0 call $~lib/builtins/abort unreachable @@ -44692,7 +44696,7 @@ if i32.const 0 i32.const 32 - i32.const 2911 + i32.const 2909 i32.const 0 call $~lib/builtins/abort unreachable @@ -44706,7 +44710,7 @@ if i32.const 0 i32.const 32 - i32.const 2912 + i32.const 2910 i32.const 0 call $~lib/builtins/abort unreachable @@ -44720,7 +44724,7 @@ if i32.const 0 i32.const 32 - i32.const 2913 + i32.const 2911 i32.const 0 call $~lib/builtins/abort unreachable @@ -44734,7 +44738,7 @@ if i32.const 0 i32.const 32 - i32.const 2914 + i32.const 2912 i32.const 0 call $~lib/builtins/abort unreachable @@ -44748,7 +44752,7 @@ if i32.const 0 i32.const 32 - i32.const 2915 + i32.const 2913 i32.const 0 call $~lib/builtins/abort unreachable @@ -44762,7 +44766,7 @@ if i32.const 0 i32.const 32 - i32.const 2916 + i32.const 2914 i32.const 0 call $~lib/builtins/abort unreachable @@ -44776,7 +44780,7 @@ if i32.const 0 i32.const 32 - i32.const 2917 + i32.const 2915 i32.const 0 call $~lib/builtins/abort unreachable @@ -44790,7 +44794,7 @@ if i32.const 0 i32.const 32 - i32.const 2918 + i32.const 2916 i32.const 0 call $~lib/builtins/abort unreachable @@ -44804,7 +44808,7 @@ if i32.const 0 i32.const 32 - i32.const 2921 + i32.const 2919 i32.const 0 call $~lib/builtins/abort unreachable @@ -44818,7 +44822,7 @@ if i32.const 0 i32.const 32 - i32.const 2922 + i32.const 2920 i32.const 0 call $~lib/builtins/abort unreachable @@ -44832,7 +44836,7 @@ if i32.const 0 i32.const 32 - i32.const 2923 + i32.const 2921 i32.const 0 call $~lib/builtins/abort unreachable @@ -44846,7 +44850,7 @@ if i32.const 0 i32.const 32 - i32.const 2924 + i32.const 2922 i32.const 0 call $~lib/builtins/abort unreachable @@ -44860,7 +44864,7 @@ if i32.const 0 i32.const 32 - i32.const 2925 + i32.const 2923 i32.const 0 call $~lib/builtins/abort unreachable @@ -44874,7 +44878,7 @@ if i32.const 0 i32.const 32 - i32.const 2926 + i32.const 2924 i32.const 0 call $~lib/builtins/abort unreachable @@ -44888,7 +44892,7 @@ if i32.const 0 i32.const 32 - i32.const 2927 + i32.const 2925 i32.const 0 call $~lib/builtins/abort unreachable @@ -44902,7 +44906,7 @@ if i32.const 0 i32.const 32 - i32.const 2928 + i32.const 2926 i32.const 0 call $~lib/builtins/abort unreachable @@ -44916,7 +44920,7 @@ if i32.const 0 i32.const 32 - i32.const 2929 + i32.const 2927 i32.const 0 call $~lib/builtins/abort unreachable @@ -44930,7 +44934,7 @@ if i32.const 0 i32.const 32 - i32.const 2930 + i32.const 2928 i32.const 0 call $~lib/builtins/abort unreachable @@ -44944,7 +44948,7 @@ if i32.const 0 i32.const 32 - i32.const 2931 + i32.const 2929 i32.const 0 call $~lib/builtins/abort unreachable @@ -44958,7 +44962,7 @@ if i32.const 0 i32.const 32 - i32.const 2932 + i32.const 2930 i32.const 0 call $~lib/builtins/abort unreachable @@ -44972,7 +44976,7 @@ if i32.const 0 i32.const 32 - i32.const 2933 + i32.const 2931 i32.const 0 call $~lib/builtins/abort unreachable @@ -44986,7 +44990,7 @@ if i32.const 0 i32.const 32 - i32.const 2934 + i32.const 2932 i32.const 0 call $~lib/builtins/abort unreachable @@ -45000,7 +45004,7 @@ if i32.const 0 i32.const 32 - i32.const 2935 + i32.const 2933 i32.const 0 call $~lib/builtins/abort unreachable @@ -45014,7 +45018,7 @@ if i32.const 0 i32.const 32 - i32.const 2936 + i32.const 2934 i32.const 0 call $~lib/builtins/abort unreachable @@ -45028,7 +45032,7 @@ if i32.const 0 i32.const 32 - i32.const 2937 + i32.const 2935 i32.const 0 call $~lib/builtins/abort unreachable @@ -45042,7 +45046,7 @@ if i32.const 0 i32.const 32 - i32.const 2948 + i32.const 2946 i32.const 0 call $~lib/builtins/abort unreachable @@ -45056,7 +45060,7 @@ if i32.const 0 i32.const 32 - i32.const 2949 + i32.const 2947 i32.const 0 call $~lib/builtins/abort unreachable @@ -45070,7 +45074,7 @@ if i32.const 0 i32.const 32 - i32.const 2950 + i32.const 2948 i32.const 0 call $~lib/builtins/abort unreachable @@ -45084,7 +45088,7 @@ if i32.const 0 i32.const 32 - i32.const 2951 + i32.const 2949 i32.const 0 call $~lib/builtins/abort unreachable @@ -45098,7 +45102,7 @@ if i32.const 0 i32.const 32 - i32.const 2952 + i32.const 2950 i32.const 0 call $~lib/builtins/abort unreachable @@ -45112,7 +45116,7 @@ if i32.const 0 i32.const 32 - i32.const 2953 + i32.const 2951 i32.const 0 call $~lib/builtins/abort unreachable @@ -45126,7 +45130,7 @@ if i32.const 0 i32.const 32 - i32.const 2954 + i32.const 2952 i32.const 0 call $~lib/builtins/abort unreachable @@ -45140,7 +45144,7 @@ if i32.const 0 i32.const 32 - i32.const 2955 + i32.const 2953 i32.const 0 call $~lib/builtins/abort unreachable @@ -45154,7 +45158,7 @@ if i32.const 0 i32.const 32 - i32.const 2956 + i32.const 2954 i32.const 0 call $~lib/builtins/abort unreachable @@ -45168,7 +45172,7 @@ if i32.const 0 i32.const 32 - i32.const 2964 + i32.const 2962 i32.const 0 call $~lib/builtins/abort unreachable @@ -45182,7 +45186,7 @@ if i32.const 0 i32.const 32 - i32.const 2965 + i32.const 2963 i32.const 0 call $~lib/builtins/abort unreachable @@ -45196,7 +45200,7 @@ if i32.const 0 i32.const 32 - i32.const 2966 + i32.const 2964 i32.const 0 call $~lib/builtins/abort unreachable @@ -45210,7 +45214,7 @@ if i32.const 0 i32.const 32 - i32.const 2967 + i32.const 2965 i32.const 0 call $~lib/builtins/abort unreachable @@ -45224,7 +45228,7 @@ if i32.const 0 i32.const 32 - i32.const 2968 + i32.const 2966 i32.const 0 call $~lib/builtins/abort unreachable @@ -45238,7 +45242,7 @@ if i32.const 0 i32.const 32 - i32.const 2969 + i32.const 2967 i32.const 0 call $~lib/builtins/abort unreachable @@ -45252,7 +45256,7 @@ if i32.const 0 i32.const 32 - i32.const 2970 + i32.const 2968 i32.const 0 call $~lib/builtins/abort unreachable @@ -45266,7 +45270,7 @@ if i32.const 0 i32.const 32 - i32.const 2971 + i32.const 2969 i32.const 0 call $~lib/builtins/abort unreachable @@ -45280,7 +45284,7 @@ if i32.const 0 i32.const 32 - i32.const 2972 + i32.const 2970 i32.const 0 call $~lib/builtins/abort unreachable @@ -45304,7 +45308,7 @@ if i32.const 0 i32.const 32 - i32.const 2978 + i32.const 2976 i32.const 0 call $~lib/builtins/abort unreachable @@ -45328,7 +45332,7 @@ if i32.const 0 i32.const 32 - i32.const 2979 + i32.const 2977 i32.const 0 call $~lib/builtins/abort unreachable @@ -45352,7 +45356,7 @@ if i32.const 0 i32.const 32 - i32.const 2980 + i32.const 2978 i32.const 0 call $~lib/builtins/abort unreachable @@ -45376,7 +45380,7 @@ if i32.const 0 i32.const 32 - i32.const 2981 + i32.const 2979 i32.const 0 call $~lib/builtins/abort unreachable @@ -45400,7 +45404,7 @@ if i32.const 0 i32.const 32 - i32.const 2982 + i32.const 2980 i32.const 0 call $~lib/builtins/abort unreachable @@ -45424,7 +45428,7 @@ if i32.const 0 i32.const 32 - i32.const 2983 + i32.const 2981 i32.const 0 call $~lib/builtins/abort unreachable @@ -45448,7 +45452,7 @@ if i32.const 0 i32.const 32 - i32.const 2984 + i32.const 2982 i32.const 0 call $~lib/builtins/abort unreachable @@ -45472,19 +45476,19 @@ if i32.const 0 i32.const 32 - i32.const 2985 + i32.const 2983 i32.const 0 call $~lib/builtins/abort unreachable end f32.const 0 - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 f32.eq i32.and i32.const 0 @@ -45495,19 +45499,19 @@ if i32.const 0 i32.const 32 - i32.const 2991 + i32.const 2989 i32.const 0 call $~lib/builtins/abort unreachable end f32.const -0 - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 f32.eq i32.and i32.const 0 @@ -45518,19 +45522,19 @@ if i32.const 0 i32.const 32 - i32.const 2992 + i32.const 2990 i32.const 0 call $~lib/builtins/abort unreachable end f32.const 1 - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 f32.eq i32.and i32.const 0 @@ -45541,19 +45545,19 @@ if i32.const 0 i32.const 32 - i32.const 2993 + i32.const 2991 i32.const 0 call $~lib/builtins/abort unreachable end f32.const -1 - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 f32.eq i32.and i32.const 0 @@ -45564,19 +45568,19 @@ if i32.const 0 i32.const 32 - i32.const 2994 + i32.const 2992 i32.const 0 call $~lib/builtins/abort unreachable end f32.const nan:0x400000 - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 f32.eq i32.and i32.const 0 @@ -45587,19 +45591,19 @@ if i32.const 0 i32.const 32 - i32.const 2995 + i32.const 2993 i32.const 0 call $~lib/builtins/abort unreachable end f32.const -nan:0x400000 - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 f32.eq i32.and i32.const 0 @@ -45610,19 +45614,19 @@ if i32.const 0 i32.const 32 - i32.const 2996 + i32.const 2994 i32.const 0 call $~lib/builtins/abort unreachable end f32.const inf - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 f32.eq i32.and i32.const 0 @@ -45633,19 +45637,19 @@ if i32.const 0 i32.const 32 - i32.const 2997 + i32.const 2995 i32.const 0 call $~lib/builtins/abort unreachable end f32.const -inf - local.set $4 - local.get $4 + local.set $3 + local.get $3 i32.reinterpret_f32 i32.const 31 i32.shr_u - local.get $4 - local.get $4 + local.get $3 + local.get $3 f32.eq i32.and i32.const 0 @@ -45656,7 +45660,7 @@ if i32.const 0 i32.const 32 - i32.const 2998 + i32.const 2996 i32.const 0 call $~lib/builtins/abort unreachable @@ -45671,7 +45675,7 @@ if i32.const 0 i32.const 32 - i32.const 3009 + i32.const 3007 i32.const 0 call $~lib/builtins/abort unreachable @@ -45686,7 +45690,7 @@ if i32.const 0 i32.const 32 - i32.const 3010 + i32.const 3008 i32.const 0 call $~lib/builtins/abort unreachable @@ -45701,7 +45705,7 @@ if i32.const 0 i32.const 32 - i32.const 3011 + i32.const 3009 i32.const 0 call $~lib/builtins/abort unreachable @@ -45716,7 +45720,7 @@ if i32.const 0 i32.const 32 - i32.const 3012 + i32.const 3010 i32.const 0 call $~lib/builtins/abort unreachable @@ -45731,7 +45735,7 @@ if i32.const 0 i32.const 32 - i32.const 3013 + i32.const 3011 i32.const 0 call $~lib/builtins/abort unreachable @@ -45746,7 +45750,7 @@ if i32.const 0 i32.const 32 - i32.const 3014 + i32.const 3012 i32.const 0 call $~lib/builtins/abort unreachable @@ -45761,7 +45765,7 @@ if i32.const 0 i32.const 32 - i32.const 3015 + i32.const 3013 i32.const 0 call $~lib/builtins/abort unreachable @@ -45776,7 +45780,7 @@ if i32.const 0 i32.const 32 - i32.const 3016 + i32.const 3014 i32.const 0 call $~lib/builtins/abort unreachable @@ -45791,7 +45795,7 @@ if i32.const 0 i32.const 32 - i32.const 3017 + i32.const 3015 i32.const 0 call $~lib/builtins/abort unreachable @@ -45806,7 +45810,7 @@ if i32.const 0 i32.const 32 - i32.const 3018 + i32.const 3016 i32.const 0 call $~lib/builtins/abort unreachable @@ -45821,7 +45825,7 @@ if i32.const 0 i32.const 32 - i32.const 3021 + i32.const 3019 i32.const 0 call $~lib/builtins/abort unreachable @@ -45836,7 +45840,7 @@ if i32.const 0 i32.const 32 - i32.const 3022 + i32.const 3020 i32.const 0 call $~lib/builtins/abort unreachable @@ -45851,7 +45855,7 @@ if i32.const 0 i32.const 32 - i32.const 3023 + i32.const 3021 i32.const 0 call $~lib/builtins/abort unreachable @@ -45866,7 +45870,7 @@ if i32.const 0 i32.const 32 - i32.const 3024 + i32.const 3022 i32.const 0 call $~lib/builtins/abort unreachable @@ -45881,7 +45885,7 @@ if i32.const 0 i32.const 32 - i32.const 3025 + i32.const 3023 i32.const 0 call $~lib/builtins/abort unreachable @@ -45896,7 +45900,7 @@ if i32.const 0 i32.const 32 - i32.const 3026 + i32.const 3024 i32.const 0 call $~lib/builtins/abort unreachable @@ -45911,7 +45915,7 @@ if i32.const 0 i32.const 32 - i32.const 3027 + i32.const 3025 i32.const 0 call $~lib/builtins/abort unreachable @@ -45926,7 +45930,7 @@ if i32.const 0 i32.const 32 - i32.const 3028 + i32.const 3026 i32.const 0 call $~lib/builtins/abort unreachable @@ -45941,7 +45945,7 @@ if i32.const 0 i32.const 32 - i32.const 3029 + i32.const 3027 i32.const 0 call $~lib/builtins/abort unreachable @@ -45956,7 +45960,7 @@ if i32.const 0 i32.const 32 - i32.const 3030 + i32.const 3028 i32.const 0 call $~lib/builtins/abort unreachable @@ -45971,7 +45975,7 @@ if i32.const 0 i32.const 32 - i32.const 3031 + i32.const 3029 i32.const 0 call $~lib/builtins/abort unreachable @@ -45986,7 +45990,7 @@ if i32.const 0 i32.const 32 - i32.const 3032 + i32.const 3030 i32.const 0 call $~lib/builtins/abort unreachable @@ -46001,7 +46005,7 @@ if i32.const 0 i32.const 32 - i32.const 3033 + i32.const 3031 i32.const 0 call $~lib/builtins/abort unreachable @@ -46016,7 +46020,7 @@ if i32.const 0 i32.const 32 - i32.const 3034 + i32.const 3032 i32.const 0 call $~lib/builtins/abort unreachable @@ -46031,7 +46035,7 @@ if i32.const 0 i32.const 32 - i32.const 3035 + i32.const 3033 i32.const 0 call $~lib/builtins/abort unreachable @@ -46046,7 +46050,7 @@ if i32.const 0 i32.const 32 - i32.const 3036 + i32.const 3034 i32.const 0 call $~lib/builtins/abort unreachable @@ -46061,7 +46065,7 @@ if i32.const 0 i32.const 32 - i32.const 3037 + i32.const 3035 i32.const 0 call $~lib/builtins/abort unreachable @@ -46076,7 +46080,7 @@ if i32.const 0 i32.const 32 - i32.const 3038 + i32.const 3036 i32.const 0 call $~lib/builtins/abort unreachable @@ -46091,7 +46095,7 @@ if i32.const 0 i32.const 32 - i32.const 3039 + i32.const 3037 i32.const 0 call $~lib/builtins/abort unreachable @@ -46106,7 +46110,7 @@ if i32.const 0 i32.const 32 - i32.const 3040 + i32.const 3038 i32.const 0 call $~lib/builtins/abort unreachable @@ -46121,7 +46125,7 @@ if i32.const 0 i32.const 32 - i32.const 3041 + i32.const 3039 i32.const 0 call $~lib/builtins/abort unreachable @@ -46136,7 +46140,7 @@ if i32.const 0 i32.const 32 - i32.const 3042 + i32.const 3040 i32.const 0 call $~lib/builtins/abort unreachable @@ -46151,7 +46155,7 @@ if i32.const 0 i32.const 32 - i32.const 3043 + i32.const 3041 i32.const 0 call $~lib/builtins/abort unreachable @@ -46166,7 +46170,7 @@ if i32.const 0 i32.const 32 - i32.const 3044 + i32.const 3042 i32.const 0 call $~lib/builtins/abort unreachable @@ -46181,7 +46185,7 @@ if i32.const 0 i32.const 32 - i32.const 3045 + i32.const 3043 i32.const 0 call $~lib/builtins/abort unreachable @@ -46196,7 +46200,7 @@ if i32.const 0 i32.const 32 - i32.const 3046 + i32.const 3044 i32.const 0 call $~lib/builtins/abort unreachable @@ -46211,7 +46215,7 @@ if i32.const 0 i32.const 32 - i32.const 3047 + i32.const 3045 i32.const 0 call $~lib/builtins/abort unreachable @@ -46226,7 +46230,7 @@ if i32.const 0 i32.const 32 - i32.const 3048 + i32.const 3046 i32.const 0 call $~lib/builtins/abort unreachable @@ -46241,7 +46245,7 @@ if i32.const 0 i32.const 32 - i32.const 3049 + i32.const 3047 i32.const 0 call $~lib/builtins/abort unreachable @@ -46256,7 +46260,7 @@ if i32.const 0 i32.const 32 - i32.const 3050 + i32.const 3048 i32.const 0 call $~lib/builtins/abort unreachable @@ -46271,7 +46275,7 @@ if i32.const 0 i32.const 32 - i32.const 3051 + i32.const 3049 i32.const 0 call $~lib/builtins/abort unreachable @@ -46286,7 +46290,7 @@ if i32.const 0 i32.const 32 - i32.const 3052 + i32.const 3050 i32.const 0 call $~lib/builtins/abort unreachable @@ -46301,7 +46305,7 @@ if i32.const 0 i32.const 32 - i32.const 3053 + i32.const 3051 i32.const 0 call $~lib/builtins/abort unreachable @@ -46316,7 +46320,7 @@ if i32.const 0 i32.const 32 - i32.const 3054 + i32.const 3052 i32.const 0 call $~lib/builtins/abort unreachable @@ -46331,7 +46335,7 @@ if i32.const 0 i32.const 32 - i32.const 3055 + i32.const 3053 i32.const 0 call $~lib/builtins/abort unreachable @@ -46346,7 +46350,7 @@ if i32.const 0 i32.const 32 - i32.const 3056 + i32.const 3054 i32.const 0 call $~lib/builtins/abort unreachable @@ -46361,7 +46365,7 @@ if i32.const 0 i32.const 32 - i32.const 3057 + i32.const 3055 i32.const 0 call $~lib/builtins/abort unreachable @@ -46376,7 +46380,7 @@ if i32.const 0 i32.const 32 - i32.const 3058 + i32.const 3056 i32.const 0 call $~lib/builtins/abort unreachable @@ -46391,7 +46395,7 @@ if i32.const 0 i32.const 32 - i32.const 3059 + i32.const 3057 i32.const 0 call $~lib/builtins/abort unreachable @@ -46406,7 +46410,7 @@ if i32.const 0 i32.const 32 - i32.const 3060 + i32.const 3058 i32.const 0 call $~lib/builtins/abort unreachable @@ -46421,7 +46425,7 @@ if i32.const 0 i32.const 32 - i32.const 3061 + i32.const 3059 i32.const 0 call $~lib/builtins/abort unreachable @@ -46436,7 +46440,7 @@ if i32.const 0 i32.const 32 - i32.const 3062 + i32.const 3060 i32.const 0 call $~lib/builtins/abort unreachable @@ -46451,7 +46455,7 @@ if i32.const 0 i32.const 32 - i32.const 3063 + i32.const 3061 i32.const 0 call $~lib/builtins/abort unreachable @@ -46466,7 +46470,7 @@ if i32.const 0 i32.const 32 - i32.const 3064 + i32.const 3062 i32.const 0 call $~lib/builtins/abort unreachable @@ -46481,7 +46485,7 @@ if i32.const 0 i32.const 32 - i32.const 3065 + i32.const 3063 i32.const 0 call $~lib/builtins/abort unreachable @@ -46496,7 +46500,7 @@ if i32.const 0 i32.const 32 - i32.const 3066 + i32.const 3064 i32.const 0 call $~lib/builtins/abort unreachable @@ -46511,7 +46515,7 @@ if i32.const 0 i32.const 32 - i32.const 3067 + i32.const 3065 i32.const 0 call $~lib/builtins/abort unreachable @@ -46526,7 +46530,7 @@ if i32.const 0 i32.const 32 - i32.const 3068 + i32.const 3066 i32.const 0 call $~lib/builtins/abort unreachable @@ -46541,7 +46545,7 @@ if i32.const 0 i32.const 32 - i32.const 3069 + i32.const 3067 i32.const 0 call $~lib/builtins/abort unreachable @@ -46556,7 +46560,7 @@ if i32.const 0 i32.const 32 - i32.const 3070 + i32.const 3068 i32.const 0 call $~lib/builtins/abort unreachable @@ -46571,7 +46575,7 @@ if i32.const 0 i32.const 32 - i32.const 3071 + i32.const 3069 i32.const 0 call $~lib/builtins/abort unreachable @@ -46586,7 +46590,7 @@ if i32.const 0 i32.const 32 - i32.const 3072 + i32.const 3070 i32.const 0 call $~lib/builtins/abort unreachable @@ -46601,7 +46605,7 @@ if i32.const 0 i32.const 32 - i32.const 3073 + i32.const 3071 i32.const 0 call $~lib/builtins/abort unreachable @@ -46616,7 +46620,7 @@ if i32.const 0 i32.const 32 - i32.const 3074 + i32.const 3072 i32.const 0 call $~lib/builtins/abort unreachable @@ -46631,7 +46635,7 @@ if i32.const 0 i32.const 32 - i32.const 3075 + i32.const 3073 i32.const 0 call $~lib/builtins/abort unreachable @@ -46646,7 +46650,7 @@ if i32.const 0 i32.const 32 - i32.const 3076 + i32.const 3074 i32.const 0 call $~lib/builtins/abort unreachable @@ -46661,7 +46665,7 @@ if i32.const 0 i32.const 32 - i32.const 3077 + i32.const 3075 i32.const 0 call $~lib/builtins/abort unreachable @@ -46676,7 +46680,7 @@ if i32.const 0 i32.const 32 - i32.const 3078 + i32.const 3076 i32.const 0 call $~lib/builtins/abort unreachable @@ -46691,7 +46695,7 @@ if i32.const 0 i32.const 32 - i32.const 3079 + i32.const 3077 i32.const 0 call $~lib/builtins/abort unreachable @@ -46706,7 +46710,7 @@ if i32.const 0 i32.const 32 - i32.const 3080 + i32.const 3078 i32.const 0 call $~lib/builtins/abort unreachable @@ -46721,7 +46725,7 @@ if i32.const 0 i32.const 32 - i32.const 3081 + i32.const 3079 i32.const 0 call $~lib/builtins/abort unreachable @@ -46736,7 +46740,7 @@ if i32.const 0 i32.const 32 - i32.const 3082 + i32.const 3080 i32.const 0 call $~lib/builtins/abort unreachable @@ -46751,7 +46755,7 @@ if i32.const 0 i32.const 32 - i32.const 3083 + i32.const 3081 i32.const 0 call $~lib/builtins/abort unreachable @@ -46766,7 +46770,7 @@ if i32.const 0 i32.const 32 - i32.const 3084 + i32.const 3082 i32.const 0 call $~lib/builtins/abort unreachable @@ -46781,7 +46785,7 @@ if i32.const 0 i32.const 32 - i32.const 3085 + i32.const 3083 i32.const 0 call $~lib/builtins/abort unreachable @@ -46796,7 +46800,7 @@ if i32.const 0 i32.const 32 - i32.const 3086 + i32.const 3084 i32.const 0 call $~lib/builtins/abort unreachable @@ -46811,7 +46815,7 @@ if i32.const 0 i32.const 32 - i32.const 3087 + i32.const 3085 i32.const 0 call $~lib/builtins/abort unreachable @@ -46826,7 +46830,7 @@ if i32.const 0 i32.const 32 - i32.const 3096 + i32.const 3094 i32.const 0 call $~lib/builtins/abort unreachable @@ -46841,7 +46845,7 @@ if i32.const 0 i32.const 32 - i32.const 3097 + i32.const 3095 i32.const 0 call $~lib/builtins/abort unreachable @@ -46856,7 +46860,7 @@ if i32.const 0 i32.const 32 - i32.const 3098 + i32.const 3096 i32.const 0 call $~lib/builtins/abort unreachable @@ -46871,7 +46875,7 @@ if i32.const 0 i32.const 32 - i32.const 3099 + i32.const 3097 i32.const 0 call $~lib/builtins/abort unreachable @@ -46886,7 +46890,7 @@ if i32.const 0 i32.const 32 - i32.const 3100 + i32.const 3098 i32.const 0 call $~lib/builtins/abort unreachable @@ -46901,7 +46905,7 @@ if i32.const 0 i32.const 32 - i32.const 3101 + i32.const 3099 i32.const 0 call $~lib/builtins/abort unreachable @@ -46916,7 +46920,7 @@ if i32.const 0 i32.const 32 - i32.const 3102 + i32.const 3100 i32.const 0 call $~lib/builtins/abort unreachable @@ -46931,7 +46935,7 @@ if i32.const 0 i32.const 32 - i32.const 3103 + i32.const 3101 i32.const 0 call $~lib/builtins/abort unreachable @@ -46946,7 +46950,7 @@ if i32.const 0 i32.const 32 - i32.const 3104 + i32.const 3102 i32.const 0 call $~lib/builtins/abort unreachable @@ -46961,7 +46965,7 @@ if i32.const 0 i32.const 32 - i32.const 3105 + i32.const 3103 i32.const 0 call $~lib/builtins/abort unreachable @@ -46976,7 +46980,7 @@ if i32.const 0 i32.const 32 - i32.const 3108 + i32.const 3106 i32.const 0 call $~lib/builtins/abort unreachable @@ -46991,7 +46995,7 @@ if i32.const 0 i32.const 32 - i32.const 3109 + i32.const 3107 i32.const 0 call $~lib/builtins/abort unreachable @@ -47006,7 +47010,7 @@ if i32.const 0 i32.const 32 - i32.const 3110 + i32.const 3108 i32.const 0 call $~lib/builtins/abort unreachable @@ -47021,7 +47025,7 @@ if i32.const 0 i32.const 32 - i32.const 3111 + i32.const 3109 i32.const 0 call $~lib/builtins/abort unreachable @@ -47036,7 +47040,7 @@ if i32.const 0 i32.const 32 - i32.const 3112 + i32.const 3110 i32.const 0 call $~lib/builtins/abort unreachable @@ -47051,7 +47055,7 @@ if i32.const 0 i32.const 32 - i32.const 3113 + i32.const 3111 i32.const 0 call $~lib/builtins/abort unreachable @@ -47066,7 +47070,7 @@ if i32.const 0 i32.const 32 - i32.const 3114 + i32.const 3112 i32.const 0 call $~lib/builtins/abort unreachable @@ -47081,7 +47085,7 @@ if i32.const 0 i32.const 32 - i32.const 3115 + i32.const 3113 i32.const 0 call $~lib/builtins/abort unreachable @@ -47096,7 +47100,7 @@ if i32.const 0 i32.const 32 - i32.const 3116 + i32.const 3114 i32.const 0 call $~lib/builtins/abort unreachable @@ -47111,7 +47115,7 @@ if i32.const 0 i32.const 32 - i32.const 3117 + i32.const 3115 i32.const 0 call $~lib/builtins/abort unreachable @@ -47126,7 +47130,7 @@ if i32.const 0 i32.const 32 - i32.const 3118 + i32.const 3116 i32.const 0 call $~lib/builtins/abort unreachable @@ -47141,7 +47145,7 @@ if i32.const 0 i32.const 32 - i32.const 3119 + i32.const 3117 i32.const 0 call $~lib/builtins/abort unreachable @@ -47156,7 +47160,7 @@ if i32.const 0 i32.const 32 - i32.const 3120 + i32.const 3118 i32.const 0 call $~lib/builtins/abort unreachable @@ -47171,7 +47175,7 @@ if i32.const 0 i32.const 32 - i32.const 3121 + i32.const 3119 i32.const 0 call $~lib/builtins/abort unreachable @@ -47186,7 +47190,7 @@ if i32.const 0 i32.const 32 - i32.const 3122 + i32.const 3120 i32.const 0 call $~lib/builtins/abort unreachable @@ -47201,7 +47205,7 @@ if i32.const 0 i32.const 32 - i32.const 3123 + i32.const 3121 i32.const 0 call $~lib/builtins/abort unreachable @@ -47216,7 +47220,7 @@ if i32.const 0 i32.const 32 - i32.const 3124 + i32.const 3122 i32.const 0 call $~lib/builtins/abort unreachable @@ -47231,7 +47235,7 @@ if i32.const 0 i32.const 32 - i32.const 3125 + i32.const 3123 i32.const 0 call $~lib/builtins/abort unreachable @@ -47246,7 +47250,7 @@ if i32.const 0 i32.const 32 - i32.const 3126 + i32.const 3124 i32.const 0 call $~lib/builtins/abort unreachable @@ -47261,7 +47265,7 @@ if i32.const 0 i32.const 32 - i32.const 3127 + i32.const 3125 i32.const 0 call $~lib/builtins/abort unreachable @@ -47276,7 +47280,7 @@ if i32.const 0 i32.const 32 - i32.const 3128 + i32.const 3126 i32.const 0 call $~lib/builtins/abort unreachable @@ -47291,7 +47295,7 @@ if i32.const 0 i32.const 32 - i32.const 3129 + i32.const 3127 i32.const 0 call $~lib/builtins/abort unreachable @@ -47306,7 +47310,7 @@ if i32.const 0 i32.const 32 - i32.const 3130 + i32.const 3128 i32.const 0 call $~lib/builtins/abort unreachable @@ -47321,7 +47325,7 @@ if i32.const 0 i32.const 32 - i32.const 3131 + i32.const 3129 i32.const 0 call $~lib/builtins/abort unreachable @@ -47336,7 +47340,7 @@ if i32.const 0 i32.const 32 - i32.const 3132 + i32.const 3130 i32.const 0 call $~lib/builtins/abort unreachable @@ -47351,7 +47355,7 @@ if i32.const 0 i32.const 32 - i32.const 3133 + i32.const 3131 i32.const 0 call $~lib/builtins/abort unreachable @@ -47366,7 +47370,7 @@ if i32.const 0 i32.const 32 - i32.const 3134 + i32.const 3132 i32.const 0 call $~lib/builtins/abort unreachable @@ -47381,7 +47385,7 @@ if i32.const 0 i32.const 32 - i32.const 3135 + i32.const 3133 i32.const 0 call $~lib/builtins/abort unreachable @@ -47396,7 +47400,7 @@ if i32.const 0 i32.const 32 - i32.const 3136 + i32.const 3134 i32.const 0 call $~lib/builtins/abort unreachable @@ -47411,7 +47415,7 @@ if i32.const 0 i32.const 32 - i32.const 3137 + i32.const 3135 i32.const 0 call $~lib/builtins/abort unreachable @@ -47426,7 +47430,7 @@ if i32.const 0 i32.const 32 - i32.const 3138 + i32.const 3136 i32.const 0 call $~lib/builtins/abort unreachable @@ -47441,7 +47445,7 @@ if i32.const 0 i32.const 32 - i32.const 3139 + i32.const 3137 i32.const 0 call $~lib/builtins/abort unreachable @@ -47456,7 +47460,7 @@ if i32.const 0 i32.const 32 - i32.const 3140 + i32.const 3138 i32.const 0 call $~lib/builtins/abort unreachable @@ -47471,7 +47475,7 @@ if i32.const 0 i32.const 32 - i32.const 3141 + i32.const 3139 i32.const 0 call $~lib/builtins/abort unreachable @@ -47486,7 +47490,7 @@ if i32.const 0 i32.const 32 - i32.const 3142 + i32.const 3140 i32.const 0 call $~lib/builtins/abort unreachable @@ -47501,7 +47505,7 @@ if i32.const 0 i32.const 32 - i32.const 3143 + i32.const 3141 i32.const 0 call $~lib/builtins/abort unreachable @@ -47516,7 +47520,7 @@ if i32.const 0 i32.const 32 - i32.const 3144 + i32.const 3142 i32.const 0 call $~lib/builtins/abort unreachable @@ -47531,7 +47535,7 @@ if i32.const 0 i32.const 32 - i32.const 3145 + i32.const 3143 i32.const 0 call $~lib/builtins/abort unreachable @@ -47546,7 +47550,7 @@ if i32.const 0 i32.const 32 - i32.const 3146 + i32.const 3144 i32.const 0 call $~lib/builtins/abort unreachable @@ -47561,7 +47565,7 @@ if i32.const 0 i32.const 32 - i32.const 3147 + i32.const 3145 i32.const 0 call $~lib/builtins/abort unreachable @@ -47576,7 +47580,7 @@ if i32.const 0 i32.const 32 - i32.const 3148 + i32.const 3146 i32.const 0 call $~lib/builtins/abort unreachable @@ -47591,7 +47595,7 @@ if i32.const 0 i32.const 32 - i32.const 3149 + i32.const 3147 i32.const 0 call $~lib/builtins/abort unreachable @@ -47606,7 +47610,7 @@ if i32.const 0 i32.const 32 - i32.const 3150 + i32.const 3148 i32.const 0 call $~lib/builtins/abort unreachable @@ -47621,7 +47625,7 @@ if i32.const 0 i32.const 32 - i32.const 3151 + i32.const 3149 i32.const 0 call $~lib/builtins/abort unreachable @@ -47636,7 +47640,7 @@ if i32.const 0 i32.const 32 - i32.const 3152 + i32.const 3150 i32.const 0 call $~lib/builtins/abort unreachable @@ -47651,7 +47655,7 @@ if i32.const 0 i32.const 32 - i32.const 3153 + i32.const 3151 i32.const 0 call $~lib/builtins/abort unreachable @@ -47666,7 +47670,7 @@ if i32.const 0 i32.const 32 - i32.const 3154 + i32.const 3152 i32.const 0 call $~lib/builtins/abort unreachable @@ -47681,7 +47685,7 @@ if i32.const 0 i32.const 32 - i32.const 3155 + i32.const 3153 i32.const 0 call $~lib/builtins/abort unreachable @@ -47696,7 +47700,7 @@ if i32.const 0 i32.const 32 - i32.const 3156 + i32.const 3154 i32.const 0 call $~lib/builtins/abort unreachable @@ -47711,7 +47715,7 @@ if i32.const 0 i32.const 32 - i32.const 3157 + i32.const 3155 i32.const 0 call $~lib/builtins/abort unreachable @@ -47726,7 +47730,7 @@ if i32.const 0 i32.const 32 - i32.const 3158 + i32.const 3156 i32.const 0 call $~lib/builtins/abort unreachable @@ -47741,7 +47745,7 @@ if i32.const 0 i32.const 32 - i32.const 3159 + i32.const 3157 i32.const 0 call $~lib/builtins/abort unreachable @@ -47756,7 +47760,7 @@ if i32.const 0 i32.const 32 - i32.const 3160 + i32.const 3158 i32.const 0 call $~lib/builtins/abort unreachable @@ -47771,7 +47775,7 @@ if i32.const 0 i32.const 32 - i32.const 3161 + i32.const 3159 i32.const 0 call $~lib/builtins/abort unreachable @@ -47786,7 +47790,7 @@ if i32.const 0 i32.const 32 - i32.const 3162 + i32.const 3160 i32.const 0 call $~lib/builtins/abort unreachable @@ -47801,7 +47805,7 @@ if i32.const 0 i32.const 32 - i32.const 3163 + i32.const 3161 i32.const 0 call $~lib/builtins/abort unreachable @@ -47816,7 +47820,7 @@ if i32.const 0 i32.const 32 - i32.const 3164 + i32.const 3162 i32.const 0 call $~lib/builtins/abort unreachable @@ -47831,7 +47835,7 @@ if i32.const 0 i32.const 32 - i32.const 3165 + i32.const 3163 i32.const 0 call $~lib/builtins/abort unreachable @@ -47846,7 +47850,7 @@ if i32.const 0 i32.const 32 - i32.const 3166 + i32.const 3164 i32.const 0 call $~lib/builtins/abort unreachable @@ -47861,7 +47865,7 @@ if i32.const 0 i32.const 32 - i32.const 3167 + i32.const 3165 i32.const 0 call $~lib/builtins/abort unreachable @@ -47876,7 +47880,7 @@ if i32.const 0 i32.const 32 - i32.const 3168 + i32.const 3166 i32.const 0 call $~lib/builtins/abort unreachable @@ -47891,7 +47895,7 @@ if i32.const 0 i32.const 32 - i32.const 3169 + i32.const 3167 i32.const 0 call $~lib/builtins/abort unreachable @@ -47906,7 +47910,7 @@ if i32.const 0 i32.const 32 - i32.const 3170 + i32.const 3168 i32.const 0 call $~lib/builtins/abort unreachable @@ -47921,7 +47925,7 @@ if i32.const 0 i32.const 32 - i32.const 3171 + i32.const 3169 i32.const 0 call $~lib/builtins/abort unreachable @@ -47936,7 +47940,7 @@ if i32.const 0 i32.const 32 - i32.const 3172 + i32.const 3170 i32.const 0 call $~lib/builtins/abort unreachable @@ -47951,7 +47955,7 @@ if i32.const 0 i32.const 32 - i32.const 3173 + i32.const 3171 i32.const 0 call $~lib/builtins/abort unreachable @@ -47966,7 +47970,7 @@ if i32.const 0 i32.const 32 - i32.const 3174 + i32.const 3172 i32.const 0 call $~lib/builtins/abort unreachable @@ -47980,7 +47984,7 @@ if i32.const 0 i32.const 32 - i32.const 3186 + i32.const 3184 i32.const 0 call $~lib/builtins/abort unreachable @@ -47994,7 +47998,7 @@ if i32.const 0 i32.const 32 - i32.const 3187 + i32.const 3185 i32.const 0 call $~lib/builtins/abort unreachable @@ -48008,7 +48012,7 @@ if i32.const 0 i32.const 32 - i32.const 3188 + i32.const 3186 i32.const 0 call $~lib/builtins/abort unreachable @@ -48022,7 +48026,7 @@ if i32.const 0 i32.const 32 - i32.const 3189 + i32.const 3187 i32.const 0 call $~lib/builtins/abort unreachable @@ -48036,7 +48040,7 @@ if i32.const 0 i32.const 32 - i32.const 3190 + i32.const 3188 i32.const 0 call $~lib/builtins/abort unreachable @@ -48050,7 +48054,7 @@ if i32.const 0 i32.const 32 - i32.const 3191 + i32.const 3189 i32.const 0 call $~lib/builtins/abort unreachable @@ -48064,7 +48068,7 @@ if i32.const 0 i32.const 32 - i32.const 3192 + i32.const 3190 i32.const 0 call $~lib/builtins/abort unreachable @@ -48078,7 +48082,7 @@ if i32.const 0 i32.const 32 - i32.const 3193 + i32.const 3191 i32.const 0 call $~lib/builtins/abort unreachable @@ -48092,7 +48096,7 @@ if i32.const 0 i32.const 32 - i32.const 3194 + i32.const 3192 i32.const 0 call $~lib/builtins/abort unreachable @@ -48106,7 +48110,7 @@ if i32.const 0 i32.const 32 - i32.const 3195 + i32.const 3193 i32.const 0 call $~lib/builtins/abort unreachable @@ -48120,7 +48124,7 @@ if i32.const 0 i32.const 32 - i32.const 3198 + i32.const 3196 i32.const 0 call $~lib/builtins/abort unreachable @@ -48134,7 +48138,7 @@ if i32.const 0 i32.const 32 - i32.const 3199 + i32.const 3197 i32.const 0 call $~lib/builtins/abort unreachable @@ -48148,7 +48152,7 @@ if i32.const 0 i32.const 32 - i32.const 3200 + i32.const 3198 i32.const 0 call $~lib/builtins/abort unreachable @@ -48162,7 +48166,7 @@ if i32.const 0 i32.const 32 - i32.const 3201 + i32.const 3199 i32.const 0 call $~lib/builtins/abort unreachable @@ -48176,7 +48180,7 @@ if i32.const 0 i32.const 32 - i32.const 3202 + i32.const 3200 i32.const 0 call $~lib/builtins/abort unreachable @@ -48190,7 +48194,7 @@ if i32.const 0 i32.const 32 - i32.const 3203 + i32.const 3201 i32.const 0 call $~lib/builtins/abort unreachable @@ -48204,7 +48208,7 @@ if i32.const 0 i32.const 32 - i32.const 3204 + i32.const 3202 i32.const 0 call $~lib/builtins/abort unreachable @@ -48218,7 +48222,7 @@ if i32.const 0 i32.const 32 - i32.const 3205 + i32.const 3203 i32.const 0 call $~lib/builtins/abort unreachable @@ -48232,7 +48236,7 @@ if i32.const 0 i32.const 32 - i32.const 3206 + i32.const 3204 i32.const 0 call $~lib/builtins/abort unreachable @@ -48246,7 +48250,7 @@ if i32.const 0 i32.const 32 - i32.const 3207 + i32.const 3205 i32.const 0 call $~lib/builtins/abort unreachable @@ -48260,7 +48264,7 @@ if i32.const 0 i32.const 32 - i32.const 3208 + i32.const 3206 i32.const 0 call $~lib/builtins/abort unreachable @@ -48274,7 +48278,7 @@ if i32.const 0 i32.const 32 - i32.const 3209 + i32.const 3207 i32.const 0 call $~lib/builtins/abort unreachable @@ -48288,7 +48292,7 @@ if i32.const 0 i32.const 32 - i32.const 3210 + i32.const 3208 i32.const 0 call $~lib/builtins/abort unreachable @@ -48302,7 +48306,7 @@ if i32.const 0 i32.const 32 - i32.const 3211 + i32.const 3209 i32.const 0 call $~lib/builtins/abort unreachable @@ -48316,7 +48320,7 @@ if i32.const 0 i32.const 32 - i32.const 3212 + i32.const 3210 i32.const 0 call $~lib/builtins/abort unreachable @@ -48330,7 +48334,7 @@ if i32.const 0 i32.const 32 - i32.const 3213 + i32.const 3211 i32.const 0 call $~lib/builtins/abort unreachable @@ -48344,7 +48348,7 @@ if i32.const 0 i32.const 32 - i32.const 3214 + i32.const 3212 i32.const 0 call $~lib/builtins/abort unreachable @@ -48358,7 +48362,7 @@ if i32.const 0 i32.const 32 - i32.const 3215 + i32.const 3213 i32.const 0 call $~lib/builtins/abort unreachable @@ -48372,7 +48376,7 @@ if i32.const 0 i32.const 32 - i32.const 3216 + i32.const 3214 i32.const 0 call $~lib/builtins/abort unreachable @@ -48386,7 +48390,7 @@ if i32.const 0 i32.const 32 - i32.const 3217 + i32.const 3215 i32.const 0 call $~lib/builtins/abort unreachable @@ -48400,7 +48404,7 @@ if i32.const 0 i32.const 32 - i32.const 3218 + i32.const 3216 i32.const 0 call $~lib/builtins/abort unreachable @@ -48414,7 +48418,7 @@ if i32.const 0 i32.const 32 - i32.const 3219 + i32.const 3217 i32.const 0 call $~lib/builtins/abort unreachable @@ -48428,7 +48432,7 @@ if i32.const 0 i32.const 32 - i32.const 3220 + i32.const 3218 i32.const 0 call $~lib/builtins/abort unreachable @@ -48442,7 +48446,7 @@ if i32.const 0 i32.const 32 - i32.const 3221 + i32.const 3219 i32.const 0 call $~lib/builtins/abort unreachable @@ -48456,7 +48460,7 @@ if i32.const 0 i32.const 32 - i32.const 3222 + i32.const 3220 i32.const 0 call $~lib/builtins/abort unreachable @@ -48470,7 +48474,7 @@ if i32.const 0 i32.const 32 - i32.const 3223 + i32.const 3221 i32.const 0 call $~lib/builtins/abort unreachable @@ -48484,7 +48488,7 @@ if i32.const 0 i32.const 32 - i32.const 3224 + i32.const 3222 i32.const 0 call $~lib/builtins/abort unreachable @@ -48498,7 +48502,7 @@ if i32.const 0 i32.const 32 - i32.const 3225 + i32.const 3223 i32.const 0 call $~lib/builtins/abort unreachable @@ -48512,7 +48516,7 @@ if i32.const 0 i32.const 32 - i32.const 3226 + i32.const 3224 i32.const 0 call $~lib/builtins/abort unreachable @@ -48526,7 +48530,7 @@ if i32.const 0 i32.const 32 - i32.const 3227 + i32.const 3225 i32.const 0 call $~lib/builtins/abort unreachable @@ -48540,7 +48544,7 @@ if i32.const 0 i32.const 32 - i32.const 3228 + i32.const 3226 i32.const 0 call $~lib/builtins/abort unreachable @@ -48554,7 +48558,7 @@ if i32.const 0 i32.const 32 - i32.const 3229 + i32.const 3227 i32.const 0 call $~lib/builtins/abort unreachable @@ -48568,7 +48572,7 @@ if i32.const 0 i32.const 32 - i32.const 3230 + i32.const 3228 i32.const 0 call $~lib/builtins/abort unreachable @@ -48582,7 +48586,7 @@ if i32.const 0 i32.const 32 - i32.const 3231 + i32.const 3229 i32.const 0 call $~lib/builtins/abort unreachable @@ -48596,7 +48600,7 @@ if i32.const 0 i32.const 32 - i32.const 3232 + i32.const 3230 i32.const 0 call $~lib/builtins/abort unreachable @@ -48610,7 +48614,7 @@ if i32.const 0 i32.const 32 - i32.const 3233 + i32.const 3231 i32.const 0 call $~lib/builtins/abort unreachable @@ -48624,7 +48628,7 @@ if i32.const 0 i32.const 32 - i32.const 3234 + i32.const 3232 i32.const 0 call $~lib/builtins/abort unreachable @@ -48638,7 +48642,7 @@ if i32.const 0 i32.const 32 - i32.const 3237 + i32.const 3235 i32.const 0 call $~lib/builtins/abort unreachable @@ -48652,7 +48656,7 @@ if i32.const 0 i32.const 32 - i32.const 3238 + i32.const 3236 i32.const 0 call $~lib/builtins/abort unreachable @@ -48666,7 +48670,7 @@ if i32.const 0 i32.const 32 - i32.const 3239 + i32.const 3237 i32.const 0 call $~lib/builtins/abort unreachable @@ -48680,7 +48684,7 @@ if i32.const 0 i32.const 32 - i32.const 3240 + i32.const 3238 i32.const 0 call $~lib/builtins/abort unreachable @@ -48694,7 +48698,7 @@ if i32.const 0 i32.const 32 - i32.const 3241 + i32.const 3239 i32.const 0 call $~lib/builtins/abort unreachable @@ -48708,7 +48712,7 @@ if i32.const 0 i32.const 32 - i32.const 3244 + i32.const 3242 i32.const 0 call $~lib/builtins/abort unreachable @@ -48722,7 +48726,7 @@ if i32.const 0 i32.const 32 - i32.const 3245 + i32.const 3243 i32.const 0 call $~lib/builtins/abort unreachable @@ -48735,7 +48739,7 @@ if i32.const 0 i32.const 32 - i32.const 3248 + i32.const 3246 i32.const 0 call $~lib/builtins/abort unreachable @@ -48748,7 +48752,7 @@ if i32.const 0 i32.const 32 - i32.const 3249 + i32.const 3247 i32.const 0 call $~lib/builtins/abort unreachable @@ -48761,7 +48765,7 @@ if i32.const 0 i32.const 32 - i32.const 3251 + i32.const 3249 i32.const 0 call $~lib/builtins/abort unreachable @@ -48774,7 +48778,7 @@ if i32.const 0 i32.const 32 - i32.const 3252 + i32.const 3250 i32.const 0 call $~lib/builtins/abort unreachable @@ -48787,7 +48791,7 @@ if i32.const 0 i32.const 32 - i32.const 3255 + i32.const 3253 i32.const 0 call $~lib/builtins/abort unreachable @@ -48800,7 +48804,7 @@ if i32.const 0 i32.const 32 - i32.const 3256 + i32.const 3254 i32.const 0 call $~lib/builtins/abort unreachable @@ -48813,7 +48817,7 @@ if i32.const 0 i32.const 32 - i32.const 3257 + i32.const 3255 i32.const 0 call $~lib/builtins/abort unreachable @@ -48826,7 +48830,7 @@ if i32.const 0 i32.const 32 - i32.const 3258 + i32.const 3256 i32.const 0 call $~lib/builtins/abort unreachable @@ -48839,7 +48843,7 @@ if i32.const 0 i32.const 32 - i32.const 3260 + i32.const 3258 i32.const 0 call $~lib/builtins/abort unreachable @@ -48852,7 +48856,7 @@ if i32.const 0 i32.const 32 - i32.const 3261 + i32.const 3259 i32.const 0 call $~lib/builtins/abort unreachable @@ -48865,7 +48869,7 @@ if i32.const 0 i32.const 32 - i32.const 3263 + i32.const 3261 i32.const 0 call $~lib/builtins/abort unreachable @@ -48878,7 +48882,7 @@ if i32.const 0 i32.const 32 - i32.const 3264 + i32.const 3262 i32.const 0 call $~lib/builtins/abort unreachable @@ -48891,7 +48895,7 @@ if i32.const 0 i32.const 32 - i32.const 3265 + i32.const 3263 i32.const 0 call $~lib/builtins/abort unreachable @@ -48904,7 +48908,7 @@ if i32.const 0 i32.const 32 - i32.const 3266 + i32.const 3264 i32.const 0 call $~lib/builtins/abort unreachable @@ -48917,7 +48921,7 @@ if i32.const 0 i32.const 32 - i32.const 3267 + i32.const 3265 i32.const 0 call $~lib/builtins/abort unreachable @@ -48930,7 +48934,7 @@ if i32.const 0 i32.const 32 - i32.const 3270 + i32.const 3268 i32.const 0 call $~lib/builtins/abort unreachable @@ -48943,7 +48947,7 @@ if i32.const 0 i32.const 32 - i32.const 3271 + i32.const 3269 i32.const 0 call $~lib/builtins/abort unreachable @@ -48957,7 +48961,7 @@ if i32.const 0 i32.const 32 - i32.const 3280 + i32.const 3278 i32.const 0 call $~lib/builtins/abort unreachable @@ -48971,7 +48975,7 @@ if i32.const 0 i32.const 32 - i32.const 3281 + i32.const 3279 i32.const 0 call $~lib/builtins/abort unreachable @@ -48985,7 +48989,7 @@ if i32.const 0 i32.const 32 - i32.const 3282 + i32.const 3280 i32.const 0 call $~lib/builtins/abort unreachable @@ -48999,7 +49003,7 @@ if i32.const 0 i32.const 32 - i32.const 3283 + i32.const 3281 i32.const 0 call $~lib/builtins/abort unreachable @@ -49013,7 +49017,7 @@ if i32.const 0 i32.const 32 - i32.const 3284 + i32.const 3282 i32.const 0 call $~lib/builtins/abort unreachable @@ -49027,7 +49031,7 @@ if i32.const 0 i32.const 32 - i32.const 3285 + i32.const 3283 i32.const 0 call $~lib/builtins/abort unreachable @@ -49041,7 +49045,7 @@ if i32.const 0 i32.const 32 - i32.const 3286 + i32.const 3284 i32.const 0 call $~lib/builtins/abort unreachable @@ -49055,7 +49059,7 @@ if i32.const 0 i32.const 32 - i32.const 3287 + i32.const 3285 i32.const 0 call $~lib/builtins/abort unreachable @@ -49069,7 +49073,7 @@ if i32.const 0 i32.const 32 - i32.const 3288 + i32.const 3286 i32.const 0 call $~lib/builtins/abort unreachable @@ -49083,7 +49087,7 @@ if i32.const 0 i32.const 32 - i32.const 3289 + i32.const 3287 i32.const 0 call $~lib/builtins/abort unreachable @@ -49097,7 +49101,7 @@ if i32.const 0 i32.const 32 - i32.const 3292 + i32.const 3290 i32.const 0 call $~lib/builtins/abort unreachable @@ -49111,7 +49115,7 @@ if i32.const 0 i32.const 32 - i32.const 3293 + i32.const 3291 i32.const 0 call $~lib/builtins/abort unreachable @@ -49125,7 +49129,7 @@ if i32.const 0 i32.const 32 - i32.const 3294 + i32.const 3292 i32.const 0 call $~lib/builtins/abort unreachable @@ -49139,7 +49143,7 @@ if i32.const 0 i32.const 32 - i32.const 3295 + i32.const 3293 i32.const 0 call $~lib/builtins/abort unreachable @@ -49153,7 +49157,7 @@ if i32.const 0 i32.const 32 - i32.const 3296 + i32.const 3294 i32.const 0 call $~lib/builtins/abort unreachable @@ -49167,7 +49171,7 @@ if i32.const 0 i32.const 32 - i32.const 3299 + i32.const 3297 i32.const 0 call $~lib/builtins/abort unreachable @@ -49181,7 +49185,7 @@ if i32.const 0 i32.const 32 - i32.const 3300 + i32.const 3298 i32.const 0 call $~lib/builtins/abort unreachable @@ -49195,7 +49199,7 @@ if i32.const 0 i32.const 32 - i32.const 3301 + i32.const 3299 i32.const 0 call $~lib/builtins/abort unreachable @@ -49209,7 +49213,7 @@ if i32.const 0 i32.const 32 - i32.const 3302 + i32.const 3300 i32.const 0 call $~lib/builtins/abort unreachable @@ -49223,7 +49227,7 @@ if i32.const 0 i32.const 32 - i32.const 3303 + i32.const 3301 i32.const 0 call $~lib/builtins/abort unreachable @@ -49237,7 +49241,7 @@ if i32.const 0 i32.const 32 - i32.const 3304 + i32.const 3302 i32.const 0 call $~lib/builtins/abort unreachable @@ -49251,7 +49255,7 @@ if i32.const 0 i32.const 32 - i32.const 3305 + i32.const 3303 i32.const 0 call $~lib/builtins/abort unreachable @@ -49265,7 +49269,7 @@ if i32.const 0 i32.const 32 - i32.const 3306 + i32.const 3304 i32.const 0 call $~lib/builtins/abort unreachable @@ -49279,7 +49283,7 @@ if i32.const 0 i32.const 32 - i32.const 3307 + i32.const 3305 i32.const 0 call $~lib/builtins/abort unreachable @@ -49293,7 +49297,7 @@ if i32.const 0 i32.const 32 - i32.const 3308 + i32.const 3306 i32.const 0 call $~lib/builtins/abort unreachable @@ -49307,7 +49311,7 @@ if i32.const 0 i32.const 32 - i32.const 3309 + i32.const 3307 i32.const 0 call $~lib/builtins/abort unreachable @@ -49321,7 +49325,7 @@ if i32.const 0 i32.const 32 - i32.const 3310 + i32.const 3308 i32.const 0 call $~lib/builtins/abort unreachable @@ -49335,7 +49339,7 @@ if i32.const 0 i32.const 32 - i32.const 3311 + i32.const 3309 i32.const 0 call $~lib/builtins/abort unreachable @@ -49349,7 +49353,7 @@ if i32.const 0 i32.const 32 - i32.const 3312 + i32.const 3310 i32.const 0 call $~lib/builtins/abort unreachable @@ -49363,7 +49367,7 @@ if i32.const 0 i32.const 32 - i32.const 3313 + i32.const 3311 i32.const 0 call $~lib/builtins/abort unreachable @@ -49377,7 +49381,7 @@ if i32.const 0 i32.const 32 - i32.const 3314 + i32.const 3312 i32.const 0 call $~lib/builtins/abort unreachable @@ -49391,7 +49395,7 @@ if i32.const 0 i32.const 32 - i32.const 3315 + i32.const 3313 i32.const 0 call $~lib/builtins/abort unreachable @@ -49405,7 +49409,7 @@ if i32.const 0 i32.const 32 - i32.const 3316 + i32.const 3314 i32.const 0 call $~lib/builtins/abort unreachable @@ -49419,7 +49423,7 @@ if i32.const 0 i32.const 32 - i32.const 3317 + i32.const 3315 i32.const 0 call $~lib/builtins/abort unreachable @@ -49433,7 +49437,7 @@ if i32.const 0 i32.const 32 - i32.const 3318 + i32.const 3316 i32.const 0 call $~lib/builtins/abort unreachable @@ -49447,7 +49451,7 @@ if i32.const 0 i32.const 32 - i32.const 3319 + i32.const 3317 i32.const 0 call $~lib/builtins/abort unreachable @@ -49461,7 +49465,7 @@ if i32.const 0 i32.const 32 - i32.const 3320 + i32.const 3318 i32.const 0 call $~lib/builtins/abort unreachable @@ -49475,7 +49479,7 @@ if i32.const 0 i32.const 32 - i32.const 3321 + i32.const 3319 i32.const 0 call $~lib/builtins/abort unreachable @@ -49489,7 +49493,7 @@ if i32.const 0 i32.const 32 - i32.const 3322 + i32.const 3320 i32.const 0 call $~lib/builtins/abort unreachable @@ -49503,7 +49507,7 @@ if i32.const 0 i32.const 32 - i32.const 3323 + i32.const 3321 i32.const 0 call $~lib/builtins/abort unreachable @@ -49517,7 +49521,7 @@ if i32.const 0 i32.const 32 - i32.const 3324 + i32.const 3322 i32.const 0 call $~lib/builtins/abort unreachable @@ -49531,7 +49535,7 @@ if i32.const 0 i32.const 32 - i32.const 3325 + i32.const 3323 i32.const 0 call $~lib/builtins/abort unreachable @@ -49545,7 +49549,7 @@ if i32.const 0 i32.const 32 - i32.const 3326 + i32.const 3324 i32.const 0 call $~lib/builtins/abort unreachable @@ -49559,7 +49563,7 @@ if i32.const 0 i32.const 32 - i32.const 3327 + i32.const 3325 i32.const 0 call $~lib/builtins/abort unreachable @@ -49573,7 +49577,7 @@ if i32.const 0 i32.const 32 - i32.const 3328 + i32.const 3326 i32.const 0 call $~lib/builtins/abort unreachable @@ -49587,7 +49591,7 @@ if i32.const 0 i32.const 32 - i32.const 3329 + i32.const 3327 i32.const 0 call $~lib/builtins/abort unreachable @@ -49601,7 +49605,7 @@ if i32.const 0 i32.const 32 - i32.const 3330 + i32.const 3328 i32.const 0 call $~lib/builtins/abort unreachable @@ -49615,7 +49619,7 @@ if i32.const 0 i32.const 32 - i32.const 3331 + i32.const 3329 i32.const 0 call $~lib/builtins/abort unreachable @@ -49629,7 +49633,7 @@ if i32.const 0 i32.const 32 - i32.const 3332 + i32.const 3330 i32.const 0 call $~lib/builtins/abort unreachable @@ -49643,7 +49647,7 @@ if i32.const 0 i32.const 32 - i32.const 3333 + i32.const 3331 i32.const 0 call $~lib/builtins/abort unreachable @@ -49657,7 +49661,7 @@ if i32.const 0 i32.const 32 - i32.const 3334 + i32.const 3332 i32.const 0 call $~lib/builtins/abort unreachable @@ -49671,7 +49675,7 @@ if i32.const 0 i32.const 32 - i32.const 3335 + i32.const 3333 i32.const 0 call $~lib/builtins/abort unreachable @@ -49685,7 +49689,7 @@ if i32.const 0 i32.const 32 - i32.const 3336 + i32.const 3334 i32.const 0 call $~lib/builtins/abort unreachable @@ -49699,7 +49703,7 @@ if i32.const 0 i32.const 32 - i32.const 3339 + i32.const 3337 i32.const 0 call $~lib/builtins/abort unreachable @@ -49713,7 +49717,7 @@ if i32.const 0 i32.const 32 - i32.const 3340 + i32.const 3338 i32.const 0 call $~lib/builtins/abort unreachable @@ -49727,7 +49731,7 @@ if i32.const 0 i32.const 32 - i32.const 3341 + i32.const 3339 i32.const 0 call $~lib/builtins/abort unreachable @@ -49741,7 +49745,7 @@ if i32.const 0 i32.const 32 - i32.const 3342 + i32.const 3340 i32.const 0 call $~lib/builtins/abort unreachable @@ -49755,7 +49759,7 @@ if i32.const 0 i32.const 32 - i32.const 3343 + i32.const 3341 i32.const 0 call $~lib/builtins/abort unreachable @@ -49769,7 +49773,7 @@ if i32.const 0 i32.const 32 - i32.const 3344 + i32.const 3342 i32.const 0 call $~lib/builtins/abort unreachable @@ -49783,7 +49787,7 @@ if i32.const 0 i32.const 32 - i32.const 3345 + i32.const 3343 i32.const 0 call $~lib/builtins/abort unreachable @@ -49797,7 +49801,7 @@ if i32.const 0 i32.const 32 - i32.const 3346 + i32.const 3344 i32.const 0 call $~lib/builtins/abort unreachable @@ -49811,7 +49815,7 @@ if i32.const 0 i32.const 32 - i32.const 3347 + i32.const 3345 i32.const 0 call $~lib/builtins/abort unreachable @@ -49825,7 +49829,7 @@ if i32.const 0 i32.const 32 - i32.const 3348 + i32.const 3346 i32.const 0 call $~lib/builtins/abort unreachable @@ -49839,7 +49843,7 @@ if i32.const 0 i32.const 32 - i32.const 3349 + i32.const 3347 i32.const 0 call $~lib/builtins/abort unreachable @@ -49853,7 +49857,7 @@ if i32.const 0 i32.const 32 - i32.const 3350 + i32.const 3348 i32.const 0 call $~lib/builtins/abort unreachable @@ -49867,7 +49871,7 @@ if i32.const 0 i32.const 32 - i32.const 3351 + i32.const 3349 i32.const 0 call $~lib/builtins/abort unreachable @@ -49881,7 +49885,7 @@ if i32.const 0 i32.const 32 - i32.const 3352 + i32.const 3350 i32.const 0 call $~lib/builtins/abort unreachable @@ -49895,7 +49899,7 @@ if i32.const 0 i32.const 32 - i32.const 3364 + i32.const 3362 i32.const 0 call $~lib/builtins/abort unreachable @@ -49909,7 +49913,7 @@ if i32.const 0 i32.const 32 - i32.const 3365 + i32.const 3363 i32.const 0 call $~lib/builtins/abort unreachable @@ -49923,7 +49927,7 @@ if i32.const 0 i32.const 32 - i32.const 3366 + i32.const 3364 i32.const 0 call $~lib/builtins/abort unreachable @@ -49937,7 +49941,7 @@ if i32.const 0 i32.const 32 - i32.const 3367 + i32.const 3365 i32.const 0 call $~lib/builtins/abort unreachable @@ -49951,7 +49955,7 @@ if i32.const 0 i32.const 32 - i32.const 3368 + i32.const 3366 i32.const 0 call $~lib/builtins/abort unreachable @@ -49965,7 +49969,7 @@ if i32.const 0 i32.const 32 - i32.const 3369 + i32.const 3367 i32.const 0 call $~lib/builtins/abort unreachable @@ -49979,7 +49983,7 @@ if i32.const 0 i32.const 32 - i32.const 3370 + i32.const 3368 i32.const 0 call $~lib/builtins/abort unreachable @@ -49993,7 +49997,7 @@ if i32.const 0 i32.const 32 - i32.const 3371 + i32.const 3369 i32.const 0 call $~lib/builtins/abort unreachable @@ -50007,7 +50011,7 @@ if i32.const 0 i32.const 32 - i32.const 3372 + i32.const 3370 i32.const 0 call $~lib/builtins/abort unreachable @@ -50021,7 +50025,7 @@ if i32.const 0 i32.const 32 - i32.const 3373 + i32.const 3371 i32.const 0 call $~lib/builtins/abort unreachable @@ -50035,7 +50039,7 @@ if i32.const 0 i32.const 32 - i32.const 3376 + i32.const 3374 i32.const 0 call $~lib/builtins/abort unreachable @@ -50049,7 +50053,7 @@ if i32.const 0 i32.const 32 - i32.const 3377 + i32.const 3375 i32.const 0 call $~lib/builtins/abort unreachable @@ -50063,7 +50067,7 @@ if i32.const 0 i32.const 32 - i32.const 3378 + i32.const 3376 i32.const 0 call $~lib/builtins/abort unreachable @@ -50077,7 +50081,7 @@ if i32.const 0 i32.const 32 - i32.const 3379 + i32.const 3377 i32.const 0 call $~lib/builtins/abort unreachable @@ -50091,7 +50095,7 @@ if i32.const 0 i32.const 32 - i32.const 3380 + i32.const 3378 i32.const 0 call $~lib/builtins/abort unreachable @@ -50105,7 +50109,7 @@ if i32.const 0 i32.const 32 - i32.const 3389 + i32.const 3387 i32.const 0 call $~lib/builtins/abort unreachable @@ -50119,7 +50123,7 @@ if i32.const 0 i32.const 32 - i32.const 3390 + i32.const 3388 i32.const 0 call $~lib/builtins/abort unreachable @@ -50133,7 +50137,7 @@ if i32.const 0 i32.const 32 - i32.const 3391 + i32.const 3389 i32.const 0 call $~lib/builtins/abort unreachable @@ -50147,7 +50151,7 @@ if i32.const 0 i32.const 32 - i32.const 3392 + i32.const 3390 i32.const 0 call $~lib/builtins/abort unreachable @@ -50161,7 +50165,7 @@ if i32.const 0 i32.const 32 - i32.const 3393 + i32.const 3391 i32.const 0 call $~lib/builtins/abort unreachable @@ -50175,7 +50179,7 @@ if i32.const 0 i32.const 32 - i32.const 3394 + i32.const 3392 i32.const 0 call $~lib/builtins/abort unreachable @@ -50189,7 +50193,7 @@ if i32.const 0 i32.const 32 - i32.const 3395 + i32.const 3393 i32.const 0 call $~lib/builtins/abort unreachable @@ -50203,7 +50207,7 @@ if i32.const 0 i32.const 32 - i32.const 3396 + i32.const 3394 i32.const 0 call $~lib/builtins/abort unreachable @@ -50217,7 +50221,7 @@ if i32.const 0 i32.const 32 - i32.const 3397 + i32.const 3395 i32.const 0 call $~lib/builtins/abort unreachable @@ -50231,7 +50235,7 @@ if i32.const 0 i32.const 32 - i32.const 3398 + i32.const 3396 i32.const 0 call $~lib/builtins/abort unreachable @@ -50245,7 +50249,7 @@ if i32.const 0 i32.const 32 - i32.const 3401 + i32.const 3399 i32.const 0 call $~lib/builtins/abort unreachable @@ -50259,7 +50263,7 @@ if i32.const 0 i32.const 32 - i32.const 3402 + i32.const 3400 i32.const 0 call $~lib/builtins/abort unreachable @@ -50273,7 +50277,7 @@ if i32.const 0 i32.const 32 - i32.const 3403 + i32.const 3401 i32.const 0 call $~lib/builtins/abort unreachable @@ -50287,7 +50291,7 @@ if i32.const 0 i32.const 32 - i32.const 3404 + i32.const 3402 i32.const 0 call $~lib/builtins/abort unreachable @@ -50301,7 +50305,7 @@ if i32.const 0 i32.const 32 - i32.const 3405 + i32.const 3403 i32.const 0 call $~lib/builtins/abort unreachable @@ -50315,7 +50319,7 @@ if i32.const 0 i32.const 32 - i32.const 3417 + i32.const 3415 i32.const 0 call $~lib/builtins/abort unreachable @@ -50329,7 +50333,7 @@ if i32.const 0 i32.const 32 - i32.const 3418 + i32.const 3416 i32.const 0 call $~lib/builtins/abort unreachable @@ -50343,7 +50347,7 @@ if i32.const 0 i32.const 32 - i32.const 3419 + i32.const 3417 i32.const 0 call $~lib/builtins/abort unreachable @@ -50357,7 +50361,7 @@ if i32.const 0 i32.const 32 - i32.const 3420 + i32.const 3418 i32.const 0 call $~lib/builtins/abort unreachable @@ -50371,7 +50375,7 @@ if i32.const 0 i32.const 32 - i32.const 3421 + i32.const 3419 i32.const 0 call $~lib/builtins/abort unreachable @@ -50385,7 +50389,7 @@ if i32.const 0 i32.const 32 - i32.const 3422 + i32.const 3420 i32.const 0 call $~lib/builtins/abort unreachable @@ -50399,7 +50403,7 @@ if i32.const 0 i32.const 32 - i32.const 3423 + i32.const 3421 i32.const 0 call $~lib/builtins/abort unreachable @@ -50413,7 +50417,7 @@ if i32.const 0 i32.const 32 - i32.const 3424 + i32.const 3422 i32.const 0 call $~lib/builtins/abort unreachable @@ -50427,7 +50431,7 @@ if i32.const 0 i32.const 32 - i32.const 3425 + i32.const 3423 i32.const 0 call $~lib/builtins/abort unreachable @@ -50441,7 +50445,7 @@ if i32.const 0 i32.const 32 - i32.const 3426 + i32.const 3424 i32.const 0 call $~lib/builtins/abort unreachable @@ -50455,7 +50459,7 @@ if i32.const 0 i32.const 32 - i32.const 3429 + i32.const 3427 i32.const 0 call $~lib/builtins/abort unreachable @@ -50469,7 +50473,7 @@ if i32.const 0 i32.const 32 - i32.const 3430 + i32.const 3428 i32.const 0 call $~lib/builtins/abort unreachable @@ -50483,7 +50487,7 @@ if i32.const 0 i32.const 32 - i32.const 3431 + i32.const 3429 i32.const 0 call $~lib/builtins/abort unreachable @@ -50497,7 +50501,7 @@ if i32.const 0 i32.const 32 - i32.const 3432 + i32.const 3430 i32.const 0 call $~lib/builtins/abort unreachable @@ -50511,7 +50515,7 @@ if i32.const 0 i32.const 32 - i32.const 3433 + i32.const 3431 i32.const 0 call $~lib/builtins/abort unreachable @@ -50525,7 +50529,7 @@ if i32.const 0 i32.const 32 - i32.const 3434 + i32.const 3432 i32.const 0 call $~lib/builtins/abort unreachable @@ -50539,7 +50543,7 @@ if i32.const 0 i32.const 32 - i32.const 3435 + i32.const 3433 i32.const 0 call $~lib/builtins/abort unreachable @@ -50553,7 +50557,7 @@ if i32.const 0 i32.const 32 - i32.const 3436 + i32.const 3434 i32.const 0 call $~lib/builtins/abort unreachable @@ -50567,7 +50571,7 @@ if i32.const 0 i32.const 32 - i32.const 3437 + i32.const 3435 i32.const 0 call $~lib/builtins/abort unreachable @@ -50581,7 +50585,7 @@ if i32.const 0 i32.const 32 - i32.const 3438 + i32.const 3436 i32.const 0 call $~lib/builtins/abort unreachable @@ -50595,7 +50599,7 @@ if i32.const 0 i32.const 32 - i32.const 3439 + i32.const 3437 i32.const 0 call $~lib/builtins/abort unreachable @@ -50609,7 +50613,7 @@ if i32.const 0 i32.const 32 - i32.const 3440 + i32.const 3438 i32.const 0 call $~lib/builtins/abort unreachable @@ -50623,7 +50627,7 @@ if i32.const 0 i32.const 32 - i32.const 3441 + i32.const 3439 i32.const 0 call $~lib/builtins/abort unreachable @@ -50637,7 +50641,7 @@ if i32.const 0 i32.const 32 - i32.const 3442 + i32.const 3440 i32.const 0 call $~lib/builtins/abort unreachable @@ -50651,7 +50655,7 @@ if i32.const 0 i32.const 32 - i32.const 3443 + i32.const 3441 i32.const 0 call $~lib/builtins/abort unreachable @@ -50665,7 +50669,7 @@ if i32.const 0 i32.const 32 - i32.const 3444 + i32.const 3442 i32.const 0 call $~lib/builtins/abort unreachable @@ -50679,7 +50683,7 @@ if i32.const 0 i32.const 32 - i32.const 3445 + i32.const 3443 i32.const 0 call $~lib/builtins/abort unreachable @@ -50693,7 +50697,7 @@ if i32.const 0 i32.const 32 - i32.const 3446 + i32.const 3444 i32.const 0 call $~lib/builtins/abort unreachable @@ -50707,7 +50711,7 @@ if i32.const 0 i32.const 32 - i32.const 3447 + i32.const 3445 i32.const 0 call $~lib/builtins/abort unreachable @@ -50721,7 +50725,7 @@ if i32.const 0 i32.const 32 - i32.const 3448 + i32.const 3446 i32.const 0 call $~lib/builtins/abort unreachable @@ -50735,7 +50739,7 @@ if i32.const 0 i32.const 32 - i32.const 3449 + i32.const 3447 i32.const 0 call $~lib/builtins/abort unreachable @@ -50749,7 +50753,7 @@ if i32.const 0 i32.const 32 - i32.const 3450 + i32.const 3448 i32.const 0 call $~lib/builtins/abort unreachable @@ -50763,7 +50767,7 @@ if i32.const 0 i32.const 32 - i32.const 3451 + i32.const 3449 i32.const 0 call $~lib/builtins/abort unreachable @@ -50777,7 +50781,7 @@ if i32.const 0 i32.const 32 - i32.const 3452 + i32.const 3450 i32.const 0 call $~lib/builtins/abort unreachable @@ -50791,7 +50795,7 @@ if i32.const 0 i32.const 32 - i32.const 3453 + i32.const 3451 i32.const 0 call $~lib/builtins/abort unreachable @@ -50805,7 +50809,7 @@ if i32.const 0 i32.const 32 - i32.const 3454 + i32.const 3452 i32.const 0 call $~lib/builtins/abort unreachable @@ -50819,7 +50823,7 @@ if i32.const 0 i32.const 32 - i32.const 3455 + i32.const 3453 i32.const 0 call $~lib/builtins/abort unreachable @@ -50833,7 +50837,7 @@ if i32.const 0 i32.const 32 - i32.const 3456 + i32.const 3454 i32.const 0 call $~lib/builtins/abort unreachable @@ -50847,7 +50851,7 @@ if i32.const 0 i32.const 32 - i32.const 3457 + i32.const 3455 i32.const 0 call $~lib/builtins/abort unreachable @@ -50861,7 +50865,7 @@ if i32.const 0 i32.const 32 - i32.const 3458 + i32.const 3456 i32.const 0 call $~lib/builtins/abort unreachable @@ -50875,7 +50879,7 @@ if i32.const 0 i32.const 32 - i32.const 3459 + i32.const 3457 i32.const 0 call $~lib/builtins/abort unreachable @@ -50889,7 +50893,7 @@ if i32.const 0 i32.const 32 - i32.const 3460 + i32.const 3458 i32.const 0 call $~lib/builtins/abort unreachable @@ -50903,7 +50907,7 @@ if i32.const 0 i32.const 32 - i32.const 3461 + i32.const 3459 i32.const 0 call $~lib/builtins/abort unreachable @@ -50917,7 +50921,7 @@ if i32.const 0 i32.const 32 - i32.const 3462 + i32.const 3460 i32.const 0 call $~lib/builtins/abort unreachable @@ -50931,7 +50935,7 @@ if i32.const 0 i32.const 32 - i32.const 3463 + i32.const 3461 i32.const 0 call $~lib/builtins/abort unreachable @@ -50945,7 +50949,7 @@ if i32.const 0 i32.const 32 - i32.const 3464 + i32.const 3462 i32.const 0 call $~lib/builtins/abort unreachable @@ -50959,7 +50963,7 @@ if i32.const 0 i32.const 32 - i32.const 3465 + i32.const 3463 i32.const 0 call $~lib/builtins/abort unreachable @@ -50973,7 +50977,7 @@ if i32.const 0 i32.const 32 - i32.const 3466 + i32.const 3464 i32.const 0 call $~lib/builtins/abort unreachable @@ -50987,7 +50991,7 @@ if i32.const 0 i32.const 32 - i32.const 3467 + i32.const 3465 i32.const 0 call $~lib/builtins/abort unreachable @@ -51001,7 +51005,7 @@ if i32.const 0 i32.const 32 - i32.const 3468 + i32.const 3466 i32.const 0 call $~lib/builtins/abort unreachable @@ -51015,7 +51019,7 @@ if i32.const 0 i32.const 32 - i32.const 3469 + i32.const 3467 i32.const 0 call $~lib/builtins/abort unreachable @@ -51029,7 +51033,7 @@ if i32.const 0 i32.const 32 - i32.const 3470 + i32.const 3468 i32.const 0 call $~lib/builtins/abort unreachable @@ -51043,7 +51047,7 @@ if i32.const 0 i32.const 32 - i32.const 3471 + i32.const 3469 i32.const 0 call $~lib/builtins/abort unreachable @@ -51057,7 +51061,7 @@ if i32.const 0 i32.const 32 - i32.const 3472 + i32.const 3470 i32.const 0 call $~lib/builtins/abort unreachable @@ -51071,7 +51075,7 @@ if i32.const 0 i32.const 32 - i32.const 3473 + i32.const 3471 i32.const 0 call $~lib/builtins/abort unreachable @@ -51085,7 +51089,7 @@ if i32.const 0 i32.const 32 - i32.const 3474 + i32.const 3472 i32.const 0 call $~lib/builtins/abort unreachable @@ -51099,7 +51103,7 @@ if i32.const 0 i32.const 32 - i32.const 3475 + i32.const 3473 i32.const 0 call $~lib/builtins/abort unreachable @@ -51113,7 +51117,7 @@ if i32.const 0 i32.const 32 - i32.const 3476 + i32.const 3474 i32.const 0 call $~lib/builtins/abort unreachable @@ -51127,7 +51131,7 @@ if i32.const 0 i32.const 32 - i32.const 3477 + i32.const 3475 i32.const 0 call $~lib/builtins/abort unreachable @@ -51141,7 +51145,7 @@ if i32.const 0 i32.const 32 - i32.const 3478 + i32.const 3476 i32.const 0 call $~lib/builtins/abort unreachable @@ -51155,7 +51159,7 @@ if i32.const 0 i32.const 32 - i32.const 3479 + i32.const 3477 i32.const 0 call $~lib/builtins/abort unreachable @@ -51169,7 +51173,7 @@ if i32.const 0 i32.const 32 - i32.const 3480 + i32.const 3478 i32.const 0 call $~lib/builtins/abort unreachable @@ -51183,7 +51187,7 @@ if i32.const 0 i32.const 32 - i32.const 3481 + i32.const 3479 i32.const 0 call $~lib/builtins/abort unreachable @@ -51197,7 +51201,7 @@ if i32.const 0 i32.const 32 - i32.const 3482 + i32.const 3480 i32.const 0 call $~lib/builtins/abort unreachable @@ -51211,7 +51215,7 @@ if i32.const 0 i32.const 32 - i32.const 3483 + i32.const 3481 i32.const 0 call $~lib/builtins/abort unreachable @@ -51225,7 +51229,7 @@ if i32.const 0 i32.const 32 - i32.const 3484 + i32.const 3482 i32.const 0 call $~lib/builtins/abort unreachable @@ -51239,7 +51243,7 @@ if i32.const 0 i32.const 32 - i32.const 3485 + i32.const 3483 i32.const 0 call $~lib/builtins/abort unreachable @@ -51253,7 +51257,7 @@ if i32.const 0 i32.const 32 - i32.const 3486 + i32.const 3484 i32.const 0 call $~lib/builtins/abort unreachable @@ -51267,7 +51271,7 @@ if i32.const 0 i32.const 32 - i32.const 3487 + i32.const 3485 i32.const 0 call $~lib/builtins/abort unreachable @@ -51281,7 +51285,7 @@ if i32.const 0 i32.const 32 - i32.const 3488 + i32.const 3486 i32.const 0 call $~lib/builtins/abort unreachable @@ -51295,7 +51299,7 @@ if i32.const 0 i32.const 32 - i32.const 3489 + i32.const 3487 i32.const 0 call $~lib/builtins/abort unreachable @@ -51309,7 +51313,7 @@ if i32.const 0 i32.const 32 - i32.const 3490 + i32.const 3488 i32.const 0 call $~lib/builtins/abort unreachable @@ -51323,7 +51327,7 @@ if i32.const 0 i32.const 32 - i32.const 3491 + i32.const 3489 i32.const 0 call $~lib/builtins/abort unreachable @@ -51337,7 +51341,7 @@ if i32.const 0 i32.const 32 - i32.const 3492 + i32.const 3490 i32.const 0 call $~lib/builtins/abort unreachable @@ -51351,7 +51355,7 @@ if i32.const 0 i32.const 32 - i32.const 3493 + i32.const 3491 i32.const 0 call $~lib/builtins/abort unreachable @@ -51365,7 +51369,7 @@ if i32.const 0 i32.const 32 - i32.const 3494 + i32.const 3492 i32.const 0 call $~lib/builtins/abort unreachable @@ -51379,7 +51383,7 @@ if i32.const 0 i32.const 32 - i32.const 3495 + i32.const 3493 i32.const 0 call $~lib/builtins/abort unreachable @@ -51393,7 +51397,7 @@ if i32.const 0 i32.const 32 - i32.const 3496 + i32.const 3494 i32.const 0 call $~lib/builtins/abort unreachable @@ -51407,7 +51411,7 @@ if i32.const 0 i32.const 32 - i32.const 3497 + i32.const 3495 i32.const 0 call $~lib/builtins/abort unreachable @@ -51421,7 +51425,7 @@ if i32.const 0 i32.const 32 - i32.const 3498 + i32.const 3496 i32.const 0 call $~lib/builtins/abort unreachable @@ -51435,7 +51439,7 @@ if i32.const 0 i32.const 32 - i32.const 3499 + i32.const 3497 i32.const 0 call $~lib/builtins/abort unreachable @@ -51449,7 +51453,7 @@ if i32.const 0 i32.const 32 - i32.const 3500 + i32.const 3498 i32.const 0 call $~lib/builtins/abort unreachable @@ -51463,7 +51467,7 @@ if i32.const 0 i32.const 32 - i32.const 3501 + i32.const 3499 i32.const 0 call $~lib/builtins/abort unreachable @@ -51477,7 +51481,7 @@ if i32.const 0 i32.const 32 - i32.const 3502 + i32.const 3500 i32.const 0 call $~lib/builtins/abort unreachable @@ -51491,7 +51495,7 @@ if i32.const 0 i32.const 32 - i32.const 3511 + i32.const 3509 i32.const 0 call $~lib/builtins/abort unreachable @@ -51505,7 +51509,7 @@ if i32.const 0 i32.const 32 - i32.const 3512 + i32.const 3510 i32.const 0 call $~lib/builtins/abort unreachable @@ -51519,7 +51523,7 @@ if i32.const 0 i32.const 32 - i32.const 3513 + i32.const 3511 i32.const 0 call $~lib/builtins/abort unreachable @@ -51533,7 +51537,7 @@ if i32.const 0 i32.const 32 - i32.const 3514 + i32.const 3512 i32.const 0 call $~lib/builtins/abort unreachable @@ -51547,7 +51551,7 @@ if i32.const 0 i32.const 32 - i32.const 3515 + i32.const 3513 i32.const 0 call $~lib/builtins/abort unreachable @@ -51561,7 +51565,7 @@ if i32.const 0 i32.const 32 - i32.const 3516 + i32.const 3514 i32.const 0 call $~lib/builtins/abort unreachable @@ -51575,7 +51579,7 @@ if i32.const 0 i32.const 32 - i32.const 3517 + i32.const 3515 i32.const 0 call $~lib/builtins/abort unreachable @@ -51589,7 +51593,7 @@ if i32.const 0 i32.const 32 - i32.const 3518 + i32.const 3516 i32.const 0 call $~lib/builtins/abort unreachable @@ -51603,7 +51607,7 @@ if i32.const 0 i32.const 32 - i32.const 3519 + i32.const 3517 i32.const 0 call $~lib/builtins/abort unreachable @@ -51617,7 +51621,7 @@ if i32.const 0 i32.const 32 - i32.const 3520 + i32.const 3518 i32.const 0 call $~lib/builtins/abort unreachable @@ -51631,7 +51635,7 @@ if i32.const 0 i32.const 32 - i32.const 3523 + i32.const 3521 i32.const 0 call $~lib/builtins/abort unreachable @@ -51645,7 +51649,7 @@ if i32.const 0 i32.const 32 - i32.const 3524 + i32.const 3522 i32.const 0 call $~lib/builtins/abort unreachable @@ -51659,7 +51663,7 @@ if i32.const 0 i32.const 32 - i32.const 3525 + i32.const 3523 i32.const 0 call $~lib/builtins/abort unreachable @@ -51673,7 +51677,7 @@ if i32.const 0 i32.const 32 - i32.const 3526 + i32.const 3524 i32.const 0 call $~lib/builtins/abort unreachable @@ -51687,7 +51691,7 @@ if i32.const 0 i32.const 32 - i32.const 3527 + i32.const 3525 i32.const 0 call $~lib/builtins/abort unreachable @@ -51701,7 +51705,7 @@ if i32.const 0 i32.const 32 - i32.const 3528 + i32.const 3526 i32.const 0 call $~lib/builtins/abort unreachable @@ -51715,7 +51719,7 @@ if i32.const 0 i32.const 32 - i32.const 3529 + i32.const 3527 i32.const 0 call $~lib/builtins/abort unreachable @@ -51729,7 +51733,7 @@ if i32.const 0 i32.const 32 - i32.const 3530 + i32.const 3528 i32.const 0 call $~lib/builtins/abort unreachable @@ -51743,7 +51747,7 @@ if i32.const 0 i32.const 32 - i32.const 3531 + i32.const 3529 i32.const 0 call $~lib/builtins/abort unreachable @@ -51757,7 +51761,7 @@ if i32.const 0 i32.const 32 - i32.const 3532 + i32.const 3530 i32.const 0 call $~lib/builtins/abort unreachable @@ -51771,7 +51775,7 @@ if i32.const 0 i32.const 32 - i32.const 3533 + i32.const 3531 i32.const 0 call $~lib/builtins/abort unreachable @@ -51785,7 +51789,7 @@ if i32.const 0 i32.const 32 - i32.const 3534 + i32.const 3532 i32.const 0 call $~lib/builtins/abort unreachable @@ -51799,7 +51803,7 @@ if i32.const 0 i32.const 32 - i32.const 3535 + i32.const 3533 i32.const 0 call $~lib/builtins/abort unreachable @@ -51813,7 +51817,7 @@ if i32.const 0 i32.const 32 - i32.const 3536 + i32.const 3534 i32.const 0 call $~lib/builtins/abort unreachable @@ -51827,7 +51831,7 @@ if i32.const 0 i32.const 32 - i32.const 3537 + i32.const 3535 i32.const 0 call $~lib/builtins/abort unreachable @@ -51841,7 +51845,7 @@ if i32.const 0 i32.const 32 - i32.const 3538 + i32.const 3536 i32.const 0 call $~lib/builtins/abort unreachable @@ -51855,7 +51859,7 @@ if i32.const 0 i32.const 32 - i32.const 3539 + i32.const 3537 i32.const 0 call $~lib/builtins/abort unreachable @@ -51869,7 +51873,7 @@ if i32.const 0 i32.const 32 - i32.const 3540 + i32.const 3538 i32.const 0 call $~lib/builtins/abort unreachable @@ -51883,7 +51887,7 @@ if i32.const 0 i32.const 32 - i32.const 3541 + i32.const 3539 i32.const 0 call $~lib/builtins/abort unreachable @@ -51897,7 +51901,7 @@ if i32.const 0 i32.const 32 - i32.const 3542 + i32.const 3540 i32.const 0 call $~lib/builtins/abort unreachable @@ -51911,7 +51915,7 @@ if i32.const 0 i32.const 32 - i32.const 3543 + i32.const 3541 i32.const 0 call $~lib/builtins/abort unreachable @@ -51925,7 +51929,7 @@ if i32.const 0 i32.const 32 - i32.const 3544 + i32.const 3542 i32.const 0 call $~lib/builtins/abort unreachable @@ -51939,7 +51943,7 @@ if i32.const 0 i32.const 32 - i32.const 3556 + i32.const 3554 i32.const 0 call $~lib/builtins/abort unreachable @@ -51953,7 +51957,7 @@ if i32.const 0 i32.const 32 - i32.const 3557 + i32.const 3555 i32.const 0 call $~lib/builtins/abort unreachable @@ -51967,7 +51971,7 @@ if i32.const 0 i32.const 32 - i32.const 3558 + i32.const 3556 i32.const 0 call $~lib/builtins/abort unreachable @@ -51981,7 +51985,7 @@ if i32.const 0 i32.const 32 - i32.const 3559 + i32.const 3557 i32.const 0 call $~lib/builtins/abort unreachable @@ -51995,7 +51999,7 @@ if i32.const 0 i32.const 32 - i32.const 3560 + i32.const 3558 i32.const 0 call $~lib/builtins/abort unreachable @@ -52009,7 +52013,7 @@ if i32.const 0 i32.const 32 - i32.const 3561 + i32.const 3559 i32.const 0 call $~lib/builtins/abort unreachable @@ -52023,7 +52027,7 @@ if i32.const 0 i32.const 32 - i32.const 3562 + i32.const 3560 i32.const 0 call $~lib/builtins/abort unreachable @@ -52037,7 +52041,7 @@ if i32.const 0 i32.const 32 - i32.const 3563 + i32.const 3561 i32.const 0 call $~lib/builtins/abort unreachable @@ -52051,7 +52055,7 @@ if i32.const 0 i32.const 32 - i32.const 3564 + i32.const 3562 i32.const 0 call $~lib/builtins/abort unreachable @@ -52065,7 +52069,7 @@ if i32.const 0 i32.const 32 - i32.const 3565 + i32.const 3563 i32.const 0 call $~lib/builtins/abort unreachable @@ -52079,7 +52083,7 @@ if i32.const 0 i32.const 32 - i32.const 3568 + i32.const 3566 i32.const 0 call $~lib/builtins/abort unreachable @@ -52093,7 +52097,7 @@ if i32.const 0 i32.const 32 - i32.const 3569 + i32.const 3567 i32.const 0 call $~lib/builtins/abort unreachable @@ -52107,7 +52111,7 @@ if i32.const 0 i32.const 32 - i32.const 3570 + i32.const 3568 i32.const 0 call $~lib/builtins/abort unreachable @@ -52121,7 +52125,7 @@ if i32.const 0 i32.const 32 - i32.const 3571 + i32.const 3569 i32.const 0 call $~lib/builtins/abort unreachable @@ -52135,7 +52139,7 @@ if i32.const 0 i32.const 32 - i32.const 3572 + i32.const 3570 i32.const 0 call $~lib/builtins/abort unreachable @@ -52149,7 +52153,7 @@ if i32.const 0 i32.const 32 - i32.const 3573 + i32.const 3571 i32.const 0 call $~lib/builtins/abort unreachable @@ -52163,7 +52167,7 @@ if i32.const 0 i32.const 32 - i32.const 3574 + i32.const 3572 i32.const 0 call $~lib/builtins/abort unreachable @@ -52177,7 +52181,7 @@ if i32.const 0 i32.const 32 - i32.const 3575 + i32.const 3573 i32.const 0 call $~lib/builtins/abort unreachable @@ -52191,7 +52195,7 @@ if i32.const 0 i32.const 32 - i32.const 3576 + i32.const 3574 i32.const 0 call $~lib/builtins/abort unreachable @@ -52205,7 +52209,7 @@ if i32.const 0 i32.const 32 - i32.const 3577 + i32.const 3575 i32.const 0 call $~lib/builtins/abort unreachable @@ -52219,7 +52223,7 @@ if i32.const 0 i32.const 32 - i32.const 3578 + i32.const 3576 i32.const 0 call $~lib/builtins/abort unreachable @@ -52233,7 +52237,7 @@ if i32.const 0 i32.const 32 - i32.const 3579 + i32.const 3577 i32.const 0 call $~lib/builtins/abort unreachable @@ -52247,7 +52251,7 @@ if i32.const 0 i32.const 32 - i32.const 3580 + i32.const 3578 i32.const 0 call $~lib/builtins/abort unreachable @@ -52261,7 +52265,7 @@ if i32.const 0 i32.const 32 - i32.const 3581 + i32.const 3579 i32.const 0 call $~lib/builtins/abort unreachable @@ -52275,7 +52279,7 @@ if i32.const 0 i32.const 32 - i32.const 3582 + i32.const 3580 i32.const 0 call $~lib/builtins/abort unreachable @@ -52289,7 +52293,7 @@ if i32.const 0 i32.const 32 - i32.const 3583 + i32.const 3581 i32.const 0 call $~lib/builtins/abort unreachable @@ -52303,7 +52307,7 @@ if i32.const 0 i32.const 32 - i32.const 3584 + i32.const 3582 i32.const 0 call $~lib/builtins/abort unreachable @@ -52317,7 +52321,7 @@ if i32.const 0 i32.const 32 - i32.const 3585 + i32.const 3583 i32.const 0 call $~lib/builtins/abort unreachable @@ -52331,7 +52335,7 @@ if i32.const 0 i32.const 32 - i32.const 3586 + i32.const 3584 i32.const 0 call $~lib/builtins/abort unreachable @@ -52345,7 +52349,7 @@ if i32.const 0 i32.const 32 - i32.const 3587 + i32.const 3585 i32.const 0 call $~lib/builtins/abort unreachable @@ -52359,7 +52363,7 @@ if i32.const 0 i32.const 32 - i32.const 3588 + i32.const 3586 i32.const 0 call $~lib/builtins/abort unreachable @@ -52373,7 +52377,7 @@ if i32.const 0 i32.const 32 - i32.const 3589 + i32.const 3587 i32.const 0 call $~lib/builtins/abort unreachable @@ -52387,7 +52391,7 @@ if i32.const 0 i32.const 32 - i32.const 3590 + i32.const 3588 i32.const 0 call $~lib/builtins/abort unreachable @@ -52401,7 +52405,7 @@ if i32.const 0 i32.const 32 - i32.const 3591 + i32.const 3589 i32.const 0 call $~lib/builtins/abort unreachable @@ -52415,7 +52419,7 @@ if i32.const 0 i32.const 32 - i32.const 3592 + i32.const 3590 i32.const 0 call $~lib/builtins/abort unreachable @@ -52429,7 +52433,7 @@ if i32.const 0 i32.const 32 - i32.const 3593 + i32.const 3591 i32.const 0 call $~lib/builtins/abort unreachable @@ -52443,7 +52447,7 @@ if i32.const 0 i32.const 32 - i32.const 3594 + i32.const 3592 i32.const 0 call $~lib/builtins/abort unreachable @@ -52457,7 +52461,7 @@ if i32.const 0 i32.const 32 - i32.const 3595 + i32.const 3593 i32.const 0 call $~lib/builtins/abort unreachable @@ -52471,7 +52475,7 @@ if i32.const 0 i32.const 32 - i32.const 3596 + i32.const 3594 i32.const 0 call $~lib/builtins/abort unreachable @@ -52485,7 +52489,7 @@ if i32.const 0 i32.const 32 - i32.const 3597 + i32.const 3595 i32.const 0 call $~lib/builtins/abort unreachable @@ -52499,7 +52503,7 @@ if i32.const 0 i32.const 32 - i32.const 3598 + i32.const 3596 i32.const 0 call $~lib/builtins/abort unreachable @@ -52513,7 +52517,7 @@ if i32.const 0 i32.const 32 - i32.const 3599 + i32.const 3597 i32.const 0 call $~lib/builtins/abort unreachable @@ -52527,7 +52531,7 @@ if i32.const 0 i32.const 32 - i32.const 3600 + i32.const 3598 i32.const 0 call $~lib/builtins/abort unreachable @@ -52541,7 +52545,7 @@ if i32.const 0 i32.const 32 - i32.const 3601 + i32.const 3599 i32.const 0 call $~lib/builtins/abort unreachable @@ -52555,7 +52559,7 @@ if i32.const 0 i32.const 32 - i32.const 3602 + i32.const 3600 i32.const 0 call $~lib/builtins/abort unreachable @@ -52569,7 +52573,7 @@ if i32.const 0 i32.const 32 - i32.const 3603 + i32.const 3601 i32.const 0 call $~lib/builtins/abort unreachable @@ -52583,7 +52587,7 @@ if i32.const 0 i32.const 32 - i32.const 3604 + i32.const 3602 i32.const 0 call $~lib/builtins/abort unreachable @@ -52597,7 +52601,7 @@ if i32.const 0 i32.const 32 - i32.const 3605 + i32.const 3603 i32.const 0 call $~lib/builtins/abort unreachable @@ -52611,7 +52615,7 @@ if i32.const 0 i32.const 32 - i32.const 3608 + i32.const 3606 i32.const 0 call $~lib/builtins/abort unreachable @@ -52625,7 +52629,7 @@ if i32.const 0 i32.const 32 - i32.const 3609 + i32.const 3607 i32.const 0 call $~lib/builtins/abort unreachable @@ -52639,7 +52643,7 @@ if i32.const 0 i32.const 32 - i32.const 3610 + i32.const 3608 i32.const 0 call $~lib/builtins/abort unreachable @@ -52653,7 +52657,7 @@ if i32.const 0 i32.const 32 - i32.const 3611 + i32.const 3609 i32.const 0 call $~lib/builtins/abort unreachable @@ -52667,7 +52671,7 @@ if i32.const 0 i32.const 32 - i32.const 3612 + i32.const 3610 i32.const 0 call $~lib/builtins/abort unreachable @@ -52681,7 +52685,7 @@ if i32.const 0 i32.const 32 - i32.const 3613 + i32.const 3611 i32.const 0 call $~lib/builtins/abort unreachable @@ -52695,7 +52699,7 @@ if i32.const 0 i32.const 32 - i32.const 3614 + i32.const 3612 i32.const 0 call $~lib/builtins/abort unreachable @@ -52709,7 +52713,7 @@ if i32.const 0 i32.const 32 - i32.const 3615 + i32.const 3613 i32.const 0 call $~lib/builtins/abort unreachable @@ -52723,7 +52727,7 @@ if i32.const 0 i32.const 32 - i32.const 3617 + i32.const 3615 i32.const 0 call $~lib/builtins/abort unreachable @@ -52737,7 +52741,7 @@ if i32.const 0 i32.const 32 - i32.const 3618 + i32.const 3616 i32.const 0 call $~lib/builtins/abort unreachable @@ -52751,7 +52755,7 @@ if i32.const 0 i32.const 32 - i32.const 3619 + i32.const 3617 i32.const 0 call $~lib/builtins/abort unreachable @@ -52765,7 +52769,7 @@ if i32.const 0 i32.const 32 - i32.const 3620 + i32.const 3618 i32.const 0 call $~lib/builtins/abort unreachable @@ -52779,7 +52783,7 @@ if i32.const 0 i32.const 32 - i32.const 3621 + i32.const 3619 i32.const 0 call $~lib/builtins/abort unreachable @@ -52793,7 +52797,7 @@ if i32.const 0 i32.const 32 - i32.const 3622 + i32.const 3620 i32.const 0 call $~lib/builtins/abort unreachable @@ -52807,7 +52811,7 @@ if i32.const 0 i32.const 32 - i32.const 3623 + i32.const 3621 i32.const 0 call $~lib/builtins/abort unreachable @@ -52821,7 +52825,7 @@ if i32.const 0 i32.const 32 - i32.const 3624 + i32.const 3622 i32.const 0 call $~lib/builtins/abort unreachable @@ -52835,7 +52839,7 @@ if i32.const 0 i32.const 32 - i32.const 3627 + i32.const 3625 i32.const 0 call $~lib/builtins/abort unreachable @@ -52849,7 +52853,7 @@ if i32.const 0 i32.const 32 - i32.const 3628 + i32.const 3626 i32.const 0 call $~lib/builtins/abort unreachable @@ -52863,7 +52867,7 @@ if i32.const 0 i32.const 32 - i32.const 3629 + i32.const 3627 i32.const 0 call $~lib/builtins/abort unreachable @@ -52877,7 +52881,7 @@ if i32.const 0 i32.const 32 - i32.const 3630 + i32.const 3628 i32.const 0 call $~lib/builtins/abort unreachable @@ -52891,7 +52895,7 @@ if i32.const 0 i32.const 32 - i32.const 3631 + i32.const 3629 i32.const 0 call $~lib/builtins/abort unreachable @@ -52905,7 +52909,7 @@ if i32.const 0 i32.const 32 - i32.const 3640 + i32.const 3638 i32.const 0 call $~lib/builtins/abort unreachable @@ -52919,7 +52923,7 @@ if i32.const 0 i32.const 32 - i32.const 3641 + i32.const 3639 i32.const 0 call $~lib/builtins/abort unreachable @@ -52933,7 +52937,7 @@ if i32.const 0 i32.const 32 - i32.const 3642 + i32.const 3640 i32.const 0 call $~lib/builtins/abort unreachable @@ -52947,7 +52951,7 @@ if i32.const 0 i32.const 32 - i32.const 3643 + i32.const 3641 i32.const 0 call $~lib/builtins/abort unreachable @@ -52961,7 +52965,7 @@ if i32.const 0 i32.const 32 - i32.const 3644 + i32.const 3642 i32.const 0 call $~lib/builtins/abort unreachable @@ -52975,7 +52979,7 @@ if i32.const 0 i32.const 32 - i32.const 3645 + i32.const 3643 i32.const 0 call $~lib/builtins/abort unreachable @@ -52989,7 +52993,7 @@ if i32.const 0 i32.const 32 - i32.const 3646 + i32.const 3644 i32.const 0 call $~lib/builtins/abort unreachable @@ -53003,7 +53007,7 @@ if i32.const 0 i32.const 32 - i32.const 3647 + i32.const 3645 i32.const 0 call $~lib/builtins/abort unreachable @@ -53017,7 +53021,7 @@ if i32.const 0 i32.const 32 - i32.const 3648 + i32.const 3646 i32.const 0 call $~lib/builtins/abort unreachable @@ -53031,7 +53035,7 @@ if i32.const 0 i32.const 32 - i32.const 3649 + i32.const 3647 i32.const 0 call $~lib/builtins/abort unreachable @@ -53045,7 +53049,7 @@ if i32.const 0 i32.const 32 - i32.const 3652 + i32.const 3650 i32.const 0 call $~lib/builtins/abort unreachable @@ -53059,7 +53063,7 @@ if i32.const 0 i32.const 32 - i32.const 3653 + i32.const 3651 i32.const 0 call $~lib/builtins/abort unreachable @@ -53073,7 +53077,7 @@ if i32.const 0 i32.const 32 - i32.const 3654 + i32.const 3652 i32.const 0 call $~lib/builtins/abort unreachable @@ -53087,7 +53091,7 @@ if i32.const 0 i32.const 32 - i32.const 3655 + i32.const 3653 i32.const 0 call $~lib/builtins/abort unreachable @@ -53101,7 +53105,7 @@ if i32.const 0 i32.const 32 - i32.const 3656 + i32.const 3654 i32.const 0 call $~lib/builtins/abort unreachable @@ -53115,7 +53119,7 @@ if i32.const 0 i32.const 32 - i32.const 3659 + i32.const 3657 i32.const 0 call $~lib/builtins/abort unreachable @@ -53129,7 +53133,7 @@ if i32.const 0 i32.const 32 - i32.const 3660 + i32.const 3658 i32.const 0 call $~lib/builtins/abort unreachable @@ -53143,7 +53147,7 @@ if i32.const 0 i32.const 32 - i32.const 3661 + i32.const 3659 i32.const 0 call $~lib/builtins/abort unreachable @@ -53157,7 +53161,7 @@ if i32.const 0 i32.const 32 - i32.const 3662 + i32.const 3660 i32.const 0 call $~lib/builtins/abort unreachable @@ -53171,7 +53175,7 @@ if i32.const 0 i32.const 32 - i32.const 3663 + i32.const 3661 i32.const 0 call $~lib/builtins/abort unreachable @@ -53185,7 +53189,7 @@ if i32.const 0 i32.const 32 - i32.const 3664 + i32.const 3662 i32.const 0 call $~lib/builtins/abort unreachable @@ -53199,7 +53203,7 @@ if i32.const 0 i32.const 32 - i32.const 3665 + i32.const 3663 i32.const 0 call $~lib/builtins/abort unreachable @@ -53213,7 +53217,7 @@ if i32.const 0 i32.const 32 - i32.const 3666 + i32.const 3664 i32.const 0 call $~lib/builtins/abort unreachable @@ -53227,7 +53231,7 @@ if i32.const 0 i32.const 32 - i32.const 3667 + i32.const 3665 i32.const 0 call $~lib/builtins/abort unreachable @@ -53241,7 +53245,7 @@ if i32.const 0 i32.const 32 - i32.const 3668 + i32.const 3666 i32.const 0 call $~lib/builtins/abort unreachable @@ -53255,7 +53259,7 @@ if i32.const 0 i32.const 32 - i32.const 3669 + i32.const 3667 i32.const 0 call $~lib/builtins/abort unreachable @@ -53269,7 +53273,7 @@ if i32.const 0 i32.const 32 - i32.const 3670 + i32.const 3668 i32.const 0 call $~lib/builtins/abort unreachable @@ -53283,7 +53287,7 @@ if i32.const 0 i32.const 32 - i32.const 3671 + i32.const 3669 i32.const 0 call $~lib/builtins/abort unreachable @@ -53297,7 +53301,7 @@ if i32.const 0 i32.const 32 - i32.const 3672 + i32.const 3670 i32.const 0 call $~lib/builtins/abort unreachable @@ -53311,7 +53315,7 @@ if i32.const 0 i32.const 32 - i32.const 3673 + i32.const 3671 i32.const 0 call $~lib/builtins/abort unreachable @@ -53325,7 +53329,7 @@ if i32.const 0 i32.const 32 - i32.const 3674 + i32.const 3672 i32.const 0 call $~lib/builtins/abort unreachable @@ -53339,7 +53343,7 @@ if i32.const 0 i32.const 32 - i32.const 3675 + i32.const 3673 i32.const 0 call $~lib/builtins/abort unreachable @@ -53353,7 +53357,7 @@ if i32.const 0 i32.const 32 - i32.const 3676 + i32.const 3674 i32.const 0 call $~lib/builtins/abort unreachable @@ -53367,7 +53371,7 @@ if i32.const 0 i32.const 32 - i32.const 3677 + i32.const 3675 i32.const 0 call $~lib/builtins/abort unreachable @@ -53381,7 +53385,7 @@ if i32.const 0 i32.const 32 - i32.const 3678 + i32.const 3676 i32.const 0 call $~lib/builtins/abort unreachable @@ -53395,7 +53399,7 @@ if i32.const 0 i32.const 32 - i32.const 3679 + i32.const 3677 i32.const 0 call $~lib/builtins/abort unreachable @@ -53409,7 +53413,7 @@ if i32.const 0 i32.const 32 - i32.const 3680 + i32.const 3678 i32.const 0 call $~lib/builtins/abort unreachable @@ -53423,7 +53427,7 @@ if i32.const 0 i32.const 32 - i32.const 3681 + i32.const 3679 i32.const 0 call $~lib/builtins/abort unreachable @@ -53437,7 +53441,7 @@ if i32.const 0 i32.const 32 - i32.const 3682 + i32.const 3680 i32.const 0 call $~lib/builtins/abort unreachable @@ -53451,7 +53455,7 @@ if i32.const 0 i32.const 32 - i32.const 3683 + i32.const 3681 i32.const 0 call $~lib/builtins/abort unreachable @@ -53465,7 +53469,7 @@ if i32.const 0 i32.const 32 - i32.const 3684 + i32.const 3682 i32.const 0 call $~lib/builtins/abort unreachable @@ -53479,7 +53483,7 @@ if i32.const 0 i32.const 32 - i32.const 3685 + i32.const 3683 i32.const 0 call $~lib/builtins/abort unreachable @@ -53493,7 +53497,7 @@ if i32.const 0 i32.const 32 - i32.const 3686 + i32.const 3684 i32.const 0 call $~lib/builtins/abort unreachable @@ -53507,7 +53511,7 @@ if i32.const 0 i32.const 32 - i32.const 3687 + i32.const 3685 i32.const 0 call $~lib/builtins/abort unreachable @@ -53521,7 +53525,7 @@ if i32.const 0 i32.const 32 - i32.const 3688 + i32.const 3686 i32.const 0 call $~lib/builtins/abort unreachable @@ -53535,7 +53539,7 @@ if i32.const 0 i32.const 32 - i32.const 3689 + i32.const 3687 i32.const 0 call $~lib/builtins/abort unreachable @@ -53549,7 +53553,7 @@ if i32.const 0 i32.const 32 - i32.const 3690 + i32.const 3688 i32.const 0 call $~lib/builtins/abort unreachable @@ -53563,7 +53567,7 @@ if i32.const 0 i32.const 32 - i32.const 3691 + i32.const 3689 i32.const 0 call $~lib/builtins/abort unreachable @@ -53577,7 +53581,7 @@ if i32.const 0 i32.const 32 - i32.const 3692 + i32.const 3690 i32.const 0 call $~lib/builtins/abort unreachable @@ -53591,7 +53595,7 @@ if i32.const 0 i32.const 32 - i32.const 3693 + i32.const 3691 i32.const 0 call $~lib/builtins/abort unreachable @@ -53605,7 +53609,7 @@ if i32.const 0 i32.const 32 - i32.const 3694 + i32.const 3692 i32.const 0 call $~lib/builtins/abort unreachable @@ -53619,7 +53623,7 @@ if i32.const 0 i32.const 32 - i32.const 3706 + i32.const 3704 i32.const 0 call $~lib/builtins/abort unreachable @@ -53633,7 +53637,7 @@ if i32.const 0 i32.const 32 - i32.const 3707 + i32.const 3705 i32.const 0 call $~lib/builtins/abort unreachable @@ -53647,7 +53651,7 @@ if i32.const 0 i32.const 32 - i32.const 3708 + i32.const 3706 i32.const 0 call $~lib/builtins/abort unreachable @@ -53661,7 +53665,7 @@ if i32.const 0 i32.const 32 - i32.const 3709 + i32.const 3707 i32.const 0 call $~lib/builtins/abort unreachable @@ -53675,7 +53679,7 @@ if i32.const 0 i32.const 32 - i32.const 3710 + i32.const 3708 i32.const 0 call $~lib/builtins/abort unreachable @@ -53689,7 +53693,7 @@ if i32.const 0 i32.const 32 - i32.const 3711 + i32.const 3709 i32.const 0 call $~lib/builtins/abort unreachable @@ -53703,7 +53707,7 @@ if i32.const 0 i32.const 32 - i32.const 3712 + i32.const 3710 i32.const 0 call $~lib/builtins/abort unreachable @@ -53717,7 +53721,7 @@ if i32.const 0 i32.const 32 - i32.const 3713 + i32.const 3711 i32.const 0 call $~lib/builtins/abort unreachable @@ -53731,7 +53735,7 @@ if i32.const 0 i32.const 32 - i32.const 3714 + i32.const 3712 i32.const 0 call $~lib/builtins/abort unreachable @@ -53745,7 +53749,7 @@ if i32.const 0 i32.const 32 - i32.const 3715 + i32.const 3713 i32.const 0 call $~lib/builtins/abort unreachable @@ -53759,7 +53763,7 @@ if i32.const 0 i32.const 32 - i32.const 3718 + i32.const 3716 i32.const 0 call $~lib/builtins/abort unreachable @@ -53773,7 +53777,7 @@ if i32.const 0 i32.const 32 - i32.const 3719 + i32.const 3717 i32.const 0 call $~lib/builtins/abort unreachable @@ -53787,7 +53791,7 @@ if i32.const 0 i32.const 32 - i32.const 3720 + i32.const 3718 i32.const 0 call $~lib/builtins/abort unreachable @@ -53801,7 +53805,7 @@ if i32.const 0 i32.const 32 - i32.const 3721 + i32.const 3719 i32.const 0 call $~lib/builtins/abort unreachable @@ -53815,7 +53819,7 @@ if i32.const 0 i32.const 32 - i32.const 3722 + i32.const 3720 i32.const 0 call $~lib/builtins/abort unreachable @@ -53829,7 +53833,7 @@ if i32.const 0 i32.const 32 - i32.const 3731 + i32.const 3729 i32.const 0 call $~lib/builtins/abort unreachable @@ -53843,7 +53847,7 @@ if i32.const 0 i32.const 32 - i32.const 3732 + i32.const 3730 i32.const 0 call $~lib/builtins/abort unreachable @@ -53857,7 +53861,7 @@ if i32.const 0 i32.const 32 - i32.const 3733 + i32.const 3731 i32.const 0 call $~lib/builtins/abort unreachable @@ -53871,7 +53875,7 @@ if i32.const 0 i32.const 32 - i32.const 3734 + i32.const 3732 i32.const 0 call $~lib/builtins/abort unreachable @@ -53885,7 +53889,7 @@ if i32.const 0 i32.const 32 - i32.const 3735 + i32.const 3733 i32.const 0 call $~lib/builtins/abort unreachable @@ -53899,7 +53903,7 @@ if i32.const 0 i32.const 32 - i32.const 3736 + i32.const 3734 i32.const 0 call $~lib/builtins/abort unreachable @@ -53913,7 +53917,7 @@ if i32.const 0 i32.const 32 - i32.const 3737 + i32.const 3735 i32.const 0 call $~lib/builtins/abort unreachable @@ -53927,7 +53931,7 @@ if i32.const 0 i32.const 32 - i32.const 3738 + i32.const 3736 i32.const 0 call $~lib/builtins/abort unreachable @@ -53941,7 +53945,7 @@ if i32.const 0 i32.const 32 - i32.const 3739 + i32.const 3737 i32.const 0 call $~lib/builtins/abort unreachable @@ -53955,7 +53959,7 @@ if i32.const 0 i32.const 32 - i32.const 3740 + i32.const 3738 i32.const 0 call $~lib/builtins/abort unreachable @@ -53969,7 +53973,7 @@ if i32.const 0 i32.const 32 - i32.const 3743 + i32.const 3741 i32.const 0 call $~lib/builtins/abort unreachable @@ -53983,7 +53987,7 @@ if i32.const 0 i32.const 32 - i32.const 3744 + i32.const 3742 i32.const 0 call $~lib/builtins/abort unreachable @@ -53997,7 +54001,7 @@ if i32.const 0 i32.const 32 - i32.const 3745 + i32.const 3743 i32.const 0 call $~lib/builtins/abort unreachable @@ -54011,7 +54015,7 @@ if i32.const 0 i32.const 32 - i32.const 3746 + i32.const 3744 i32.const 0 call $~lib/builtins/abort unreachable @@ -54025,7 +54029,7 @@ if i32.const 0 i32.const 32 - i32.const 3747 + i32.const 3745 i32.const 0 call $~lib/builtins/abort unreachable @@ -54039,7 +54043,7 @@ if i32.const 0 i32.const 32 - i32.const 3759 + i32.const 3757 i32.const 0 call $~lib/builtins/abort unreachable @@ -54053,7 +54057,7 @@ if i32.const 0 i32.const 32 - i32.const 3760 + i32.const 3758 i32.const 0 call $~lib/builtins/abort unreachable @@ -54067,7 +54071,7 @@ if i32.const 0 i32.const 32 - i32.const 3761 + i32.const 3759 i32.const 0 call $~lib/builtins/abort unreachable @@ -54081,7 +54085,7 @@ if i32.const 0 i32.const 32 - i32.const 3762 + i32.const 3760 i32.const 0 call $~lib/builtins/abort unreachable @@ -54095,7 +54099,7 @@ if i32.const 0 i32.const 32 - i32.const 3763 + i32.const 3761 i32.const 0 call $~lib/builtins/abort unreachable @@ -54109,7 +54113,7 @@ if i32.const 0 i32.const 32 - i32.const 3764 + i32.const 3762 i32.const 0 call $~lib/builtins/abort unreachable @@ -54123,7 +54127,7 @@ if i32.const 0 i32.const 32 - i32.const 3765 + i32.const 3763 i32.const 0 call $~lib/builtins/abort unreachable @@ -54137,7 +54141,7 @@ if i32.const 0 i32.const 32 - i32.const 3766 + i32.const 3764 i32.const 0 call $~lib/builtins/abort unreachable @@ -54151,7 +54155,7 @@ if i32.const 0 i32.const 32 - i32.const 3767 + i32.const 3765 i32.const 0 call $~lib/builtins/abort unreachable @@ -54165,7 +54169,7 @@ if i32.const 0 i32.const 32 - i32.const 3768 + i32.const 3766 i32.const 0 call $~lib/builtins/abort unreachable @@ -54179,7 +54183,7 @@ if i32.const 0 i32.const 32 - i32.const 3771 + i32.const 3769 i32.const 0 call $~lib/builtins/abort unreachable @@ -54193,7 +54197,7 @@ if i32.const 0 i32.const 32 - i32.const 3772 + i32.const 3770 i32.const 0 call $~lib/builtins/abort unreachable @@ -54207,7 +54211,7 @@ if i32.const 0 i32.const 32 - i32.const 3773 + i32.const 3771 i32.const 0 call $~lib/builtins/abort unreachable @@ -54221,7 +54225,7 @@ if i32.const 0 i32.const 32 - i32.const 3774 + i32.const 3772 i32.const 0 call $~lib/builtins/abort unreachable @@ -54235,7 +54239,7 @@ if i32.const 0 i32.const 32 - i32.const 3775 + i32.const 3773 i32.const 0 call $~lib/builtins/abort unreachable @@ -54249,7 +54253,7 @@ if i32.const 0 i32.const 32 - i32.const 3776 + i32.const 3774 i32.const 0 call $~lib/builtins/abort unreachable @@ -54263,7 +54267,7 @@ if i32.const 0 i32.const 32 - i32.const 3777 + i32.const 3775 i32.const 0 call $~lib/builtins/abort unreachable @@ -54277,7 +54281,7 @@ if i32.const 0 i32.const 32 - i32.const 3778 + i32.const 3776 i32.const 0 call $~lib/builtins/abort unreachable @@ -54291,7 +54295,7 @@ if i32.const 0 i32.const 32 - i32.const 3779 + i32.const 3777 i32.const 0 call $~lib/builtins/abort unreachable @@ -54305,7 +54309,7 @@ if i32.const 0 i32.const 32 - i32.const 3780 + i32.const 3778 i32.const 0 call $~lib/builtins/abort unreachable @@ -54319,7 +54323,7 @@ if i32.const 0 i32.const 32 - i32.const 3781 + i32.const 3779 i32.const 0 call $~lib/builtins/abort unreachable @@ -54333,7 +54337,7 @@ if i32.const 0 i32.const 32 - i32.const 3782 + i32.const 3780 i32.const 0 call $~lib/builtins/abort unreachable @@ -54347,7 +54351,7 @@ if i32.const 0 i32.const 32 - i32.const 3783 + i32.const 3781 i32.const 0 call $~lib/builtins/abort unreachable @@ -54361,7 +54365,7 @@ if i32.const 0 i32.const 32 - i32.const 3784 + i32.const 3782 i32.const 0 call $~lib/builtins/abort unreachable @@ -54375,7 +54379,7 @@ if i32.const 0 i32.const 32 - i32.const 3785 + i32.const 3783 i32.const 0 call $~lib/builtins/abort unreachable @@ -54389,7 +54393,7 @@ if i32.const 0 i32.const 32 - i32.const 3794 + i32.const 3792 i32.const 0 call $~lib/builtins/abort unreachable @@ -54403,7 +54407,7 @@ if i32.const 0 i32.const 32 - i32.const 3795 + i32.const 3793 i32.const 0 call $~lib/builtins/abort unreachable @@ -54417,7 +54421,7 @@ if i32.const 0 i32.const 32 - i32.const 3796 + i32.const 3794 i32.const 0 call $~lib/builtins/abort unreachable @@ -54431,7 +54435,7 @@ if i32.const 0 i32.const 32 - i32.const 3797 + i32.const 3795 i32.const 0 call $~lib/builtins/abort unreachable @@ -54445,7 +54449,7 @@ if i32.const 0 i32.const 32 - i32.const 3798 + i32.const 3796 i32.const 0 call $~lib/builtins/abort unreachable @@ -54459,7 +54463,7 @@ if i32.const 0 i32.const 32 - i32.const 3799 + i32.const 3797 i32.const 0 call $~lib/builtins/abort unreachable @@ -54473,7 +54477,7 @@ if i32.const 0 i32.const 32 - i32.const 3800 + i32.const 3798 i32.const 0 call $~lib/builtins/abort unreachable @@ -54487,7 +54491,7 @@ if i32.const 0 i32.const 32 - i32.const 3801 + i32.const 3799 i32.const 0 call $~lib/builtins/abort unreachable @@ -54501,7 +54505,7 @@ if i32.const 0 i32.const 32 - i32.const 3802 + i32.const 3800 i32.const 0 call $~lib/builtins/abort unreachable @@ -54515,7 +54519,7 @@ if i32.const 0 i32.const 32 - i32.const 3803 + i32.const 3801 i32.const 0 call $~lib/builtins/abort unreachable @@ -54529,7 +54533,7 @@ if i32.const 0 i32.const 32 - i32.const 3806 + i32.const 3804 i32.const 0 call $~lib/builtins/abort unreachable @@ -54543,7 +54547,7 @@ if i32.const 0 i32.const 32 - i32.const 3807 + i32.const 3805 i32.const 0 call $~lib/builtins/abort unreachable @@ -54557,7 +54561,7 @@ if i32.const 0 i32.const 32 - i32.const 3808 + i32.const 3806 i32.const 0 call $~lib/builtins/abort unreachable @@ -54571,7 +54575,7 @@ if i32.const 0 i32.const 32 - i32.const 3809 + i32.const 3807 i32.const 0 call $~lib/builtins/abort unreachable @@ -54585,7 +54589,7 @@ if i32.const 0 i32.const 32 - i32.const 3810 + i32.const 3808 i32.const 0 call $~lib/builtins/abort unreachable @@ -54599,7 +54603,7 @@ if i32.const 0 i32.const 32 - i32.const 3811 + i32.const 3809 i32.const 0 call $~lib/builtins/abort unreachable @@ -54613,7 +54617,7 @@ if i32.const 0 i32.const 32 - i32.const 3812 + i32.const 3810 i32.const 0 call $~lib/builtins/abort unreachable @@ -54627,7 +54631,7 @@ if i32.const 0 i32.const 32 - i32.const 3813 + i32.const 3811 i32.const 0 call $~lib/builtins/abort unreachable @@ -54641,7 +54645,7 @@ if i32.const 0 i32.const 32 - i32.const 3814 + i32.const 3812 i32.const 0 call $~lib/builtins/abort unreachable @@ -54655,7 +54659,7 @@ if i32.const 0 i32.const 32 - i32.const 3815 + i32.const 3813 i32.const 0 call $~lib/builtins/abort unreachable @@ -54669,7 +54673,7 @@ if i32.const 0 i32.const 32 - i32.const 3816 + i32.const 3814 i32.const 0 call $~lib/builtins/abort unreachable @@ -54683,7 +54687,7 @@ if i32.const 0 i32.const 32 - i32.const 3817 + i32.const 3815 i32.const 0 call $~lib/builtins/abort unreachable @@ -54697,7 +54701,7 @@ if i32.const 0 i32.const 32 - i32.const 3818 + i32.const 3816 i32.const 0 call $~lib/builtins/abort unreachable @@ -54711,7 +54715,7 @@ if i32.const 0 i32.const 32 - i32.const 3819 + i32.const 3817 i32.const 0 call $~lib/builtins/abort unreachable @@ -54725,7 +54729,7 @@ if i32.const 0 i32.const 32 - i32.const 3820 + i32.const 3818 i32.const 0 call $~lib/builtins/abort unreachable @@ -54819,7 +54823,7 @@ if i32.const 0 i32.const 32 - i32.const 3861 + i32.const 3859 i32.const 0 call $~lib/builtins/abort unreachable @@ -54833,7 +54837,7 @@ if i32.const 0 i32.const 32 - i32.const 3862 + i32.const 3860 i32.const 0 call $~lib/builtins/abort unreachable @@ -54847,7 +54851,7 @@ if i32.const 0 i32.const 32 - i32.const 3863 + i32.const 3861 i32.const 0 call $~lib/builtins/abort unreachable @@ -54861,7 +54865,7 @@ if i32.const 0 i32.const 32 - i32.const 3864 + i32.const 3862 i32.const 0 call $~lib/builtins/abort unreachable @@ -54875,7 +54879,7 @@ if i32.const 0 i32.const 32 - i32.const 3865 + i32.const 3863 i32.const 0 call $~lib/builtins/abort unreachable @@ -54889,7 +54893,7 @@ if i32.const 0 i32.const 32 - i32.const 3866 + i32.const 3864 i32.const 0 call $~lib/builtins/abort unreachable @@ -54903,7 +54907,7 @@ if i32.const 0 i32.const 32 - i32.const 3867 + i32.const 3865 i32.const 0 call $~lib/builtins/abort unreachable @@ -54917,7 +54921,7 @@ if i32.const 0 i32.const 32 - i32.const 3868 + i32.const 3866 i32.const 0 call $~lib/builtins/abort unreachable @@ -54931,7 +54935,7 @@ if i32.const 0 i32.const 32 - i32.const 3869 + i32.const 3867 i32.const 0 call $~lib/builtins/abort unreachable @@ -54945,7 +54949,7 @@ if i32.const 0 i32.const 32 - i32.const 3870 + i32.const 3868 i32.const 0 call $~lib/builtins/abort unreachable @@ -54959,7 +54963,7 @@ if i32.const 0 i32.const 32 - i32.const 3871 + i32.const 3869 i32.const 0 call $~lib/builtins/abort unreachable @@ -54973,7 +54977,7 @@ if i32.const 0 i32.const 32 - i32.const 3872 + i32.const 3870 i32.const 0 call $~lib/builtins/abort unreachable @@ -54986,7 +54990,7 @@ if i32.const 0 i32.const 32 - i32.const 3876 + i32.const 3874 i32.const 0 call $~lib/builtins/abort unreachable @@ -54999,7 +55003,7 @@ if i32.const 0 i32.const 32 - i32.const 3877 + i32.const 3875 i32.const 0 call $~lib/builtins/abort unreachable @@ -55012,7 +55016,7 @@ if i32.const 0 i32.const 32 - i32.const 3878 + i32.const 3876 i32.const 0 call $~lib/builtins/abort unreachable @@ -55025,7 +55029,7 @@ if i32.const 0 i32.const 32 - i32.const 3879 + i32.const 3877 i32.const 0 call $~lib/builtins/abort unreachable @@ -55038,7 +55042,7 @@ if i32.const 0 i32.const 32 - i32.const 3880 + i32.const 3878 i32.const 0 call $~lib/builtins/abort unreachable @@ -55051,7 +55055,7 @@ if i32.const 0 i32.const 32 - i32.const 3881 + i32.const 3879 i32.const 0 call $~lib/builtins/abort unreachable @@ -55064,7 +55068,7 @@ if i32.const 0 i32.const 32 - i32.const 3882 + i32.const 3880 i32.const 0 call $~lib/builtins/abort unreachable @@ -55077,7 +55081,7 @@ if i32.const 0 i32.const 32 - i32.const 3883 + i32.const 3881 i32.const 0 call $~lib/builtins/abort unreachable @@ -55090,7 +55094,7 @@ if i32.const 0 i32.const 32 - i32.const 3884 + i32.const 3882 i32.const 0 call $~lib/builtins/abort unreachable @@ -55103,7 +55107,7 @@ if i32.const 0 i32.const 32 - i32.const 3885 + i32.const 3883 i32.const 0 call $~lib/builtins/abort unreachable @@ -55116,7 +55120,7 @@ if i32.const 0 i32.const 32 - i32.const 3886 + i32.const 3884 i32.const 0 call $~lib/builtins/abort unreachable @@ -55129,7 +55133,7 @@ if i32.const 0 i32.const 32 - i32.const 3887 + i32.const 3885 i32.const 0 call $~lib/builtins/abort unreachable @@ -55142,7 +55146,7 @@ if i32.const 0 i32.const 32 - i32.const 3888 + i32.const 3886 i32.const 0 call $~lib/builtins/abort unreachable @@ -55155,7 +55159,7 @@ if i32.const 0 i32.const 32 - i32.const 3889 + i32.const 3887 i32.const 0 call $~lib/builtins/abort unreachable @@ -55168,7 +55172,7 @@ if i32.const 0 i32.const 32 - i32.const 3890 + i32.const 3888 i32.const 0 call $~lib/builtins/abort unreachable @@ -55181,7 +55185,7 @@ if i32.const 0 i32.const 32 - i32.const 3891 + i32.const 3889 i32.const 0 call $~lib/builtins/abort unreachable @@ -55195,7 +55199,7 @@ if i32.const 0 i32.const 32 - i32.const 3895 + i32.const 3893 i32.const 0 call $~lib/builtins/abort unreachable @@ -55209,7 +55213,7 @@ if i32.const 0 i32.const 32 - i32.const 3896 + i32.const 3894 i32.const 0 call $~lib/builtins/abort unreachable @@ -55223,7 +55227,7 @@ if i32.const 0 i32.const 32 - i32.const 3897 + i32.const 3895 i32.const 0 call $~lib/builtins/abort unreachable @@ -55237,7 +55241,7 @@ if i32.const 0 i32.const 32 - i32.const 3898 + i32.const 3896 i32.const 0 call $~lib/builtins/abort unreachable @@ -55251,7 +55255,7 @@ if i32.const 0 i32.const 32 - i32.const 3900 + i32.const 3898 i32.const 0 call $~lib/builtins/abort unreachable @@ -55265,7 +55269,7 @@ if i32.const 0 i32.const 32 - i32.const 3901 + i32.const 3899 i32.const 0 call $~lib/builtins/abort unreachable @@ -55279,7 +55283,7 @@ if i32.const 0 i32.const 32 - i32.const 3902 + i32.const 3900 i32.const 0 call $~lib/builtins/abort unreachable @@ -55293,7 +55297,7 @@ if i32.const 0 i32.const 32 - i32.const 3903 + i32.const 3901 i32.const 0 call $~lib/builtins/abort unreachable @@ -55307,7 +55311,7 @@ if i32.const 0 i32.const 32 - i32.const 3905 + i32.const 3903 i32.const 0 call $~lib/builtins/abort unreachable @@ -55321,7 +55325,7 @@ if i32.const 0 i32.const 32 - i32.const 3906 + i32.const 3904 i32.const 0 call $~lib/builtins/abort unreachable @@ -55335,7 +55339,7 @@ if i32.const 0 i32.const 32 - i32.const 3907 + i32.const 3905 i32.const 0 call $~lib/builtins/abort unreachable @@ -55349,7 +55353,7 @@ if i32.const 0 i32.const 32 - i32.const 3908 + i32.const 3906 i32.const 0 call $~lib/builtins/abort unreachable @@ -55363,7 +55367,7 @@ if i32.const 0 i32.const 32 - i32.const 3910 + i32.const 3908 i32.const 0 call $~lib/builtins/abort unreachable @@ -55377,7 +55381,7 @@ if i32.const 0 i32.const 32 - i32.const 3911 + i32.const 3909 i32.const 0 call $~lib/builtins/abort unreachable @@ -55391,7 +55395,7 @@ if i32.const 0 i32.const 32 - i32.const 3912 + i32.const 3910 i32.const 0 call $~lib/builtins/abort unreachable @@ -55405,7 +55409,7 @@ if i32.const 0 i32.const 32 - i32.const 3913 + i32.const 3911 i32.const 0 call $~lib/builtins/abort unreachable @@ -55419,7 +55423,7 @@ if i32.const 0 i32.const 32 - i32.const 3915 + i32.const 3913 i32.const 0 call $~lib/builtins/abort unreachable @@ -55433,7 +55437,7 @@ if i32.const 0 i32.const 32 - i32.const 3916 + i32.const 3914 i32.const 0 call $~lib/builtins/abort unreachable @@ -55447,7 +55451,7 @@ if i32.const 0 i32.const 32 - i32.const 3917 + i32.const 3915 i32.const 0 call $~lib/builtins/abort unreachable @@ -55461,7 +55465,7 @@ if i32.const 0 i32.const 32 - i32.const 3918 + i32.const 3916 i32.const 0 call $~lib/builtins/abort unreachable @@ -55475,7 +55479,7 @@ if i32.const 0 i32.const 32 - i32.const 3920 + i32.const 3918 i32.const 0 call $~lib/builtins/abort unreachable @@ -55489,7 +55493,7 @@ if i32.const 0 i32.const 32 - i32.const 3921 + i32.const 3919 i32.const 0 call $~lib/builtins/abort unreachable @@ -55503,7 +55507,7 @@ if i32.const 0 i32.const 32 - i32.const 3922 + i32.const 3920 i32.const 0 call $~lib/builtins/abort unreachable @@ -55517,7 +55521,7 @@ if i32.const 0 i32.const 32 - i32.const 3923 + i32.const 3921 i32.const 0 call $~lib/builtins/abort unreachable @@ -55531,7 +55535,7 @@ if i32.const 0 i32.const 32 - i32.const 3924 + i32.const 3922 i32.const 0 call $~lib/builtins/abort unreachable @@ -55545,7 +55549,7 @@ if i32.const 0 i32.const 32 - i32.const 3925 + i32.const 3923 i32.const 0 call $~lib/builtins/abort unreachable @@ -55559,7 +55563,7 @@ if i32.const 0 i32.const 32 - i32.const 3926 + i32.const 3924 i32.const 0 call $~lib/builtins/abort unreachable @@ -55577,7 +55581,7 @@ if i32.const 0 i32.const 32 - i32.const 3928 + i32.const 3926 i32.const 0 call $~lib/builtins/abort unreachable @@ -55591,7 +55595,7 @@ if i32.const 0 i32.const 32 - i32.const 3932 + i32.const 3930 i32.const 0 call $~lib/builtins/abort unreachable @@ -55605,7 +55609,7 @@ if i32.const 0 i32.const 32 - i32.const 3933 + i32.const 3931 i32.const 0 call $~lib/builtins/abort unreachable @@ -55613,14 +55617,14 @@ f32.const nan:0x400000 i32.const 1 call $~lib/math/ipow32f - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f32.ne i32.eqz if i32.const 0 i32.const 32 - i32.const 3934 + i32.const 3932 i32.const 0 call $~lib/builtins/abort unreachable @@ -55628,14 +55632,14 @@ f32.const nan:0x400000 i32.const -1 call $~lib/math/ipow32f - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f32.ne i32.eqz if i32.const 0 i32.const 32 - i32.const 3935 + i32.const 3933 i32.const 0 call $~lib/builtins/abort unreachable @@ -55643,14 +55647,14 @@ f32.const nan:0x400000 i32.const 2 call $~lib/math/ipow32f - local.tee $4 - local.get $4 + local.tee $3 + local.get $3 f32.ne i32.eqz if i32.const 0 i32.const 32 - i32.const 3936 + i32.const 3934 i32.const 0 call $~lib/builtins/abort unreachable @@ -55664,7 +55668,7 @@ if i32.const 0 i32.const 32 - i32.const 3937 + i32.const 3935 i32.const 0 call $~lib/builtins/abort unreachable @@ -55678,7 +55682,7 @@ if i32.const 0 i32.const 32 - i32.const 3938 + i32.const 3936 i32.const 0 call $~lib/builtins/abort unreachable @@ -55692,7 +55696,7 @@ if i32.const 0 i32.const 32 - i32.const 3939 + i32.const 3937 i32.const 0 call $~lib/builtins/abort unreachable @@ -55706,7 +55710,7 @@ if i32.const 0 i32.const 32 - i32.const 3940 + i32.const 3938 i32.const 0 call $~lib/builtins/abort unreachable @@ -55720,7 +55724,7 @@ if i32.const 0 i32.const 32 - i32.const 3941 + i32.const 3939 i32.const 0 call $~lib/builtins/abort unreachable @@ -55734,7 +55738,7 @@ if i32.const 0 i32.const 32 - i32.const 3942 + i32.const 3940 i32.const 0 call $~lib/builtins/abort unreachable @@ -55748,7 +55752,7 @@ if i32.const 0 i32.const 32 - i32.const 3943 + i32.const 3941 i32.const 0 call $~lib/builtins/abort unreachable @@ -55762,7 +55766,7 @@ if i32.const 0 i32.const 32 - i32.const 3944 + i32.const 3942 i32.const 0 call $~lib/builtins/abort unreachable @@ -55776,7 +55780,7 @@ if i32.const 0 i32.const 32 - i32.const 3945 + i32.const 3943 i32.const 0 call $~lib/builtins/abort unreachable @@ -55790,7 +55794,7 @@ if i32.const 0 i32.const 32 - i32.const 3946 + i32.const 3944 i32.const 0 call $~lib/builtins/abort unreachable @@ -55804,7 +55808,7 @@ if i32.const 0 i32.const 32 - i32.const 3947 + i32.const 3945 i32.const 0 call $~lib/builtins/abort unreachable @@ -55818,7 +55822,7 @@ if i32.const 0 i32.const 32 - i32.const 3951 + i32.const 3949 i32.const 0 call $~lib/builtins/abort unreachable @@ -55832,7 +55836,7 @@ if i32.const 0 i32.const 32 - i32.const 3952 + i32.const 3950 i32.const 0 call $~lib/builtins/abort unreachable @@ -55847,7 +55851,7 @@ if i32.const 0 i32.const 32 - i32.const 3953 + i32.const 3951 i32.const 0 call $~lib/builtins/abort unreachable @@ -55862,7 +55866,7 @@ if i32.const 0 i32.const 32 - i32.const 3954 + i32.const 3952 i32.const 0 call $~lib/builtins/abort unreachable @@ -55877,7 +55881,7 @@ if i32.const 0 i32.const 32 - i32.const 3955 + i32.const 3953 i32.const 0 call $~lib/builtins/abort unreachable @@ -55891,7 +55895,7 @@ if i32.const 0 i32.const 32 - i32.const 3956 + i32.const 3954 i32.const 0 call $~lib/builtins/abort unreachable @@ -55905,7 +55909,7 @@ if i32.const 0 i32.const 32 - i32.const 3957 + i32.const 3955 i32.const 0 call $~lib/builtins/abort unreachable @@ -55919,7 +55923,7 @@ if i32.const 0 i32.const 32 - i32.const 3958 + i32.const 3956 i32.const 0 call $~lib/builtins/abort unreachable @@ -55933,7 +55937,7 @@ if i32.const 0 i32.const 32 - i32.const 3959 + i32.const 3957 i32.const 0 call $~lib/builtins/abort unreachable @@ -55947,7 +55951,7 @@ if i32.const 0 i32.const 32 - i32.const 3960 + i32.const 3958 i32.const 0 call $~lib/builtins/abort unreachable @@ -55961,7 +55965,7 @@ if i32.const 0 i32.const 32 - i32.const 3961 + i32.const 3959 i32.const 0 call $~lib/builtins/abort unreachable @@ -55975,7 +55979,7 @@ if i32.const 0 i32.const 32 - i32.const 3962 + i32.const 3960 i32.const 0 call $~lib/builtins/abort unreachable @@ -55989,7 +55993,7 @@ if i32.const 0 i32.const 32 - i32.const 3963 + i32.const 3961 i32.const 0 call $~lib/builtins/abort unreachable @@ -56003,7 +56007,7 @@ if i32.const 0 i32.const 32 - i32.const 3964 + i32.const 3962 i32.const 0 call $~lib/builtins/abort unreachable @@ -56017,7 +56021,7 @@ if i32.const 0 i32.const 32 - i32.const 3965 + i32.const 3963 i32.const 0 call $~lib/builtins/abort unreachable @@ -56031,7 +56035,7 @@ if i32.const 0 i32.const 32 - i32.const 3966 + i32.const 3964 i32.const 0 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/seedrandom-const-value.json b/tests/compiler/std/seedrandom-const-value.json deleted file mode 100644 index 3a508958b2..0000000000 --- a/tests/compiler/std/seedrandom-const-value.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "asc_flags": [ - "--runtime none", - "--seedRandom 9223372036854775807" - ] -} \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-const-value.optimized.wat b/tests/compiler/std/seedrandom-const-value.optimized.wat deleted file mode 100644 index 007c468255..0000000000 --- a/tests/compiler/std/seedrandom-const-value.optimized.wat +++ /dev/null @@ -1,146 +0,0 @@ -(module - (type $none_=>_none (func)) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i64_=>_i64 (func (param i64) (result i64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") - (global $~lib/math/random_seeded (mut i32) (i32.const 0)) - (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) - (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) - (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) - (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) - (export "memory" (memory $0)) - (start $~start) - (func $~lib/math/murmurHash3 (; 1 ;) (param $0 i64) (result i64) - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - ) - (func $~lib/math/splitMix32 (; 2 ;) (param $0 i32) (result i32) - local.get $0 - i32.const 1831565813 - i32.add - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - local.get $0 - i32.const 1 - i32.or - i32.mul - local.tee $0 - local.get $0 - local.get $0 - i32.const 61 - i32.or - local.get $0 - local.get $0 - i32.const 7 - i32.shr_u - i32.xor - i32.mul - i32.add - i32.xor - local.tee $0 - local.get $0 - i32.const 14 - i32.shr_u - i32.xor - ) - (func $~lib/math/NativeMath.seedRandom (; 3 ;) - i32.const 1 - global.set $~lib/math/random_seeded - i64.const 9223372036854775807 - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state1_64 - i32.const -1 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state0_32 - global.get $~lib/math/random_state0_32 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state1_32 - global.get $~lib/math/random_state1_32 - i32.const 0 - i32.ne - i32.const 0 - global.get $~lib/math/random_state0_32 - i32.const 0 - global.get $~lib/math/random_state1_64 - i64.const 0 - i64.ne - i32.const 0 - global.get $~lib/math/random_state0_64 - i64.const 0 - i64.ne - select - select - select - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 1411 - i32.const 4 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/math/NativeMath.random (; 4 ;) - (local $0 i64) - (local $1 i64) - global.get $~lib/math/random_seeded - i32.eqz - if - call $~lib/math/NativeMath.seedRandom - end - global.get $~lib/math/random_state0_64 - local.set $0 - global.get $~lib/math/random_state1_64 - local.tee $1 - global.set $~lib/math/random_state0_64 - local.get $1 - local.get $0 - local.get $0 - i64.const 23 - i64.shl - i64.xor - local.tee $0 - local.get $0 - i64.const 17 - i64.shr_u - i64.xor - i64.xor - local.get $1 - i64.const 26 - i64.shr_u - i64.xor - global.set $~lib/math/random_state1_64 - ) - (func $~start (; 5 ;) - call $~lib/math/NativeMath.random - ) -) diff --git a/tests/compiler/std/seedrandom-const-value.ts b/tests/compiler/std/seedrandom-const-value.ts deleted file mode 100644 index f6ce7920db..0000000000 --- a/tests/compiler/std/seedrandom-const-value.ts +++ /dev/null @@ -1 +0,0 @@ -Math.random(); diff --git a/tests/compiler/std/seedrandom-const-value.untouched.wat b/tests/compiler/std/seedrandom-const-value.untouched.wat deleted file mode 100644 index aec99defd2..0000000000 --- a/tests/compiler/std/seedrandom-const-value.untouched.wat +++ /dev/null @@ -1,199 +0,0 @@ -(module - (type $none_=>_none (func)) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i64_=>_none (func (param i64))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_i64 (func (result i64))) - (type $i64_=>_i64 (func (param i64) (result i64))) - (type $none_=>_f64 (func (result f64))) - (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) - (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") - (table $0 1 funcref) - (global $~lib/math/random_seeded (mut i32) (i32.const 0)) - (global $~lib/ASC_SEEDRANDOM_HIGH i32 (i32.const 0)) - (global $~lib/ASC_SEEDRANDOM_LOW i32 (i32.const 0)) - (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) - (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) - (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) - (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) - (export "memory" (memory $0)) - (start $~start) - (func $~lib/math/seedRandomSelect (; 1 ;) (result i64) - i64.const 9223372036854775807 - ) - (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - i64.const -49064778989728563 - i64.mul - local.set $0 - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - i64.const -4265267296055464877 - i64.mul - local.set $0 - local.get $0 - local.get $0 - i64.const 33 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - ) - (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) - local.get $0 - i32.const 1831565813 - i32.add - local.set $0 - local.get $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - local.get $0 - i32.const 1 - i32.or - i32.mul - local.set $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - i32.const 7 - i32.shr_u - i32.xor - local.get $0 - i32.const 61 - i32.or - i32.mul - i32.add - i32.xor - local.set $0 - local.get $0 - local.get $0 - i32.const 14 - i32.shr_u - i32.xor - ) - (func $~lib/math/NativeMath.seedRandom (; 4 ;) (param $0 i64) - i32.const 1 - global.set $~lib/math/random_seeded - local.get $0 - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - call $~lib/math/murmurHash3 - global.set $~lib/math/random_state1_64 - local.get $0 - i32.wrap_i64 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state0_32 - global.get $~lib/math/random_state0_32 - call $~lib/math/splitMix32 - global.set $~lib/math/random_state1_32 - global.get $~lib/math/random_state0_64 - i64.const 0 - i64.ne - if (result i32) - global.get $~lib/math/random_state1_64 - i64.const 0 - i64.ne - else - i32.const 0 - end - if (result i32) - global.get $~lib/math/random_state0_32 - i32.const 0 - i32.ne - else - i32.const 0 - end - if (result i32) - global.get $~lib/math/random_state1_32 - i32.const 0 - i32.ne - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 1411 - i32.const 4 - call $~lib/builtins/abort - unreachable - end - ) - (func $~lib/math/NativeMath.random (; 5 ;) (result f64) - (local $0 i64) - (local $1 i64) - (local $2 i64) - global.get $~lib/math/random_seeded - i32.eqz - if - call $~lib/math/seedRandomSelect - call $~lib/math/NativeMath.seedRandom - end - global.get $~lib/math/random_state0_64 - local.set $0 - global.get $~lib/math/random_state1_64 - local.set $1 - local.get $1 - global.set $~lib/math/random_state0_64 - local.get $0 - local.get $0 - i64.const 23 - i64.shl - i64.xor - local.set $0 - local.get $0 - local.get $0 - i64.const 17 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - local.get $1 - i64.xor - local.set $0 - local.get $0 - local.get $1 - i64.const 26 - i64.shr_u - i64.xor - local.set $0 - local.get $0 - global.set $~lib/math/random_state1_64 - local.get $1 - i64.const 12 - i64.shr_u - i64.const 4607182418800017408 - i64.or - local.set $2 - local.get $2 - f64.reinterpret_i64 - f64.const 1 - f64.sub - ) - (func $start:std/seedrandom-const-value (; 6 ;) - call $~lib/math/NativeMath.random - drop - ) - (func $~start (; 7 ;) - call $start:std/seedrandom-const-value - ) -) diff --git a/tests/compiler/std/seedrandom-const.json b/tests/compiler/std/seedrandom-const.json index 5ca696a037..3a508958b2 100644 --- a/tests/compiler/std/seedrandom-const.json +++ b/tests/compiler/std/seedrandom-const.json @@ -1,6 +1,6 @@ { "asc_flags": [ "--runtime none", - "--seedRandom const" + "--seedRandom 9223372036854775807" ] } \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-const.optimized.wat b/tests/compiler/std/seedrandom-const.optimized.wat index 3280052226..007c468255 100644 --- a/tests/compiler/std/seedrandom-const.optimized.wat +++ b/tests/compiler/std/seedrandom-const.optimized.wat @@ -69,7 +69,7 @@ (func $~lib/math/NativeMath.seedRandom (; 3 ;) i32.const 1 global.set $~lib/math/random_seeded - i64.const 7353165067917700646 + i64.const 9223372036854775807 call $~lib/math/murmurHash3 global.set $~lib/math/random_state0_64 global.get $~lib/math/random_state0_64 @@ -77,7 +77,7 @@ i64.xor call $~lib/math/murmurHash3 global.set $~lib/math/random_state1_64 - i32.const -1475629530 + i32.const -1 call $~lib/math/splitMix32 global.set $~lib/math/random_state0_32 global.get $~lib/math/random_state0_32 diff --git a/tests/compiler/std/seedrandom-const.untouched.wat b/tests/compiler/std/seedrandom-const.untouched.wat index b2fb67504c..9018b41c65 100644 --- a/tests/compiler/std/seedrandom-const.untouched.wat +++ b/tests/compiler/std/seedrandom-const.untouched.wat @@ -20,7 +20,7 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/math/seedRandomSelect (; 1 ;) (result i64) - i64.const -7492762599821236752 + i64.const 9223372036854775807 ) (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) local.get $0 From 3fbbb9e0c89bd7d74819e7ca4096000ca3824771 Mon Sep 17 00:00:00 2001 From: dcode Date: Mon, 27 Jan 2020 23:11:39 +0100 Subject: [PATCH 3/4] add wasi test, fix ABV diagnostic issues --- std/assembly/math.ts | 11 +- tests/compiler/std/array.optimized.wat | 2 +- tests/compiler/std/array.untouched.wat | 2 +- tests/compiler/std/math.optimized.wat | 2 +- tests/compiler/std/math.untouched.wat | 2 +- tests/compiler/std/seedrandom-const.json | 1 + .../std/seedrandom-const.optimized.wat | 45 +++- tests/compiler/std/seedrandom-const.ts | 2 +- .../std/seedrandom-const.untouched.wat | 41 ++- tests/compiler/std/seedrandom-date.json | 1 + .../std/seedrandom-date.optimized.wat | 46 +++- tests/compiler/std/seedrandom-date.ts | 2 +- .../std/seedrandom-date.untouched.wat | 41 ++- tests/compiler/std/seedrandom-func.json | 1 + .../std/seedrandom-func.optimized.wat | 45 +++- tests/compiler/std/seedrandom-func.ts | 2 +- .../std/seedrandom-func.untouched.wat | 43 ++- tests/compiler/std/seedrandom-math.json | 3 +- .../std/seedrandom-math.optimized.wat | 60 +++-- tests/compiler/std/seedrandom-math.ts | 2 +- .../std/seedrandom-math.untouched.wat | 41 ++- tests/compiler/std/seedrandom-wasi.js | 12 + tests/compiler/std/seedrandom-wasi.json | 7 + .../std/seedrandom-wasi.optimized.wat | 209 +++++++++++++++ tests/compiler/std/seedrandom-wasi.ts | 1 + .../std/seedrandom-wasi.untouched.wat | 253 ++++++++++++++++++ 26 files changed, 769 insertions(+), 108 deletions(-) create mode 100644 tests/compiler/std/seedrandom-wasi.js create mode 100644 tests/compiler/std/seedrandom-wasi.json create mode 100644 tests/compiler/std/seedrandom-wasi.optimized.wat create mode 100644 tests/compiler/std/seedrandom-wasi.ts create mode 100644 tests/compiler/std/seedrandom-wasi.untouched.wat diff --git a/std/assembly/math.ts b/std/assembly/math.ts index 3f186ac87f..a86c0c29e1 100644 --- a/std/assembly/math.ts +++ b/std/assembly/math.ts @@ -1,8 +1,9 @@ /// +import { ArrayBufferView } from "./arraybuffer"; import * as JSMath from "./bindings/Math"; import * as JSDate from "./bindings/Date"; -import * as wasi from "./bindings/wasi"; +import * as wasi from "./bindings/wasi_snapshot"; export { JSMath }; @@ -140,7 +141,7 @@ function umuldi(u: u64, v: u64): u64 { /** @internal */ function pio2_large_quot(x: f64, u: i64): i32 { // see: jdh8/metallic/blob/master/src/math/double/rem_pio2.c - const bits = PIO2_TABLE.dataStart; + const bits = changetype(PIO2_TABLE).dataStart; var magnitude = u & 0x7FFFFFFFFFFFFFFF; var offset = (magnitude >> 52) - 1045; @@ -1787,7 +1788,7 @@ function expo2f(x: f32): f32 { // exp(x)/2 for x >= log(DBL_MAX) @inline function pio2f_large_quot(x: f32, u: i32): i32 { // see: jdh8/metallic/blob/master/src/math/float/rem_pio2f.c const coeff = reinterpret(0x3BF921FB54442D18); // π * 0x1p-65 = 8.51530395021638647334e-20 - const bits = PIO2F_TABLE.dataStart; + const bits = changetype(PIO2F_TABLE).dataStart; var offset = (u >> 23) - 152; var shift = (offset & 63); @@ -3138,9 +3139,9 @@ export function ipow64f(x: f64, e: i32): f64 { return sign ? 1.0 / out : out; } -// @ts-ignore +// @ts-ignore: decorator @lazy -const seedRandomSelect_wasiBuf: i64[] = [0]; +const seedRandomSelect_wasiBuf: i64[] = [ 0 ]; function seedRandomSelect(): i64 { if (isDefined(ASC_SEEDRANDOM_FUNC)) return ASC_SEEDRANDOM_FUNC(); diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index 364befd847..1386196254 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -5671,7 +5671,7 @@ if i32.const 0 i32.const 4816 - i32.const 1411 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 0b46fd333e..4d7b80f256 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -9276,7 +9276,7 @@ if i32.const 0 i32.const 4816 - i32.const 1411 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/math.optimized.wat b/tests/compiler/std/math.optimized.wat index 7afb09cf32..87e46e5559 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -8666,7 +8666,7 @@ if i32.const 0 i32.const 3104 - i32.const 1411 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index 75e42deee3..f5452f65b6 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -11349,7 +11349,7 @@ if i32.const 0 i32.const 13888 - i32.const 1411 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/seedrandom-const.json b/tests/compiler/std/seedrandom-const.json index 3a508958b2..26d5172649 100644 --- a/tests/compiler/std/seedrandom-const.json +++ b/tests/compiler/std/seedrandom-const.json @@ -1,6 +1,7 @@ { "asc_flags": [ "--runtime none", + "--explicitStart", "--seedRandom 9223372036854775807" ] } \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-const.optimized.wat b/tests/compiler/std/seedrandom-const.optimized.wat index 007c468255..26687ae2d8 100644 --- a/tests/compiler/std/seedrandom-const.optimized.wat +++ b/tests/compiler/std/seedrandom-const.optimized.wat @@ -1,19 +1,24 @@ (module (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_f64 (func (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=") + (data (i32.const 64) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) (export "memory" (memory $0)) - (start $~start) - (func $~lib/math/murmurHash3 (; 1 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -34,7 +39,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 2 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -66,7 +71,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 3 ;) + (func $~lib/math/NativeMath.seedRandom (; 4 ;) i32.const 1 global.set $~lib/math/random_seeded i64.const 9223372036854775807 @@ -102,14 +107,14 @@ i32.eqz if i32.const 0 - i32.const 32 - i32.const 1411 + i32.const 80 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $~lib/math/NativeMath.random (; 4 ;) + (func $~lib/math/NativeMath.random (; 5 ;) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -139,8 +144,30 @@ i64.shr_u i64.xor global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub ) - (func $~start (; 5 ;) + (func $~start (; 6 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end + i32.const 32 + i32.const 1 call $~lib/math/NativeMath.random + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace ) ) diff --git a/tests/compiler/std/seedrandom-const.ts b/tests/compiler/std/seedrandom-const.ts index f6ce7920db..1ae45b386d 100644 --- a/tests/compiler/std/seedrandom-const.ts +++ b/tests/compiler/std/seedrandom-const.ts @@ -1 +1 @@ -Math.random(); +trace("Math.random =", 1, Math.random()); diff --git a/tests/compiler/std/seedrandom-const.untouched.wat b/tests/compiler/std/seedrandom-const.untouched.wat index 9018b41c65..0e1c3c9574 100644 --- a/tests/compiler/std/seedrandom-const.untouched.wat +++ b/tests/compiler/std/seedrandom-const.untouched.wat @@ -1,14 +1,17 @@ (module (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $i64_=>_none (func (param i64))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_i64 (func (result i64))) (type $i64_=>_i64 (func (param i64) (result i64))) (type $none_=>_f64 (func (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=\00") + (data (i32.const 64) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") (table $0 1 funcref) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/ASC_SEEDRANDOM_HIGH i32 (i32.const 0)) @@ -17,12 +20,13 @@ (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) (export "memory" (memory $0)) - (start $~start) - (func $~lib/math/seedRandomSelect (; 1 ;) (result i64) + (func $~lib/math/seedRandomSelect (; 2 ;) (result i64) i64.const 9223372036854775807 ) - (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 3 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -51,7 +55,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 4 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -86,7 +90,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 4 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 5 ;) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -131,14 +135,14 @@ i32.eqz if i32.const 0 - i32.const 32 - i32.const 1411 + i32.const 80 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $~lib/math/NativeMath.random (; 5 ;) (result f64) + (func $~lib/math/NativeMath.random (; 6 ;) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -189,11 +193,24 @@ f64.const 1 f64.sub ) - (func $start:std/seedrandom-const (; 6 ;) + (func $start:std/seedrandom-const (; 7 ;) + i32.const 32 + i32.const 1 call $~lib/math/NativeMath.random - drop + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace ) - (func $~start (; 7 ;) + (func $~start (; 8 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end call $start:std/seedrandom-const ) ) diff --git a/tests/compiler/std/seedrandom-date.json b/tests/compiler/std/seedrandom-date.json index ab02475d67..fe282cb62c 100644 --- a/tests/compiler/std/seedrandom-date.json +++ b/tests/compiler/std/seedrandom-date.json @@ -1,6 +1,7 @@ { "asc_flags": [ "--runtime none", + "--explicitStart", "--seedRandom date" ] } \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-date.optimized.wat b/tests/compiler/std/seedrandom-date.optimized.wat index 98e746f4c4..8344ff9e81 100644 --- a/tests/compiler/std/seedrandom-date.optimized.wat +++ b/tests/compiler/std/seedrandom-date.optimized.wat @@ -1,22 +1,26 @@ (module + (type $none_=>_f64 (func (result f64))) (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $i64_=>_none (func (param i64))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) - (type $none_=>_f64 (func (result f64))) (import "Date" "now" (func $~lib/bindings/Date/now (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=") + (data (i32.const 64) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) (export "memory" (memory $0)) - (start $~start) - (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 3 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -37,7 +41,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 4 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -69,7 +73,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 4 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 5 ;) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -106,14 +110,14 @@ i32.eqz if i32.const 0 - i32.const 32 - i32.const 1411 + i32.const 80 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $~lib/math/NativeMath.random (; 5 ;) + (func $~lib/math/NativeMath.random (; 6 ;) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -145,8 +149,30 @@ i64.shr_u i64.xor global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub ) - (func $~start (; 6 ;) + (func $~start (; 7 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end + i32.const 32 + i32.const 1 call $~lib/math/NativeMath.random + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace ) ) diff --git a/tests/compiler/std/seedrandom-date.ts b/tests/compiler/std/seedrandom-date.ts index f6ce7920db..1ae45b386d 100644 --- a/tests/compiler/std/seedrandom-date.ts +++ b/tests/compiler/std/seedrandom-date.ts @@ -1 +1 @@ -Math.random(); +trace("Math.random =", 1, Math.random()); diff --git a/tests/compiler/std/seedrandom-date.untouched.wat b/tests/compiler/std/seedrandom-date.untouched.wat index 4f0bc82509..c8b5c1225f 100644 --- a/tests/compiler/std/seedrandom-date.untouched.wat +++ b/tests/compiler/std/seedrandom-date.untouched.wat @@ -2,28 +2,32 @@ (type $none_=>_none (func)) (type $none_=>_f64 (func (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $i64_=>_none (func (param i64))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_i64 (func (result i64))) (type $i64_=>_i64 (func (param i64) (result i64))) (import "Date" "now" (func $~lib/bindings/Date/now (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=\00") + (data (i32.const 64) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") (table $0 1 funcref) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) (export "memory" (memory $0)) - (start $~start) - (func $~lib/math/seedRandomSelect (; 2 ;) (result i64) + (func $~lib/math/seedRandomSelect (; 3 ;) (result i64) call $~lib/bindings/Date/now i64.trunc_f64_s return ) - (func $~lib/math/murmurHash3 (; 3 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 4 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -52,7 +56,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 4 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 5 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -87,7 +91,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 5 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 6 ;) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -132,14 +136,14 @@ i32.eqz if i32.const 0 - i32.const 32 - i32.const 1411 + i32.const 80 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $~lib/math/NativeMath.random (; 6 ;) (result f64) + (func $~lib/math/NativeMath.random (; 7 ;) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -190,11 +194,24 @@ f64.const 1 f64.sub ) - (func $start:std/seedrandom-date (; 7 ;) + (func $start:std/seedrandom-date (; 8 ;) + i32.const 32 + i32.const 1 call $~lib/math/NativeMath.random - drop + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace ) - (func $~start (; 8 ;) + (func $~start (; 9 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end call $start:std/seedrandom-date ) ) diff --git a/tests/compiler/std/seedrandom-func.json b/tests/compiler/std/seedrandom-func.json index 2dae217703..51aa5ea2f2 100644 --- a/tests/compiler/std/seedrandom-func.json +++ b/tests/compiler/std/seedrandom-func.json @@ -1,6 +1,7 @@ { "asc_flags": [ "--runtime none", + "--explicitStart", "--seedRandom std/seedrandom-func/seedRandom" ] } \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-func.optimized.wat b/tests/compiler/std/seedrandom-func.optimized.wat index 38595f43f1..f7fffef6ae 100644 --- a/tests/compiler/std/seedrandom-func.optimized.wat +++ b/tests/compiler/std/seedrandom-func.optimized.wat @@ -1,19 +1,24 @@ (module (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_f64 (func (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=") + (data (i32.const 64) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) (export "memory" (memory $0)) - (start $~start) - (func $~lib/math/murmurHash3 (; 1 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -34,7 +39,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 2 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -66,7 +71,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 3 ;) + (func $~lib/math/NativeMath.seedRandom (; 4 ;) i32.const 1 global.set $~lib/math/random_seeded i64.const 1 @@ -102,14 +107,14 @@ i32.eqz if i32.const 0 - i32.const 32 - i32.const 1411 + i32.const 80 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $~lib/math/NativeMath.random (; 4 ;) + (func $~lib/math/NativeMath.random (; 5 ;) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -139,8 +144,30 @@ i64.shr_u i64.xor global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub ) - (func $~start (; 5 ;) + (func $~start (; 6 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end + i32.const 32 + i32.const 1 call $~lib/math/NativeMath.random + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace ) ) diff --git a/tests/compiler/std/seedrandom-func.ts b/tests/compiler/std/seedrandom-func.ts index 88b153c497..e1256bc3a7 100644 --- a/tests/compiler/std/seedrandom-func.ts +++ b/tests/compiler/std/seedrandom-func.ts @@ -2,4 +2,4 @@ function seedRandom(): i64 { return 1; } -Math.random(); +trace("Math.random =", 1, Math.random()); diff --git a/tests/compiler/std/seedrandom-func.untouched.wat b/tests/compiler/std/seedrandom-func.untouched.wat index 50bb7c10ce..53f801e38f 100644 --- a/tests/compiler/std/seedrandom-func.untouched.wat +++ b/tests/compiler/std/seedrandom-func.untouched.wat @@ -2,29 +2,33 @@ (type $none_=>_none (func)) (type $none_=>_i64 (func (result i64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $i64_=>_none (func (param i64))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) (type $none_=>_f64 (func (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=\00") + (data (i32.const 64) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") (table $0 1 funcref) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) (export "memory" (memory $0)) - (start $~start) - (func $std/seedrandom-func/seedRandom (; 1 ;) (result i64) + (func $std/seedrandom-func/seedRandom (; 2 ;) (result i64) i64.const 1 ) - (func $~lib/math/seedRandomSelect (; 2 ;) (result i64) + (func $~lib/math/seedRandomSelect (; 3 ;) (result i64) call $std/seedrandom-func/seedRandom return ) - (func $~lib/math/murmurHash3 (; 3 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 4 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -53,7 +57,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 4 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 5 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -88,7 +92,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 5 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 6 ;) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -133,14 +137,14 @@ i32.eqz if i32.const 0 - i32.const 32 - i32.const 1411 + i32.const 80 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $~lib/math/NativeMath.random (; 6 ;) (result f64) + (func $~lib/math/NativeMath.random (; 7 ;) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -191,11 +195,24 @@ f64.const 1 f64.sub ) - (func $start:std/seedrandom-func (; 7 ;) + (func $start:std/seedrandom-func (; 8 ;) + i32.const 32 + i32.const 1 call $~lib/math/NativeMath.random - drop + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace ) - (func $~start (; 8 ;) + (func $~start (; 9 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end call $start:std/seedrandom-func ) ) diff --git a/tests/compiler/std/seedrandom-math.json b/tests/compiler/std/seedrandom-math.json index 49cb5d56a4..78c8fec8ad 100644 --- a/tests/compiler/std/seedrandom-math.json +++ b/tests/compiler/std/seedrandom-math.json @@ -1,6 +1,7 @@ { "asc_flags": [ "--runtime none", - "--seedRandom math" + "--seedRandom math", + "--explicitStart" ] } \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-math.optimized.wat b/tests/compiler/std/seedrandom-math.optimized.wat index 7fd111adcf..11dced58e8 100644 --- a/tests/compiler/std/seedrandom-math.optimized.wat +++ b/tests/compiler/std/seedrandom-math.optimized.wat @@ -1,22 +1,26 @@ (module + (type $none_=>_f64 (func (result f64))) (type $none_=>_none (func)) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $i64_=>_none (func (param i64))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $i64_=>_i64 (func (param i64) (result i64))) - (type $none_=>_f64 (func (result f64))) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=") + (data (i32.const 64) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) (export "memory" (memory $0)) - (start $~start) - (func $~lib/math/murmurHash3 (; 2 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 3 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -37,7 +41,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 3 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 4 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -69,7 +73,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 4 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 5 ;) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -106,14 +110,14 @@ i32.eqz if i32.const 0 - i32.const 32 - i32.const 1411 + i32.const 80 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $~lib/math/NativeMath.random (; 5 ;) + (func $~lib/math/NativeMath.random (; 6 ;) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded @@ -130,29 +134,51 @@ call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 - local.set $0 + local.set $1 global.get $~lib/math/random_state1_64 - local.tee $1 + local.tee $0 global.set $~lib/math/random_state0_64 - local.get $1 - local.get $0 local.get $0 + local.get $1 + local.get $1 i64.const 23 i64.shl i64.xor - local.tee $0 - local.get $0 + local.tee $1 + local.get $1 i64.const 17 i64.shr_u i64.xor i64.xor - local.get $1 + local.get $0 i64.const 26 i64.shr_u i64.xor global.set $~lib/math/random_state1_64 + local.get $0 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub ) - (func $~start (; 6 ;) + (func $~start (; 7 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end + i32.const 32 + i32.const 1 call $~lib/math/NativeMath.random + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace ) ) diff --git a/tests/compiler/std/seedrandom-math.ts b/tests/compiler/std/seedrandom-math.ts index f6ce7920db..1ae45b386d 100644 --- a/tests/compiler/std/seedrandom-math.ts +++ b/tests/compiler/std/seedrandom-math.ts @@ -1 +1 @@ -Math.random(); +trace("Math.random =", 1, Math.random()); diff --git a/tests/compiler/std/seedrandom-math.untouched.wat b/tests/compiler/std/seedrandom-math.untouched.wat index 01692511e3..9f31ba26cb 100644 --- a/tests/compiler/std/seedrandom-math.untouched.wat +++ b/tests/compiler/std/seedrandom-math.untouched.wat @@ -2,23 +2,27 @@ (type $none_=>_none (func)) (type $none_=>_f64 (func (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) (type $i64_=>_none (func (param i64))) (type $i32_=>_i32 (func (param i32) (result i32))) (type $none_=>_i64 (func (result i64))) (type $i64_=>_i64 (func (param i64) (result i64))) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) (memory $0 1) - (data (i32.const 16) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=\00") + (data (i32.const 64) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") (table $0 1 funcref) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) (export "memory" (memory $0)) - (start $~start) - (func $~lib/math/seedRandomSelect (; 2 ;) (result i64) + (func $~lib/math/seedRandomSelect (; 3 ;) (result i64) (local $0 i64) (local $1 i32) loop $do-continue|0 @@ -36,7 +40,7 @@ local.get $0 return ) - (func $~lib/math/murmurHash3 (; 3 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 4 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -65,7 +69,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 4 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 5 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -100,7 +104,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 5 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 6 ;) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -145,14 +149,14 @@ i32.eqz if i32.const 0 - i32.const 32 - i32.const 1411 + i32.const 80 + i32.const 1412 i32.const 4 call $~lib/builtins/abort unreachable end ) - (func $~lib/math/NativeMath.random (; 6 ;) (result f64) + (func $~lib/math/NativeMath.random (; 7 ;) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) @@ -203,11 +207,24 @@ f64.const 1 f64.sub ) - (func $start:std/seedrandom-math (; 7 ;) + (func $start:std/seedrandom-math (; 8 ;) + i32.const 32 + i32.const 1 call $~lib/math/NativeMath.random - drop + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace ) - (func $~start (; 8 ;) + (func $~start (; 9 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end call $start:std/seedrandom-math ) ) diff --git a/tests/compiler/std/seedrandom-wasi.js b/tests/compiler/std/seedrandom-wasi.js new file mode 100644 index 0000000000..2cfee51e37 --- /dev/null +++ b/tests/compiler/std/seedrandom-wasi.js @@ -0,0 +1,12 @@ +exports.preInstantiate = function(imports, exports) { + imports.wasi_snapshot = { + random_get: function(buf, len) { + var len32 = len >>> 2; + var view = new Uint32Array(exports.memory.buffer, buf, len32); + for (let i = 0; i < len32; ++i) { + view[i] = (Math.random() * 0xffffffff) >>> 0; + } + return 0; + } + }; +}; diff --git a/tests/compiler/std/seedrandom-wasi.json b/tests/compiler/std/seedrandom-wasi.json new file mode 100644 index 0000000000..e7eb540fba --- /dev/null +++ b/tests/compiler/std/seedrandom-wasi.json @@ -0,0 +1,7 @@ +{ + "asc_flags": [ + "--runtime none", + "--explicitStart", + "--seedRandom wasi" + ] +} \ No newline at end of file diff --git a/tests/compiler/std/seedrandom-wasi.optimized.wat b/tests/compiler/std/seedrandom-wasi.optimized.wat new file mode 100644 index 0000000000..fc39f53d08 --- /dev/null +++ b/tests/compiler/std/seedrandom-wasi.optimized.wat @@ -0,0 +1,209 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $i64_=>_none (func (param i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_i64 (func (result i64))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_f64 (func (result f64))) + (import "wasi_snapshot" "random_get" (func $~lib/bindings/wasi_snapshot/random_get (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) + (memory $0 1) + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=") + (data (i32.const 64) "\08\00\00\00\01\00\00\00\00\00\00\00\08") + (data (i32.const 96) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00P\00\00\00P\00\00\00\08\00\00\00\01") + (data (i32.const 128) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s") + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) + (export "memory" (memory $0)) + (func $~lib/math/seedRandomSelect (; 3 ;) (result i64) + (local $0 i32) + (local $1 i64) + i32.const 116 + i32.load + local.set $0 + loop $do-continue|0 + local.get $0 + i32.const 8 + call $~lib/bindings/wasi_snapshot/random_get + i32.const 65535 + i32.and + if + i32.const 0 + i32.const 144 + i32.const 3158 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.load + local.tee $1 + i64.eqz + br_if $do-continue|0 + end + local.get $1 + ) + (func $~lib/math/murmurHash3 (; 4 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -49064778989728563 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + i64.const -4265267296055464877 + i64.mul + local.tee $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + ) + (func $~lib/math/splitMix32 (; 5 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.tee $0 + local.get $0 + local.get $0 + i32.const 61 + i32.or + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + i32.mul + i32.add + i32.xor + local.tee $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 6 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + i32.const 0 + global.get $~lib/math/random_state0_32 + i32.const 0 + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + i32.const 0 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + select + select + select + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 1412 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 7 ;) (result f64) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/seedRandomSelect + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.tee $1 + global.set $~lib/math/random_state0_64 + local.get $1 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.tee $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + i64.xor + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $~start (; 8 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end + i32.const 32 + i32.const 1 + call $~lib/math/NativeMath.random + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + ) +) diff --git a/tests/compiler/std/seedrandom-wasi.ts b/tests/compiler/std/seedrandom-wasi.ts new file mode 100644 index 0000000000..1ae45b386d --- /dev/null +++ b/tests/compiler/std/seedrandom-wasi.ts @@ -0,0 +1 @@ +trace("Math.random =", 1, Math.random()); diff --git a/tests/compiler/std/seedrandom-wasi.untouched.wat b/tests/compiler/std/seedrandom-wasi.untouched.wat new file mode 100644 index 0000000000..e82edca686 --- /dev/null +++ b/tests/compiler/std/seedrandom-wasi.untouched.wat @@ -0,0 +1,253 @@ +(module + (type $none_=>_none (func)) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) + (type $i64_=>_none (func (param i64))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $none_=>_i64 (func (result i64))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (type $none_=>_f64 (func (result f64))) + (import "wasi_snapshot" "random_get" (func $~lib/bindings/wasi_snapshot/random_get (param i32 i32) (result i32))) + (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) + (import "env" "trace" (func $~lib/builtins/trace (param i32 i32 f64 f64 f64 f64 f64))) + (memory $0 1) + (data (i32.const 16) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00M\00a\00t\00h\00.\00r\00a\00n\00d\00o\00m\00 \00=\00") + (data (i32.const 64) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 96) "\10\00\00\00\01\00\00\00\03\00\00\00\10\00\00\00P\00\00\00P\00\00\00\08\00\00\00\01\00\00\00") + (data (i32.const 128) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") + (table $0 1 funcref) + (global $~lib/math/random_seeded (mut i32) (i32.const 0)) + (global $~lib/math/seedRandomSelect_wasiBuf i32 (i32.const 112)) + (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) + (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) + (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) + (global $~started (mut i32) (i32.const 0)) + (export "_start" (func $~start)) + (export "memory" (memory $0)) + (func $~lib/math/seedRandomSelect (; 3 ;) (result i64) + (local $0 i32) + (local $1 i64) + (local $2 i32) + global.get $~lib/math/seedRandomSelect_wasiBuf + i32.load offset=4 + local.set $0 + loop $do-continue|0 + local.get $0 + i32.const 8 + call $~lib/bindings/wasi_snapshot/random_get + i32.const 65535 + i32.and + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 3158 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i64.load + local.tee $1 + i64.const 0 + i64.ne + i32.eqz + local.set $2 + local.get $2 + br_if $do-continue|0 + end + local.get $1 + return + ) + (func $~lib/math/murmurHash3 (; 4 ;) (param $0 i64) (result i64) + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -49064778989728563 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + i64.const -4265267296055464877 + i64.mul + local.set $0 + local.get $0 + local.get $0 + i64.const 33 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + ) + (func $~lib/math/splitMix32 (; 5 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 1831565813 + i32.add + local.set $0 + local.get $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + local.get $0 + i32.const 1 + i32.or + i32.mul + local.set $0 + local.get $0 + local.get $0 + local.get $0 + local.get $0 + i32.const 7 + i32.shr_u + i32.xor + local.get $0 + i32.const 61 + i32.or + i32.mul + i32.add + i32.xor + local.set $0 + local.get $0 + local.get $0 + i32.const 14 + i32.shr_u + i32.xor + ) + (func $~lib/math/NativeMath.seedRandom (; 6 ;) (param $0 i64) + i32.const 1 + global.set $~lib/math/random_seeded + local.get $0 + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state0_64 + global.get $~lib/math/random_state0_64 + i64.const -1 + i64.xor + call $~lib/math/murmurHash3 + global.set $~lib/math/random_state1_64 + local.get $0 + i32.wrap_i64 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state0_32 + global.get $~lib/math/random_state0_32 + call $~lib/math/splitMix32 + global.set $~lib/math/random_state1_32 + global.get $~lib/math/random_state0_64 + i64.const 0 + i64.ne + if (result i32) + global.get $~lib/math/random_state1_64 + i64.const 0 + i64.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state0_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + if (result i32) + global.get $~lib/math/random_state1_32 + i32.const 0 + i32.ne + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 1412 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 7 ;) (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/math/seedRandomSelect + call $~lib/math/NativeMath.seedRandom + end + global.get $~lib/math/random_state0_64 + local.set $0 + global.get $~lib/math/random_state1_64 + local.set $1 + local.get $1 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $0 + i64.const 23 + i64.shl + i64.xor + local.set $0 + local.get $0 + local.get $0 + i64.const 17 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.xor + local.set $0 + local.get $0 + local.get $1 + i64.const 26 + i64.shr_u + i64.xor + local.set $0 + local.get $0 + global.set $~lib/math/random_state1_64 + local.get $1 + i64.const 12 + i64.shr_u + i64.const 4607182418800017408 + i64.or + local.set $2 + local.get $2 + f64.reinterpret_i64 + f64.const 1 + f64.sub + ) + (func $start:std/seedrandom-wasi (; 8 ;) + i32.const 32 + i32.const 1 + call $~lib/math/NativeMath.random + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/builtins/trace + ) + (func $~start (; 9 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end + call $start:std/seedrandom-wasi + ) +) From 5fe77c02d9e452ba23ae374e98b5752192d26eed Mon Sep 17 00:00:00 2001 From: dcode Date: Thu, 30 Jan 2020 17:21:41 +0100 Subject: [PATCH 4/4] update fixture --- tests/compiler/std/seedrandom-const.untouched.wat | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/compiler/std/seedrandom-const.untouched.wat b/tests/compiler/std/seedrandom-const.untouched.wat index 0e1c3c9574..07ae1ec275 100644 --- a/tests/compiler/std/seedrandom-const.untouched.wat +++ b/tests/compiler/std/seedrandom-const.untouched.wat @@ -14,8 +14,8 @@ (data (i32.const 64) "\18\00\00\00\01\00\00\00\01\00\00\00\18\00\00\00~\00l\00i\00b\00/\00m\00a\00t\00h\00.\00t\00s\00") (table $0 1 funcref) (global $~lib/math/random_seeded (mut i32) (i32.const 0)) - (global $~lib/ASC_SEEDRANDOM_HIGH i32 (i32.const 0)) - (global $~lib/ASC_SEEDRANDOM_LOW i32 (i32.const 0)) + (global $~lib/ASC_SEEDRANDOM_HIGH i32 (i32.const 2147483647)) + (global $~lib/ASC_SEEDRANDOM_LOW i32 (i32.const -1)) (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) (global $~lib/math/random_state0_32 (mut i32) (i32.const 0))