diff --git a/cli/asc.js b/cli/asc.js index 531e155b70..cb2be498bc 100644 --- a/cli/asc.js +++ b/cli/asc.js @@ -248,12 +248,6 @@ exports.main = function main(argv, options, callback) { assemblyscript.setNoUnsafe(compilerOptions, args.noUnsafe); assemblyscript.setPedantic(compilerOptions, args.pedantic); - // Initialize default aliases - assemblyscript.setGlobalAlias(compilerOptions, "Math", "NativeMath"); - assemblyscript.setGlobalAlias(compilerOptions, "Mathf", "NativeMathf"); - assemblyscript.setGlobalAlias(compilerOptions, "abort", "~lib/builtins/abort"); - assemblyscript.setGlobalAlias(compilerOptions, "trace", "~lib/builtins/trace"); - // Add or override aliases if specified if (args.use) { let aliases = args.use; diff --git a/lib/loader/index.js b/lib/loader/index.js index 7e5d56b42b..96312c2a0b 100644 --- a/lib/loader/index.js +++ b/lib/loader/index.js @@ -69,12 +69,15 @@ function preInstantiate(imports) { const env = (imports.env = imports.env || {}); env.abort = env.abort || function abort(mesg, file, line, colm) { const memory = baseModule.memory || env.memory; // prefer exported, otherwise try imported - throw Error("abort: " + getString(memory, mesg) + " at " + getString(memory, file) + ":" + line + ":" + colm); - } + throw Error("abort: " + getString(memory, mesg) + " in " + getString(memory, file) + "(" + line + ":" + colm + ")"); + }; env.trace = env.trace || function trace(mesg, n) { const memory = baseModule.memory || env.memory; console.log("trace: " + getString(memory, mesg) + (n ? " " : "") + Array.prototype.slice.call(arguments, 2, 2 + n).join(", ")); - } + }; + env.seed = env.seed || function seed() { + return Date.now(); + }; imports.Math = imports.Math || Math; imports.Date = imports.Date || Date; diff --git a/src/builtins.ts b/src/builtins.ts index a32cd9a359..3ea0512792 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -119,6 +119,10 @@ export namespace BuiltinNames { export const setArgumentsLength = "~setArgumentsLength"; // std/builtins.ts + export const abort = "~lib/builtins/abort"; + export const trace = "~lib/builtins/trace"; + export const seed = "~lib/builtins/seed"; + export const isInteger = "~lib/builtins/isInteger"; export const isFloat = "~lib/builtins/isFloat"; export const isBoolean = "~lib/builtins/isBoolean"; @@ -583,6 +587,11 @@ export namespace BuiltinNames { export const Uint64Array = "~lib/typedarray/Uint64Array"; export const Float32Array = "~lib/typedarray/Float32Array"; export const Float64Array = "~lib/typedarray/Float64Array"; + + // std/bindings/wasi.ts + export const wasiAbort = "~lib/wasi/index/abort"; + export const wasiTrace = "~lib/wasi/index/trace"; + export const wasiSeed = "~lib/wasi/index/seed"; } /** Builtin compilation context. */ diff --git a/src/common.ts b/src/common.ts index 4966af5751..d89b0076f4 100644 --- a/src/common.ts +++ b/src/common.ts @@ -154,6 +154,7 @@ export namespace CommonNames { export const ASC_TABLE_BASE = "ASC_TABLE_BASE"; export const ASC_OPTIMIZE_LEVEL = "ASC_OPTIMIZE_LEVEL"; export const ASC_SHRINK_LEVEL = "ASC_SHRINK_LEVEL"; + export const ASC_WASI = "ASC_WASI"; export const ASC_FEATURE_SIGN_EXTENSION = "ASC_FEATURE_SIGN_EXTENSION"; export const ASC_FEATURE_MUTABLE_GLOBALS = "ASC_FEATURE_MUTABLE_GLOBALS"; export const ASC_FEATURE_NONTRAPPING_F2I = "ASC_FEATURE_NONTRAPPING_F2I"; @@ -189,6 +190,8 @@ export namespace CommonNames { export const ArrayBuffer = "ArrayBuffer"; export const Math = "Math"; export const Mathf = "Mathf"; + export const NativeMath = "NativeMath"; + export const NativeMathf = "NativeMathf"; export const Int8Array = "Int8Array"; export const Int16Array = "Int16Array"; export const Int32Array = "Int32Array"; @@ -203,6 +206,8 @@ export namespace CommonNames { export const Error = "Error"; // runtime export const abort = "abort"; + export const trace = "trace"; + export const seed = "seed"; export const pow = "pow"; export const mod = "mod"; export const alloc = "__alloc"; diff --git a/src/compiler.ts b/src/compiler.ts index 2a376a912b..e864617d94 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -426,7 +426,7 @@ export class Compiler extends DiagnosticEmitter { // compile the start function if not empty or if explicitly requested var startIsEmpty = !startFunctionBody.length; - var explicitStart = options.explicitStart; + var explicitStart = program.isWasi || options.explicitStart; if (!startIsEmpty || explicitStart) { let signature = startFunctionInstance.signature; if (!startIsEmpty && explicitStart) { @@ -8832,7 +8832,7 @@ export class Compiler extends DiagnosticEmitter { reportNode: Node ): ExpressionRef { var ctor = this.ensureConstructor(classInstance, reportNode); - if (ctor.hasDecorator(DecoratorFlags.UNSAFE)) this.checkUnsafe(reportNode); + if (classInstance.type.isUnmanaged || ctor.hasDecorator(DecoratorFlags.UNSAFE)) this.checkUnsafe(reportNode); var expr = this.compileCallDirect( // no need for another autoreleased local ctor, argumentExpressions, diff --git a/src/program.ts b/src/program.ts index fa856929c9..f04f86a3de 100644 --- a/src/program.ts +++ b/src/program.ts @@ -139,6 +139,10 @@ import { Parser } from "./parser"; +import { + BuiltinNames +} from "./builtins"; + /** Represents a yet unresolved `import`. */ class QueuedImport { constructor( @@ -513,6 +517,12 @@ export class Program extends DiagnosticEmitter { nextSignatureId: i32 = 0; /** An indicator if the program has been initialized. */ initialized: bool = false; + + /** Tests whether this is a WASI program. */ + get isWasi(): bool { + return this.elementsByName.has(CommonNames.ASC_WASI); + } + /** Constructs a new program, optionally inheriting parser diagnostics. */ constructor( /** Compiler options. */ @@ -1000,23 +1010,49 @@ export class Program extends DiagnosticEmitter { // set up global aliases { let globalAliases = options.globalAliases; - if (globalAliases) { - // TODO: for (let [alias, name] of globalAliases) { - for (let _keys = Map_keys(globalAliases), i = 0, k = _keys.length; i < k; ++i) { - let alias = unchecked(_keys[i]); - let name = assert(globalAliases.get(alias)); - if (!name.length) continue; // explicitly disabled - let firstChar = name.charCodeAt(0); - if (firstChar >= CharCode._0 && firstChar <= CharCode._9) { - this.registerConstantInteger(alias, Type.i32, i64_new(parseInt(name, 10))); + if (!globalAliases) globalAliases = new Map(); + let isWasi = this.isWasi; + if (!globalAliases.has(CommonNames.abort)) { + globalAliases.set(CommonNames.abort, + isWasi + ? BuiltinNames.wasiAbort + : BuiltinNames.abort + ); + } + if (!globalAliases.has(CommonNames.trace)) { + globalAliases.set(CommonNames.trace, + isWasi + ? BuiltinNames.wasiTrace + : BuiltinNames.trace + ); + } + if (!globalAliases.has(CommonNames.seed)) { + globalAliases.set(CommonNames.seed, + isWasi + ? BuiltinNames.wasiSeed + : BuiltinNames.seed + ); + } + if (!globalAliases.has(CommonNames.Math)) { + globalAliases.set(CommonNames.Math, CommonNames.NativeMath); + } + if (!globalAliases.has(CommonNames.Mathf)) { + globalAliases.set(CommonNames.Mathf, CommonNames.NativeMathf); + } + // TODO: for (let [alias, name] of globalAliases) { + for (let _keys = Map_keys(globalAliases), i = 0, k = _keys.length; i < k; ++i) { + let alias = unchecked(_keys[i]); + let name = assert(globalAliases.get(alias)); + if (!name.length) continue; // explicitly disabled + let firstChar = name.charCodeAt(0); + if (firstChar >= CharCode._0 && firstChar <= CharCode._9) { + this.registerConstantInteger(alias, Type.i32, i64_new(parseInt(name, 10))); + } else { + let elementsByName = this.elementsByName; + if (elementsByName.has(name)) { + elementsByName.set(alias, assert(elementsByName.get(name))); } else { - let elementsByName = this.elementsByName; - let element = elementsByName.get(name); - if (element) { - if (elementsByName.has(alias)) throw new Error("duplicate global element: " + name); - elementsByName.set(alias, element); - } - else throw new Error("no such global element: " + name); + throw new Error("no such global element: " + name); } } } diff --git a/std/assembly/bindings/wasi_snapshot_preview1.ts b/std/assembly/bindings/wasi_snapshot_preview1.ts index ba691f994d..9bb6a6e6b2 100644 --- a/std/assembly/bindings/wasi_snapshot_preview1.ts +++ b/std/assembly/bindings/wasi_snapshot_preview1.ts @@ -9,6 +9,8 @@ type ptr = usize; // all pointers are usize'd type struct = T; // structs are references already in AS /** Read command-line argument data. */ +// @ts-ignore: decorator +@unsafe export declare function args_get( /** Input: Pointer to a buffer to write the argument pointers. */ argv: ptr>, @@ -17,6 +19,8 @@ export declare function args_get( ): errno; /** Return command-line argument data sizes. */ +// @ts-ignore: decorator +@unsafe export declare function args_sizes_get( /** Output: Number of arguments. */ argc: ptr, @@ -25,6 +29,8 @@ export declare function args_sizes_get( ): errno; /** Return the resolution of a clock. */ +// @ts-ignore: decorator +@unsafe export declare function clock_res_get( /** Input: The clock for which to return the resolution. */ clock: clockid, @@ -33,6 +39,8 @@ export declare function clock_res_get( ): errno; /** Return the time value of a clock. */ +// @ts-ignore: decorator +@unsafe export declare function clock_time_get( /** Input: Cock for which to return the time. */ clock: clockid, @@ -43,6 +51,8 @@ export declare function clock_time_get( ): errno; /** Read environment variable data. */ +// @ts-ignore: decorator +@unsafe export declare function environ_get( /** Input: Pointer to a buffer to write the environment variable pointers. */ environ: ptr, @@ -51,6 +61,8 @@ export declare function environ_get( ): errno; /** Return command-line argument data sizes. */ +// @ts-ignore: decorator +@unsafe export declare function environ_sizes_get( /** Output: The number of environment variables. */ environ_count: ptr, @@ -59,6 +71,8 @@ export declare function environ_sizes_get( ): errno; /** Provide file advisory information on a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_advise( /** Input: The file descriptor for the file for which to provide file advisory information. */ fd: fd, @@ -71,6 +85,8 @@ export declare function fd_advise( ): errno; /** Provide file advisory information on a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_allocate( /** Input: The file descriptor for the file in which to allocate space. */ fd: fd, @@ -81,18 +97,24 @@ export declare function fd_allocate( ): errno; /** Close a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_close( /** Input: The file descriptor to close. */ fd: fd ): errno; /** Synchronize the data of a file to disk. */ +// @ts-ignore: decorator +@unsafe export declare function fd_datasync( /** Input: The file descriptor of the file to synchronize to disk. */ fd: fd ): errno; /** Get the attributes of a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_fdstat_get( /** Input: The file descriptor to inspect. */ fd: fd, @@ -101,6 +123,8 @@ export declare function fd_fdstat_get( ): errno; /** Adjust the flags associated with a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_fdstat_set_flags( /** Input: The file descriptor to operate on. */ fd: fd, @@ -109,6 +133,8 @@ export declare function fd_fdstat_set_flags( ): errno; /** Adjust the rights associated with a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_fdstat_set_rights( /** Input: The file descriptor to operate on. */ fd: fd, @@ -119,6 +145,8 @@ export declare function fd_fdstat_set_rights( ): errno; /** Return the attributes of an open file. */ +// @ts-ignore: decorator +@unsafe export declare function fd_filestat_get( /** Input: The file descriptor to inspect. */ fd: fd, @@ -127,6 +155,8 @@ export declare function fd_filestat_get( ): errno; /** Adjust the size of an open file. If this increases the file's size, the extra bytes are filled with zeros. */ +// @ts-ignore: decorator +@unsafe export declare function fd_filestat_set_size( /** Input: A file descriptor for the file to adjust. */ fd: fd, @@ -135,6 +165,8 @@ export declare function fd_filestat_set_size( ): errno; /** Adjust the timestamps of an open file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function fd_filestat_set_times( /** Input: The file descriptor to operate on. */ fd: fd, @@ -147,6 +179,8 @@ export declare function fd_filestat_set_times( ): errno; /** Read from a file descriptor, without using and updating the file descriptor's offset. */ +// @ts-ignore: decorator +@unsafe export declare function fd_pread( /** Input: The file descriptor from which to read data. */ fd: fd, @@ -161,6 +195,8 @@ export declare function fd_pread( ): errno; /** Return a description of the given preopened file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_prestat_get( /** Input: The file descriptor about which to retrieve information. */ fd: fd, @@ -169,6 +205,8 @@ export declare function fd_prestat_get( ): errno; /** Return a description of the given preopened file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_prestat_dir_name( /** Input: The file descriptor about which to retrieve information. */ fd: fd, @@ -179,6 +217,8 @@ export declare function fd_prestat_dir_name( ): errno; /** Write to a file descriptor, without using and updating the file descriptor's offset. */ +// @ts-ignore: decorator +@unsafe export declare function fd_pwrite( /** Input: The file descriptor to which to write data. */ fd: fd, @@ -193,6 +233,8 @@ export declare function fd_pwrite( ): errno; /** Read from a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_read( /** Input: The file descriptor from which to read data. */ fd: fd, @@ -205,6 +247,8 @@ export declare function fd_read( ): errno; /** Read directory entries from a directory. */ +// @ts-ignore: decorator +@unsafe export declare function fd_readdir( /** Input: Directory from which to read the directory entries. */ fd: fd, @@ -219,6 +263,8 @@ export declare function fd_readdir( ): errno; /** Atomically replace a file descriptor by renumbering another file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_renumber( /** Input: The file descriptor to renumber. */ from: fd, @@ -227,6 +273,8 @@ export declare function fd_renumber( ): errno; /** Move the offset of a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_seek( /** Input: The file descriptor to operate on. */ fd: fd, @@ -239,12 +287,16 @@ export declare function fd_seek( ): errno; /** Synchronize the data and metadata of a file to disk. */ +// @ts-ignore: decorator +@unsafe export declare function fd_sync( /** Input: The file descriptor of the file containing the data and metadata to synchronize to disk. */ fd: fd ): errno; /** Return the current offset of a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_tell( /** Input: The file descriptor to inspect. */ fd: fd, @@ -253,6 +305,8 @@ export declare function fd_tell( ): errno; /** Write to a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_write( /** Input: The file descriptor to which to write data. */ fd: fd, @@ -265,6 +319,8 @@ export declare function fd_write( ): errno; /* Create a directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_create_directory( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -275,6 +331,8 @@ export declare function path_create_directory( ): errno; /** Return the attributes of a file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_filestat_get( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -289,6 +347,8 @@ export declare function path_filestat_get( ): errno; /** Adjust the timestamps of a file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_filestat_set_times( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -307,6 +367,8 @@ export declare function path_filestat_set_times( ): errno; /** Create a hard link. */ +// @ts-ignore: decorator +@unsafe export declare function path_link( /** Input: The working directory at which the resolution of the old path starts. */ old_fd: fd, @@ -325,6 +387,8 @@ export declare function path_link( ): errno; /** Open a file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_open( /** Input: The working directory at which the resolution of the path starts. */ dirfd: fd, @@ -347,6 +411,8 @@ export declare function path_open( ): errno; /** Read the contents of a symbolic link. */ +// @ts-ignore: decorator +@unsafe export declare function path_readlink( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -363,6 +429,8 @@ export declare function path_readlink( ): errno; /** Remove a directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_remove_directory( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -373,6 +441,8 @@ export declare function path_remove_directory( ): errno; /** Rename a file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_rename( /** Input: The working directory at which the resolution of the old path starts. */ old_fd: fd, @@ -389,6 +459,8 @@ export declare function path_rename( ): errno; /** Create a symbolic link. */ +// @ts-ignore: decorator +@unsafe export declare function path_symlink( /** Input: The contents of the symbolic link. */ old_path: ptr, @@ -403,6 +475,8 @@ export declare function path_symlink( ): errno; /** Unlink a file. */ +// @ts-ignore: decorator +@unsafe export declare function path_unlink_file( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -413,6 +487,8 @@ export declare function path_unlink_file( ): errno; /** Concurrently poll for the occurrence of a set of events. */ +// @ts-ignore: decorator +@unsafe export declare function poll_oneoff( /** Input: The events to which to subscribe. */ in_: ptr>, @@ -425,18 +501,24 @@ export declare function poll_oneoff( ): errno; /** Terminate the process normally. An exit code of 0 indicates successful termination of the program. The meanings of other values is dependent on the environment. */ +// @ts-ignore: decorator +@unsafe export declare function proc_exit( /** Input: The exit code returned by the process. */ rval: u32 ): void; /** Send a signal to the process of the calling thread. */ +// @ts-ignore: decorator +@unsafe export declare function proc_raise( /** Input: The signal condition to trigger. */ sig: signal ): errno; /** Write high-quality random data into a buffer. */ +// @ts-ignore: decorator +@unsafe export declare function random_get( /** Input: The buffer to fill with random data. */ buf: usize, @@ -445,9 +527,13 @@ export declare function random_get( ): errno; /** Temporarily yield execution of the calling thread. */ +// @ts-ignore: decorator +@unsafe export declare function sched_yield(): errno; /** Receive a message from a socket. */ +// @ts-ignore: decorator +@unsafe export declare function sock_recv( /** Input: The socket on which to receive data. */ sock: fd, @@ -464,6 +550,8 @@ export declare function sock_recv( ): errno; /** Send a message on a socket. */ +// @ts-ignore: decorator +@unsafe export declare function sock_send( /** Input: The socket on which to send data. */ sock: fd, @@ -478,6 +566,8 @@ export declare function sock_send( ): errno; /** Shut down socket send and receive channels. */ +// @ts-ignore: decorator +@unsafe export declare function sock_shutdown( /** Input: The socket on which to shutdown channels. */ sock: fd, diff --git a/std/assembly/bindings/wasi_unstable.ts b/std/assembly/bindings/wasi_unstable.ts index d75695dfa4..565b9532b8 100644 --- a/std/assembly/bindings/wasi_unstable.ts +++ b/std/assembly/bindings/wasi_unstable.ts @@ -9,6 +9,8 @@ type ptr = usize; // all pointers are usize'd type struct = T; // structs are references already in AS /** Read command-line argument data. */ +// @ts-ignore: decorator +@unsafe export declare function args_get( /** Input: Pointer to a buffer to write the argument pointers. */ argv: ptr>, @@ -17,6 +19,8 @@ export declare function args_get( ): errno; /** Return command-line argument data sizes. */ +// @ts-ignore: decorator +@unsafe export declare function args_sizes_get( /** Output: Number of arguments. */ argc: ptr, @@ -25,6 +29,8 @@ export declare function args_sizes_get( ): errno; /** Return the resolution of a clock. */ +// @ts-ignore: decorator +@unsafe export declare function clock_res_get( /** Input: The clock for which to return the resolution. */ clock: clockid, @@ -33,6 +39,8 @@ export declare function clock_res_get( ): errno; /** Return the time value of a clock. */ +// @ts-ignore: decorator +@unsafe export declare function clock_time_get( /** Input: Cock for which to return the time. */ clock: clockid, @@ -43,6 +51,8 @@ export declare function clock_time_get( ): errno; /** Read environment variable data. */ +// @ts-ignore: decorator +@unsafe export declare function environ_get( /** Input: Pointer to a buffer to write the environment variable pointers. */ environ: ptr, @@ -51,6 +61,8 @@ export declare function environ_get( ): errno; /** Return command-line argument data sizes. */ +// @ts-ignore: decorator +@unsafe export declare function environ_sizes_get( /** Output: The number of environment variables. */ environ_count: ptr, @@ -59,6 +71,8 @@ export declare function environ_sizes_get( ): errno; /** Provide file advisory information on a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_advise( /** Input: The file descriptor for the file for which to provide file advisory information. */ fd: fd, @@ -71,6 +85,8 @@ export declare function fd_advise( ): errno; /** Provide file advisory information on a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_allocate( /** Input: The file descriptor for the file in which to allocate space. */ fd: fd, @@ -81,18 +97,24 @@ export declare function fd_allocate( ): errno; /** Close a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_close( /** Input: The file descriptor to close. */ fd: fd ): errno; /** Synchronize the data of a file to disk. */ +// @ts-ignore: decorator +@unsafe export declare function fd_datasync( /** Input: The file descriptor of the file to synchronize to disk. */ fd: fd ): errno; /** Get the attributes of a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_fdstat_get( /** Input: The file descriptor to inspect. */ fd: fd, @@ -101,6 +123,8 @@ export declare function fd_fdstat_get( ): errno; /** Adjust the flags associated with a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_fdstat_set_flags( /** Input: The file descriptor to operate on. */ fd: fd, @@ -109,6 +133,8 @@ export declare function fd_fdstat_set_flags( ): errno; /** Adjust the rights associated with a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_fdstat_set_rights( /** Input: The file descriptor to operate on. */ fd: fd, @@ -119,6 +145,8 @@ export declare function fd_fdstat_set_rights( ): errno; /** Return the attributes of an open file. */ +// @ts-ignore: decorator +@unsafe export declare function fd_filestat_get( /** Input: The file descriptor to inspect. */ fd: fd, @@ -127,6 +155,8 @@ export declare function fd_filestat_get( ): errno; /** Adjust the size of an open file. If this increases the file's size, the extra bytes are filled with zeros. */ +// @ts-ignore: decorator +@unsafe export declare function fd_filestat_set_size( /** Input: A file descriptor for the file to adjust. */ fd: fd, @@ -135,6 +165,8 @@ export declare function fd_filestat_set_size( ): errno; /** Adjust the timestamps of an open file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function fd_filestat_set_times( /** Input: The file descriptor to operate on. */ fd: fd, @@ -147,6 +179,8 @@ export declare function fd_filestat_set_times( ): errno; /** Read from a file descriptor, without using and updating the file descriptor's offset. */ +// @ts-ignore: decorator +@unsafe export declare function fd_pread( /** Input: The file descriptor from which to read data. */ fd: fd, @@ -161,6 +195,8 @@ export declare function fd_pread( ): errno; /** Return a description of the given preopened file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_prestat_get( /** Input: The file descriptor about which to retrieve information. */ fd: fd, @@ -169,6 +205,8 @@ export declare function fd_prestat_get( ): errno; /** Return a description of the given preopened file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_prestat_dir_name( /** Input: The file descriptor about which to retrieve information. */ fd: fd, @@ -179,6 +217,8 @@ export declare function fd_prestat_dir_name( ): errno; /** Write to a file descriptor, without using and updating the file descriptor's offset. */ +// @ts-ignore: decorator +@unsafe export declare function fd_pwrite( /** Input: The file descriptor to which to write data. */ fd: fd, @@ -193,6 +233,8 @@ export declare function fd_pwrite( ): errno; /** Read from a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_read( /** Input: The file descriptor from which to read data. */ fd: fd, @@ -205,6 +247,8 @@ export declare function fd_read( ): errno; /** Read directory entries from a directory. */ +// @ts-ignore: decorator +@unsafe export declare function fd_readdir( /** Input: Directory from which to read the directory entries. */ fd: fd, @@ -219,6 +263,8 @@ export declare function fd_readdir( ): errno; /** Atomically replace a file descriptor by renumbering another file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_renumber( /** Input: The file descriptor to renumber. */ from: fd, @@ -227,6 +273,8 @@ export declare function fd_renumber( ): errno; /** Move the offset of a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_seek( /** Input: The file descriptor to operate on. */ fd: fd, @@ -239,12 +287,16 @@ export declare function fd_seek( ): errno; /** Synchronize the data and metadata of a file to disk. */ +// @ts-ignore: decorator +@unsafe export declare function fd_sync( /** Input: The file descriptor of the file containing the data and metadata to synchronize to disk. */ fd: fd ): errno; /** Return the current offset of a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_tell( /** Input: The file descriptor to inspect. */ fd: fd, @@ -253,6 +305,8 @@ export declare function fd_tell( ): errno; /** Write to a file descriptor. */ +// @ts-ignore: decorator +@unsafe export declare function fd_write( /** Input: The file descriptor to which to write data. */ fd: fd, @@ -265,6 +319,8 @@ export declare function fd_write( ): errno; /* Create a directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_create_directory( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -275,6 +331,8 @@ export declare function path_create_directory( ): errno; /** Return the attributes of a file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_filestat_get( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -289,6 +347,8 @@ export declare function path_filestat_get( ): errno; /** Adjust the timestamps of a file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_filestat_set_times( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -307,6 +367,8 @@ export declare function path_filestat_set_times( ): errno; /** Create a hard link. */ +// @ts-ignore: decorator +@unsafe export declare function path_link( /** Input: The working directory at which the resolution of the old path starts. */ old_fd: fd, @@ -325,6 +387,8 @@ export declare function path_link( ): errno; /** Open a file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_open( /** Input: The working directory at which the resolution of the path starts. */ dirfd: fd, @@ -347,6 +411,8 @@ export declare function path_open( ): errno; /** Read the contents of a symbolic link. */ +// @ts-ignore: decorator +@unsafe export declare function path_readlink( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -363,6 +429,8 @@ export declare function path_readlink( ): errno; /** Remove a directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_remove_directory( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -373,6 +441,8 @@ export declare function path_remove_directory( ): errno; /** Rename a file or directory. */ +// @ts-ignore: decorator +@unsafe export declare function path_rename( /** Input: The working directory at which the resolution of the old path starts. */ old_fd: fd, @@ -389,6 +459,8 @@ export declare function path_rename( ): errno; /** Create a symbolic link. */ +// @ts-ignore: decorator +@unsafe export declare function path_symlink( /** Input: The contents of the symbolic link. */ old_path: ptr, @@ -403,6 +475,8 @@ export declare function path_symlink( ): errno; /** Unlink a file. */ +// @ts-ignore: decorator +@unsafe export declare function path_unlink_file( /** Input: The working directory at which the resolution of the path starts. */ fd: fd, @@ -413,6 +487,8 @@ export declare function path_unlink_file( ): errno; /** Concurrently poll for the occurrence of a set of events. */ +// @ts-ignore: decorator +@unsafe export declare function poll_oneoff( /** Input: The events to which to subscribe. */ in_: ptr>, @@ -425,18 +501,24 @@ export declare function poll_oneoff( ): errno; /** Terminate the process normally. An exit code of 0 indicates successful termination of the program. The meanings of other values is dependent on the environment. */ +// @ts-ignore: decorator +@unsafe export declare function proc_exit( /** Input: The exit code returned by the process. */ rval: u32 ): void; /** Send a signal to the process of the calling thread. */ +// @ts-ignore: decorator +@unsafe export declare function proc_raise( /** Input: The signal condition to trigger. */ sig: signal ): errno; /** Write high-quality random data into a buffer. */ +// @ts-ignore: decorator +@unsafe export declare function random_get( /** Input: The buffer to fill with random data. */ buf: usize, @@ -445,9 +527,13 @@ export declare function random_get( ): errno; /** Temporarily yield execution of the calling thread. */ +// @ts-ignore: decorator +@unsafe export declare function sched_yield(): errno; /** Receive a message from a socket. */ +// @ts-ignore: decorator +@unsafe export declare function sock_recv( /** Input: The socket on which to receive data. */ sock: fd, @@ -464,6 +550,8 @@ export declare function sock_recv( ): errno; /** Send a message on a socket. */ +// @ts-ignore: decorator +@unsafe export declare function sock_send( /** Input: The socket on which to send data. */ sock: fd, @@ -478,6 +566,8 @@ export declare function sock_send( ): errno; /** Shut down socket send and receive channels. */ +// @ts-ignore: decorator +@unsafe export declare function sock_shutdown( /** Input: The socket on which to shutdown channels. */ sock: fd, diff --git a/std/assembly/builtins.ts b/std/assembly/builtins.ts index ab0223a248..68a3e3da83 100644 --- a/std/assembly/builtins.ts +++ b/std/assembly/builtins.ts @@ -1939,3 +1939,7 @@ declare function trace( a3?: f64, a4?: f64 ): void; + +// @ts-ignore: decorator +@external("env", "seed") +declare function seed(): f64; diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 6bc7f78f46..cf15fffb72 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -1460,6 +1460,8 @@ declare namespace String { export function byteLength(str: string, nullTerminated?: bool): i32; /** Encodes the specified string to UTF-8 bytes, optionally null terminated. */ export function encode(str: string, nullTerminated?: bool): ArrayBuffer; + /** Encodes the specified raw string to UTF-8 bytes, opionally null terminated. Returns the number of bytes written. */ + export function encodeUnsafe(str: usize, len: i32, buf: usize, nullTerminated?: bool): usize; /** Decodes the specified buffer from UTF-8 bytes to a string, optionally null terminated. */ export function decode(buf: ArrayBuffer, nullTerminated?: bool): string; /** Decodes raw UTF-8 bytes to a string, optionally null terminated. */ @@ -1471,6 +1473,8 @@ declare namespace String { export function byteLength(str: string): i32; /** Encodes the specified string to UTF-16 bytes. */ export function encode(str: string): ArrayBuffer; + /** Encodes the specified raw string to UTF-16 bytes. Returns the number of bytes written. */ + export function encodeUnsafe(str: usize, len: i32, buf: usize): usize; /** Decodes the specified buffer from UTF-16 bytes to a string. */ export function decode(buf: ArrayBuffer): string; /** Decodes raw UTF-16 bytes to a string. */ @@ -1707,8 +1711,12 @@ declare const Math: IMath; /** Alias of {@link NativeMathf} or {@link JSMath} respectively. Defaults to `NativeMathf`. */ declare const Mathf: IMath; -/** Environmental tracing function for debugging purposes. */ +/** Environmental abort function. */ +declare function abort(msg?: string | null, fileName?: string | null, lineNumber?: i32, columnNumber?: i32): never; +/** Environmental tracing function. */ declare function trace(msg: string, n?: i32, a0?: f64, a1?: f64, a2?: f64, a3?: f64, a4?: f64): void; +/** Environmental seeding function. */ +declare function seed(): f64; // Decorators diff --git a/std/assembly/math.ts b/std/assembly/math.ts index 57986c45d7..f38719d0e6 100644 --- a/std/assembly/math.ts +++ b/std/assembly/math.ts @@ -1410,7 +1410,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(reinterpret(seed())); var s1 = random_state0_64; var s0 = random_state1_64; random_state0_64 = s0; @@ -2603,7 +2603,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) seedRandom(reinterpret(seed())); var s0 = random_state0_32; var s1 = random_state1_32; diff --git a/std/assembly/string.ts b/std/assembly/string.ts index 078476911f..c5d245bcf1 100644 --- a/std/assembly/string.ts +++ b/std/assembly/string.ts @@ -677,14 +677,18 @@ export namespace String { } export function encode(str: string, nullTerminated: bool = false): ArrayBuffer { - var strOff = changetype(str); - var strEnd = changetype(str) + changetype(changetype(str) - BLOCK_OVERHEAD).rtSize; - var bufLen = UTF8.byteLength(str, nullTerminated); - var buf = __alloc(bufLen, idof()); - var bufEnd = buf + bufLen - usize(nullTerminated); + var buf = __alloc(byteLength(str, nullTerminated), idof()); + encodeUnsafe(changetype(str), str.length, buf, nullTerminated); + return changetype(buf); // retains + } + + // @ts-ignore: decorator + @unsafe + export function encodeUnsafe(str: usize, len: i32, buf: usize, nullTerminated: bool = false): usize { + var strEnd = str + (len << 1); var bufOff = buf; - while (bufOff < bufEnd) { - let c1 = load(strOff); + while (str < strEnd) { + let c1 = load(str); if (c1 < 128) { store(bufOff, c1); bufOff++; @@ -694,8 +698,8 @@ export namespace String { store(bufOff, b1 << 8 | b0); bufOff += 2; } else { - if ((c1 & 0xFC00) == 0xD800 && strOff + 2 < strEnd) { - let c2 = load(strOff, 2); + if ((c1 & 0xFC00) == 0xD800 && str + 2 < strEnd) { + let c2 = load(str, 2); if ((c2 & 0xFC00) == 0xDC00) { c1 = 0x10000 + ((c1 & 0x03FF) << 10) | (c2 & 0x03FF); let b0 = c1 >> 18 | 240; @@ -703,7 +707,7 @@ export namespace String { let b2 = c1 >> 6 & 63 | 128; let b3 = c1 & 63 | 128; store(bufOff, b3 << 24 | b2 << 16 | b1 << 8 | b0); - bufOff += 4; strOff += 4; + bufOff += 4; str += 4; continue; } } @@ -714,13 +718,12 @@ export namespace String { store(bufOff, b2, 2); bufOff += 3; } - strOff += 2; + str += 2; } - assert(strOff <= strEnd); if (nullTerminated) { - store(bufOff, 0); + store(bufOff++, 0); } - return changetype(buf); // retains + return bufOff - buf; } export function decode(buf: ArrayBuffer, nullTerminated: bool = false): String { @@ -780,12 +783,19 @@ export namespace String { } export function encode(str: string): ArrayBuffer { - var size = UTF16.byteLength(str); - var buf = __alloc(size, idof()); - memory.copy(buf, changetype(str), size); + var buf = __alloc(byteLength(str), idof()); + encodeUnsafe(changetype(str), str.length, buf); return changetype(buf); // retains } + // @ts-ignore: decorator + @unsafe + export function encodeUnsafe(str: usize, len: i32, buf: usize): usize { + var size = len << 1; + memory.copy(buf, changetype(str), size); + return size; + } + export function decode(buf: ArrayBuffer): String { return decodeUnsafe(changetype(buf), buf.byteLength); } diff --git a/std/assembly/wasi/index.ts b/std/assembly/wasi/index.ts new file mode 100644 index 0000000000..a5d472f18a --- /dev/null +++ b/std/assembly/wasi/index.ts @@ -0,0 +1,122 @@ +import { + proc_exit, + fd_write, + iovec, + random_get +} from "bindings/wasi"; + +import { + MAX_DOUBLE_LENGTH, + decimalCount32, + dtoa_stream +} from "util/number"; + +// @ts-ignore: decorator +@global @inline +const ASC_WASI = true; + +function abort( + message: string | null = null, + fileName: string | null = null, + lineNumber: u32 = 0, + columnNumber: u32 = 0 +): void { + // 0: iov.buf + // 4: iov.buf_len + // 8: len + // 12: buf... + const iovPtr: usize = 0; + const lenPtr: usize = iovPtr + offsetof(); + const bufPtr: usize = lenPtr + sizeof(); + changetype(iovPtr).buf = bufPtr; + var ptr = bufPtr; + store(ptr, 0x203A74726F6261); ptr += 7; // 'abort: ' + if (message !== null) { + ptr += String.UTF8.encodeUnsafe(changetype(message), message.length, ptr); + } + store(ptr, 0x206E6920); ptr += 4; // ' in ' + if (fileName !== null) { + ptr += String.UTF8.encodeUnsafe(changetype(fileName), fileName.length, ptr); + } + store(ptr++, 0x28); // ( + var len = decimalCount32(lineNumber); ptr += len; + do { + let t = lineNumber / 10; + store(--ptr, 0x30 + lineNumber % 10); + lineNumber = t; + } while (lineNumber); ptr += len; + store(ptr++, 0x3A); // : + len = decimalCount32(columnNumber); ptr += len; + do { + let t = columnNumber / 10; + store(--ptr, 0x30 + columnNumber % 10); + columnNumber = t; + } while (columnNumber); ptr += len; + store(ptr, 0x0A29); ptr += 2; // )\n + changetype(iovPtr).buf_len = ptr - bufPtr; + fd_write(2, iovPtr, 1, lenPtr); + proc_exit(255); +} + +function trace( + message: string, + n: i32 = 0, + a0: f64 = 0, + a1: f64 = 0, + a2: f64 = 0, + a3: f64 = 0, + a4: f64 = 0 +): void { + // 0: iov.buf + // 4: iov.buf_len + // 8: len + // 12: buf... + var iovPtr = __alloc(offsetof() + sizeof() + 1 + (max(String.UTF8.byteLength(message), MAX_DOUBLE_LENGTH << 1)), 0); + var lenPtr = iovPtr + offsetof(); + var bufPtr = lenPtr + sizeof(); + changetype(iovPtr).buf = bufPtr; + store(bufPtr, 0x203A6563617274); // 'trace: ' + changetype(iovPtr).buf_len = 7; + fd_write(2, iovPtr, 1, lenPtr); + changetype(iovPtr).buf_len = String.UTF8.encodeUnsafe(changetype(message), message.length, bufPtr); + fd_write(2, iovPtr, 1, lenPtr); + if (n) { + store(bufPtr++, 0x20); // space + changetype(iovPtr).buf_len = 1 + String.UTF8.encodeUnsafe(bufPtr, dtoa_stream(bufPtr, 0, a0), bufPtr); + fd_write(2, iovPtr, 1, lenPtr); + if (n > 1) { + changetype(iovPtr).buf_len = 1 + String.UTF8.encodeUnsafe(bufPtr, dtoa_stream(bufPtr, 0, a1), bufPtr); + fd_write(2, iovPtr, 1, lenPtr); + if (n > 2) { + changetype(iovPtr).buf_len = 1 + String.UTF8.encodeUnsafe(bufPtr, dtoa_stream(bufPtr, 0, a2), bufPtr); + fd_write(2, iovPtr, 1, lenPtr); + if (n > 3) { + changetype(iovPtr).buf_len = 1 + String.UTF8.encodeUnsafe(bufPtr, dtoa_stream(bufPtr, 0, a3), bufPtr); + fd_write(2, iovPtr, 1, lenPtr); + if (n > 4) { + changetype(iovPtr).buf_len = 1 + String.UTF8.encodeUnsafe(bufPtr, dtoa_stream(bufPtr, 0, a4), bufPtr); + fd_write(2, iovPtr, 1, lenPtr); + } + } + } + } + --bufPtr; + } + store(bufPtr, 0x0A); // \n + changetype(iovPtr).buf_len = 1; + fd_write(2, iovPtr, 1, lenPtr); + __free(iovPtr); +} + +function seed(): f64 { + var temp = load(0); + var rand: u64; + do { + random_get(0, 8); // to be sure + rand = load(0); + } while (!rand); + store(0, temp); + return reinterpret(rand); +} + +export * from "bindings/wasi"; diff --git a/tests/compiler.js b/tests/compiler.js index a9f8a1f1a8..cc78226c2a 100644 --- a/tests/compiler.js +++ b/tests/compiler.js @@ -310,10 +310,13 @@ function testInstantiate(basename, binaryBuffer, name, glue) { env: { memory, abort: function(msg, file, line, column) { - console.log(colorsUtil.red(" abort: " + getString(msg) + " at " + getString(file) + ":" + line + ":" + column)); + console.log(colorsUtil.red(" abort: " + getString(msg) + " in " + getString(file) + "(" + line + ":" + column + ")")); }, trace: function(msg, n) { console.log(" trace: " + getString(msg) + (n ? " " : "") + Array.prototype.slice.call(arguments, 2, 2 + n).join(", ")); + }, + seed: function() { + return 0xA5534817; // make tests deterministic } }, Math, @@ -326,13 +329,17 @@ function testInstantiate(basename, binaryBuffer, name, glue) { } var instance = new WebAssembly.Instance(new WebAssembly.Module(binaryBuffer), imports); Object.setPrototypeOf(exports, instance.exports); + if (glue.postInstantiate) { + console.log(colorsUtil.white(" [postInstantiate]")); + glue.postInstantiate(instance); + } if (exports._start) { console.log(colorsUtil.white(" [start]")); exports._start(); } - if (glue.postInstantiate) { - console.log(colorsUtil.white(" [postInstantiate]")); - glue.postInstantiate(instance); + if (glue.postStart) { + console.log(colorsUtil.white(" [postStart]")); + glue.postStart(instance); } }); let leakCount = rtr.check(); diff --git a/tests/compiler/features/mutable-globals.js b/tests/compiler/features/mutable-globals.js index bd30b85a39..a9856f6aec 100644 --- a/tests/compiler/features/mutable-globals.js +++ b/tests/compiler/features/mutable-globals.js @@ -3,7 +3,7 @@ exports.preInstantiate = function(imports, exports) { external: new WebAssembly.Global({ value: "i32", mutable: true }, 123) }; }; -exports.postInstantiate = function(instance) { +exports.postStart = function(instance) { // adds 10 to both const exports = instance.exports; if (exports.external.valueOf() != 133) throw Error("unexpected value"); diff --git a/tests/compiler/std/array.optimized.wat b/tests/compiler/std/array.optimized.wat index e72102f711..00f6383732 100644 --- a/tests/compiler/std/array.optimized.wat +++ b/tests/compiler/std/array.optimized.wat @@ -8,12 +8,13 @@ (type $i32_i32_=>_none (func (param i32 i32))) (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) + (type $none_=>_f64 (func (result f64))) (type $none_=>_none (func)) (type $none_=>_i32 (func (result i32))) (type $i32_i32_i64_=>_i32 (func (param i32 i32 i64) (result i32))) - (type $none_=>_f64 (func (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) + (type $i64_=>_none (func (param i64))) (type $i32_i32_f64_=>_i32 (func (param i32 i32 f64) (result i32))) (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))) @@ -28,6 +29,7 @@ (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "seed" (func $~lib/builtins/seed (result f64))) (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (memory $0 1) (data (i32.const 1024) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") @@ -147,72 +149,71 @@ (data (i32.const 5760) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\02\00\00\00\01") (data (i32.const 5792) "\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 5824) "\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 5856) "(\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 5920) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") - (data (i32.const 5952) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") - (data (i32.const 5984) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a") - (data (i32.const 6016) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b") - (data (i32.const 6048) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b") - (data (i32.const 6080) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a") - (data (i32.const 6116) "\01\00\00\00\01") - (data (i32.const 6128) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00p\17\00\00\90\17\00\00p\17\00\00\b0\17\00\00\d0\17\00\00\f0\17") - (data (i32.const 6176) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\f0\17\00\00p\17\00\00p\17\00\00\b0\17\00\00\90\17\00\00\d0\17") - (data (i32.const 6224) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l") - (data (i32.const 6256) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01") - (data (i32.const 6288) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e") - (data (i32.const 6320) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e") - (data (i32.const 6352) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,") - (data (i32.const 6384) "\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 6432) "\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 6464) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000") - (data (i32.const 6496) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003") - (data (i32.const 6528) "\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 6560) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-") - (data (i32.const 6592) "\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 6624) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_") - (data (i32.const 6656) "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 6720) "0\00\00\00\01\00\00\00\00\00\00\000") - (data (i32.const 6750) "\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 6784) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 ") - (data (i32.const 6816) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000") - (data (i32.const 6848) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N") - (data (i32.const 6880) "\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 6928) "\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 6960) "\b8\02\00\00\01\00\00\00\12\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 8308) "\01") - (data (i32.const 8320) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") - (data (i32.const 8352) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") - (data (i32.const 8384) "\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 8416) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002") - (data (i32.const 8448) "\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 8480) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff") - (data (i32.const 8512) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000") - (data (i32.const 8544) "\06\00\00\00\01\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff") - (data (i32.const 8576) "\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 8624) "\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 8672) "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 8736) " \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 8784) "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 8896) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\f0\17\00\00p\17\00\00p\17\00\00\b0\17\00\00\90\17\00\00\d0\17") - (data (i32.const 8944) "\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 8992) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002") - (data (i32.const 9024) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004") - (data (i32.const 9056) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00p\1f\00\000#\00\00\00\00\00\00P#") - (data (i32.const 9088) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004") - (data (i32.const 9120) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") - (data (i32.const 9152) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04") - (data (i32.const 9184) "\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 9216) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") - (data (i32.const 9248) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") - (data (i32.const 9280) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") + (data (i32.const 5856) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") + (data (i32.const 5888) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 5920) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00a") + (data (i32.const 5952) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00b") + (data (i32.const 5984) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00a\00b") + (data (i32.const 6016) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00b\00a") + (data (i32.const 6052) "\01\00\00\00\01") + (data (i32.const 6064) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\000\17\00\00P\17\00\000\17\00\00p\17\00\00\90\17\00\00\b0\17") + (data (i32.const 6112) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\b0\17\00\000\17\00\000\17\00\00p\17\00\00P\17\00\00\90\17") + (data (i32.const 6160) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00n\00u\00l\00l") + (data (i32.const 6192) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01") + (data (i32.const 6224) "\08\00\00\00\01\00\00\00\01\00\00\00\08\00\00\00t\00r\00u\00e") + (data (i32.const 6256) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\00f\00a\00l\00s\00e") + (data (i32.const 6288) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00,") + (data (i32.const 6320) "\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 6368) "\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 6400) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\000") + (data (i32.const 6432) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003") + (data (i32.const 6464) "\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 6496) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-") + (data (i32.const 6528) "\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 6560) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_") + (data (i32.const 6592) "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 6656) "0\00\00\00\01\00\00\00\00\00\00\000") + (data (i32.const 6686) "\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 6720) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 ") + (data (i32.const 6752) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000") + (data (i32.const 6784) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N") + (data (i32.const 6816) "\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 6864) "\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 6896) "\b8\02\00\00\01\00\00\00\12\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 8244) "\01") + (data (i32.const 8256) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01") + (data (i32.const 8288) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 8320) "\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 8352) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002") + (data (i32.const 8384) "\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 8416) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff") + (data (i32.const 8448) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\00-\001\00,\000") + (data (i32.const 8480) "\06\00\00\00\01\00\00\00\00\00\00\00\06\00\00\00\01\00\ff\ff") + (data (i32.const 8512) "\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 8560) "\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 8608) "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 8672) " \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 8720) "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 8832) "\1c\00\00\00\01\00\00\00\00\00\00\00\1c\00\00\00\b0\17\00\000\17\00\000\17\00\00p\17\00\00P\17\00\00\90\17") + (data (i32.const 8880) "\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 8928) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002") + (data (i32.const 8960) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004") + (data (i32.const 8992) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\000\1f\00\00\f0\"\00\00\00\00\00\00\10#") + (data (i32.const 9024) "\0c\00\00\00\01\00\00\00\01\00\00\00\0c\00\00\001\00,\002\00,\00,\004") + (data (i32.const 9056) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\01\00\00\00\02") + (data (i32.const 9088) "\08\00\00\00\01\00\00\00\00\00\00\00\08\00\00\00\03\00\00\00\04") + (data (i32.const 9120) "\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 9152) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") + (data (i32.const 9184) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") + (data (i32.const 9216) "\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)) @@ -235,7 +236,7 @@ (export "__setArgumentsLength" (func $~setArgumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) - (func $~lib/rt/tlsf/removeBlock (; 7 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/removeBlock (; 8 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -397,7 +398,7 @@ end end ) - (func $~lib/rt/tlsf/insertBlock (; 8 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (; 9 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -676,7 +677,7 @@ i32.or i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (; 9 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/addMemory (; 10 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -790,7 +791,7 @@ local.get $1 call $~lib/rt/tlsf/insertBlock ) - (func $~lib/rt/tlsf/maybeInitialize (; 10 ;) (result i32) + (func $~lib/rt/tlsf/maybeInitialize (; 11 ;) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -815,11 +816,11 @@ if unreachable end - i32.const 9312 + i32.const 9248 local.tee $0 i32.const 0 i32.store - i32.const 10880 + i32.const 10816 i32.const 0 i32.store loop $for-loop|0 @@ -830,7 +831,7 @@ local.get $1 i32.const 2 i32.shl - i32.const 9312 + i32.const 9248 i32.add i32.const 0 i32.store offset=4 @@ -848,7 +849,7 @@ i32.add i32.const 2 i32.shl - i32.const 9312 + i32.const 9248 i32.add i32.const 0 i32.store offset=96 @@ -866,18 +867,18 @@ br $for-loop|0 end end - i32.const 9312 - i32.const 10896 + i32.const 9248 + i32.const 10832 memory.size i32.const 16 i32.shl call $~lib/rt/tlsf/addMemory - i32.const 9312 + i32.const 9248 global.set $~lib/rt/tlsf/ROOT end local.get $0 ) - (func $~lib/rt/tlsf/prepareSize (; 11 ;) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/prepareSize (; 12 ;) (param $0 i32) (result i32) local.get $0 i32.const 1073741808 i32.ge_u @@ -901,7 +902,7 @@ i32.gt_u select ) - (func $~lib/rt/tlsf/searchBlock (; 12 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (; 13 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const 256 @@ -1030,7 +1031,7 @@ end end ) - (func $~lib/rt/tlsf/prepareBlock (; 13 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 14 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $1 @@ -1105,7 +1106,7 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 14 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/allocateBlock (; 15 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1245,7 +1246,7 @@ call $~lib/rt/rtrace/onalloc local.get $3 ) - (func $~lib/rt/tlsf/__alloc (; 15 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (; 16 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 local.get $1 @@ -1253,7 +1254,7 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.fill (; 16 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 17 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i64) (local $5 i32) @@ -1426,11 +1427,11 @@ end end ) - (func $~lib/rt/pure/__retain (; 17 ;) (param $0 i32) (result i32) + (func $~lib/rt/pure/__retain (; 18 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 - i32.const 9300 + i32.const 9236 i32.gt_u if local.get $0 @@ -1477,9 +1478,9 @@ end local.get $0 ) - (func $~lib/rt/pure/__release (; 18 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 19 ;) (param $0 i32) local.get $0 - i32.const 9300 + i32.const 9236 i32.gt_u if local.get $0 @@ -1488,7 +1489,7 @@ call $~lib/rt/pure/decrement end ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 19 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 20 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $1 @@ -1556,7 +1557,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array#constructor (; 20 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#constructor (; 21 ;) (param $0 i32) (result i32) (local $1 i32) i32.const 16 i32.const 3 @@ -1573,7 +1574,7 @@ i32.store offset=12 local.get $1 ) - (func $std/array/Ref#constructor (; 21 ;) (param $0 i32) (result i32) + (func $std/array/Ref#constructor (; 22 ;) (param $0 i32) (result i32) (local $1 i32) i32.const 4 i32.const 4 @@ -1584,7 +1585,7 @@ i32.store local.get $1 ) - (func $~lib/memory/memory.copy (; 22 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 23 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) block $~lib/util/memory/memmove|inlined.0 @@ -1757,7 +1758,7 @@ end end ) - (func $~lib/rt/__allocArray (; 23 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 24 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -1795,7 +1796,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#fill (; 24 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 25 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) local.get $0 @@ -1862,7 +1863,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 25 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 26 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -1881,7 +1882,7 @@ i32.add i32.load8_u ) - (func $std/array/isArraysEqual (; 26 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isArraysEqual (; 27 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -1926,7 +1927,7 @@ end i32.const 1 ) - (func $~lib/array/Array#fill (; 27 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 28 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) local.get $0 @@ -2001,7 +2002,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 28 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 29 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -2022,7 +2023,7 @@ i32.add i32.load ) - (func $std/array/isArraysEqual (; 29 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 30 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -2070,7 +2071,7 @@ end i32.const 1 ) - (func $std/array/internalCapacity (; 30 ;) (param $0 i32) (result i32) + (func $std/array/internalCapacity (; 31 ;) (param $0 i32) (result i32) local.get $0 i32.load i32.const 16 @@ -2079,7 +2080,7 @@ i32.const 2 i32.shr_s ) - (func $~lib/rt/tlsf/checkUsedBlock (; 31 ;) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/checkUsedBlock (; 32 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 16 @@ -2121,7 +2122,7 @@ end local.get $1 ) - (func $~lib/rt/tlsf/freeBlock (; 32 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 33 ;) (param $0 i32) (param $1 i32) local.get $1 local.get $1 i32.load @@ -2134,7 +2135,7 @@ local.get $1 call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/tlsf/reallocateBlock (; 33 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 34 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2225,7 +2226,7 @@ local.get $2 call $~lib/memory/memory.copy local.get $1 - i32.const 9300 + i32.const 9236 i32.ge_u if local.get $1 @@ -2237,7 +2238,7 @@ end local.get $3 ) - (func $~lib/array/ensureSize (; 34 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/ensureSize (; 35 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2297,7 +2298,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#push (; 35 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#push (; 36 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2320,7 +2321,7 @@ local.get $3 i32.store offset=12 ) - (func $~lib/array/Array#pop (; 36 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#pop (; 37 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -2350,7 +2351,7 @@ local.get $1 i32.store offset=12 ) - (func $~lib/array/Array#concat (; 37 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#concat (; 38 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2403,7 +2404,7 @@ call $~lib/memory/memory.copy local.get $2 ) - (func $~lib/array/Array#copyWithin (; 38 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 39 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -2508,7 +2509,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#unshift (; 39 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#unshift (; 40 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) local.get $0 @@ -2537,7 +2538,7 @@ local.get $2 i32.store offset=12 ) - (func $~lib/array/Array#indexOf (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -2597,7 +2598,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -2605,7 +2606,7 @@ i32.const 0 i32.ge_s ) - (func $~lib/array/Array#splice (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 43 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2696,7 +2697,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#splice (; 43 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#splice (; 44 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2787,7 +2788,7 @@ i32.store offset=12 local.get $4 ) - (func $~lib/array/Array#__unchecked_get (; 44 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 45 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -2797,7 +2798,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 45 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 46 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -2827,7 +2828,7 @@ end local.get $0 ) - (func $~lib/array/Array#splice (; 46 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#splice (; 47 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2905,7 +2906,7 @@ i32.store offset=12 local.get $4 ) - (func $~lib/array/Array#__get (; 47 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 48 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.load offset=12 @@ -2922,7 +2923,7 @@ local.get $1 call $~lib/array/Array#__unchecked_get ) - (func $~lib/array/Array#__set (; 48 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 local.get $0 @@ -2959,15 +2960,15 @@ local.get $2 i32.store ) - (func $start:std/array~anonymous|0 (; 49 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.eqz ) - (func $~setArgumentsLength (; 50 ;) (param $0 i32) + (func $~setArgumentsLength (; 51 ;) (param $0 i32) local.get $0 global.set $~argumentsLength ) - (func $~lib/array/Array#findIndex (; 51 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 52 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3012,17 +3013,17 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 1 i32.eq ) - (func $start:std/array~anonymous|2 (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 100 i32.eq ) - (func $start:std/array~anonymous|3 (; 54 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3030,7 +3031,7 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|5 (; 55 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3038,12 +3039,12 @@ i32.const 100 i32.eq ) - (func $start:std/array~anonymous|6 (; 56 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 57 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.ge_s ) - (func $~lib/array/Array#every (; 57 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 58 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3089,12 +3090,12 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 58 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 0 i32.le_s ) - (func $start:std/array~anonymous|8 (; 59 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3102,12 +3103,12 @@ i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|9 (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.lt_s ) - (func $start:std/array~anonymous|10 (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3115,12 +3116,12 @@ i32.const 3 i32.lt_s ) - (func $start:std/array~anonymous|11 (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 63 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 3 i32.ge_s ) - (func $~lib/array/Array#some (; 63 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 64 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3165,12 +3166,12 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 64 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const -1 i32.le_s ) - (func $start:std/array~anonymous|13 (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3178,12 +3179,12 @@ i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|14 (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 10 i32.gt_s ) - (func $start:std/array~anonymous|15 (; 67 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3191,13 +3192,13 @@ i32.const 3 i32.gt_s ) - (func $start:std/array~anonymous|16 (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 global.get $std/array/i i32.add global.set $std/array/i ) - (func $~lib/array/Array#forEach (; 69 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 70 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3237,7 +3238,7 @@ end end ) - (func $start:std/array~anonymous|17 (; 70 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3246,7 +3247,7 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|19 (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/array/Array#pop drop @@ -3255,7 +3256,7 @@ i32.add global.set $std/array/i ) - (func $start:std/array~anonymous|20 (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 i32.eqz @@ -3348,11 +3349,11 @@ end end ) - (func $start:std/array~anonymous|21 (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 74 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) local.get $0 f32.convert_i32_s ) - (func $~lib/array/Array#__get (; 74 ;) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 75 ;) (param $0 i32) (param $1 i32) (result f32) local.get $1 local.get $0 i32.load offset=12 @@ -3373,7 +3374,7 @@ i32.add f32.load ) - (func $start:std/array~anonymous|22 (; 75 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 76 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3383,7 +3384,7 @@ global.set $std/array/i local.get $0 ) - (func $~lib/array/Array#map (; 76 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 77 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3442,14 +3443,14 @@ end local.get $5 ) - (func $start:std/array~anonymous|23 (; 77 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 global.get $std/array/i i32.add global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|24 (; 78 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3459,12 +3460,12 @@ global.set $std/array/i local.get $0 ) - (func $start:std/array~anonymous|25 (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 i32.const 2 i32.ge_s ) - (func $~lib/array/Array#filter (; 80 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 81 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3520,7 +3521,7 @@ end local.get $4 ) - (func $start:std/array~anonymous|26 (; 81 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 i32.const 100 call $~lib/array/Array#push @@ -3532,7 +3533,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|27 (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 83 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 global.get $std/array/i i32.add @@ -3541,7 +3542,7 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|28 (; 83 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 84 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $2 call $~lib/array/Array#pop drop @@ -3553,12 +3554,12 @@ i32.const 2 i32.ge_s ) - (func $start:std/array~anonymous|29 (; 84 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $0 local.get $1 i32.add ) - (func $~lib/array/Array#reduce (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3601,7 +3602,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|31 (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) i32.const 1 local.get $1 i32.const 2 @@ -3609,7 +3610,7 @@ local.get $0 select ) - (func $start:std/array~anonymous|32 (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 88 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) i32.const 1 local.get $1 i32.const 100 @@ -3617,7 +3618,7 @@ local.get $0 select ) - (func $start:std/array~anonymous|33 (; 88 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 i32.const 1 call $~lib/array/Array#push @@ -3625,7 +3626,7 @@ local.get $1 i32.add ) - (func $start:std/array~anonymous|35 (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 90 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) local.get $3 call $~lib/array/Array#pop drop @@ -3633,7 +3634,7 @@ local.get $1 i32.add ) - (func $~lib/array/Array#reduceRight (; 90 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 91 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 i32.load offset=12 @@ -3669,7 +3670,7 @@ end local.get $2 ) - (func $~lib/math/murmurHash3 (; 91 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 92 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -3690,7 +3691,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 92 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 93 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -3722,7 +3723,52 @@ i32.shr_u i32.xor ) - (func $~lib/util/sort/insertionSort (; 93 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/math/NativeMath.seedRandom (; 94 ;) (param $0 i64) + (local $1 i32) + 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 5040 + i32.const 1406 + i32.const 4 + call $~lib/builtins/abort + unreachable + end + ) + (func $~lib/util/sort/insertionSort (; 95 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -3801,7 +3847,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 94 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 96 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -4062,7 +4108,7 @@ local.get $5 f32.store ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 95 ;) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 97 ;) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4091,7 +4137,7 @@ i32.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 96 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 98 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4170,7 +4216,7 @@ call $~lib/rt/pure/__retain end ) - (func $~lib/util/sort/insertionSort (; 97 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 99 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -4249,7 +4295,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 98 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 100 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -4510,7 +4556,7 @@ local.get $5 f64.store ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 99 ;) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 101 ;) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -4539,7 +4585,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 100 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 102 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4618,7 +4664,7 @@ call $~lib/rt/pure/__retain end ) - (func $~lib/array/Array#__get (; 101 ;) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 103 ;) (param $0 i32) (param $1 i32) (result f64) local.get $1 local.get $0 i32.load offset=12 @@ -4639,7 +4685,7 @@ i32.add f64.load ) - (func $~lib/util/sort/insertionSort (; 102 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 104 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4718,7 +4764,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 103 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 105 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4979,7 +5025,7 @@ local.get $1 i32.store ) - (func $~lib/array/Array#sort (; 104 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 106 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5044,12 +5090,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 105 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 107 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 106 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 108 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -5058,7 +5104,7 @@ i32.lt_u i32.sub ) - (func $std/array/createReverseOrderedArray (; 107 ;) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 109 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5086,18 +5132,15 @@ end local.get $2 ) - (func $~lib/math/NativeMath.random (; 108 ;) (result f64) + (func $~lib/math/NativeMath.random (; 110 ;) (result f64) (local $0 i64) (local $1 i64) global.get $~lib/math/random_seeded i32.eqz if - i32.const 5872 - i32.const 5040 - i32.const 1413 - i32.const 24 - call $~lib/builtins/abort - unreachable + call $~lib/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 local.set $0 @@ -5130,7 +5173,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 109 ;) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 111 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5158,7 +5201,7 @@ end local.get $2 ) - (func $std/array/assertSorted (; 110 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 112 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5215,12 +5258,12 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|44 (; 111 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 113 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 112 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 114 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) local.get $1 local.get $0 @@ -5268,7 +5311,7 @@ call $~lib/rt/pure/__release end ) - (func $start:std/array~anonymous|47 (; 113 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 115 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -5277,7 +5320,7 @@ call $~lib/array/Array#__get i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 114 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 116 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5331,7 +5374,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $std/array/assertSorted<~lib/array/Array> (; 115 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 117 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5401,14 +5444,14 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|48 (; 116 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 118 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load local.get $1 i32.load i32.sub ) - (func $~lib/string/String#get:length (; 117 ;) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 119 ;) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -5416,7 +5459,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 118 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/compareImpl (; 120 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) local.get $0 @@ -5492,7 +5535,7 @@ end i32.const 0 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 119 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 121 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) i32.const 1 @@ -5546,7 +5589,7 @@ select call $~lib/util/string/compareImpl ) - (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 120 ;) (param $0 i32) + (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 122 ;) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -5630,7 +5673,7 @@ local.get $5 call $~lib/rt/pure/__release ) - (func $~lib/string/String.__eq (; 121 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 123 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 local.get $1 @@ -5664,13 +5707,13 @@ call $~lib/util/string/compareImpl i32.eqz ) - (func $~lib/string/String.__concat (; 122 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 124 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) block $__inlined_func$~lib/string/String#concat (result i32) local.get $0 - i32.const 6240 + i32.const 6176 local.get $0 select local.set $2 @@ -5680,13 +5723,13 @@ i32.eqz if local.get $0 - i32.const 6240 + i32.const 6176 i32.ne if local.get $0 call $~lib/rt/pure/__release end - i32.const 6240 + i32.const 6176 local.set $0 end local.get $2 @@ -5705,7 +5748,7 @@ if local.get $0 call $~lib/rt/pure/__release - i32.const 6128 + i32.const 6064 br $__inlined_func$~lib/string/String#concat end local.get $1 @@ -5727,7 +5770,7 @@ local.get $1 end ) - (func $std/array/createRandomStringArray (; 123 ;) (result i32) + (func $std/array/createRandomStringArray (; 125 ;) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -5763,7 +5806,7 @@ local.set $6 i32.const 0 local.set $4 - i32.const 6128 + i32.const 6064 local.set $1 loop $for-loop|00 local.get $4 @@ -5773,7 +5816,7 @@ local.get $1 local.tee $0 block $__inlined_func$~lib/string/String#charAt (result i32) - i32.const 6128 + i32.const 6064 call $~lib/math/NativeMath.random i32.const 5088 call $~lib/string/String#get:length @@ -5840,7 +5883,7 @@ end local.get $3 ) - (func $~lib/string/String#substring (; 124 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#substring (; 126 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5886,7 +5929,7 @@ local.tee $3 i32.eqz if - i32.const 6128 + i32.const 6064 return end i32.const 0 @@ -5914,7 +5957,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/string/joinBooleanArray (; 125 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinBooleanArray (; 127 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5929,14 +5972,14 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $3 i32.eqz if - i32.const 6304 - i32.const 6336 + i32.const 6240 + i32.const 6272 local.get $0 i32.load8_u select @@ -5944,7 +5987,7 @@ return end local.get $3 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.tee $4 i32.const 5 @@ -5978,8 +6021,8 @@ i32.const 1 i32.shl i32.add - i32.const 6304 - i32.const 6336 + i32.const 6240 + i32.const 6272 local.get $8 select local.get $6 @@ -5997,7 +6040,7 @@ i32.const 1 i32.shl i32.add - i32.const 6368 + i32.const 6304 local.get $4 i32.const 1 i32.shl @@ -6028,8 +6071,8 @@ i32.const 1 i32.shl i32.add - i32.const 6304 - i32.const 6336 + i32.const 6240 + i32.const 6272 local.get $3 select local.get $0 @@ -6052,7 +6095,7 @@ end local.get $1 ) - (func $~lib/util/number/decimalCount32 (; 126 ;) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 128 ;) (param $0 i32) (result i32) local.get $0 i32.const 10 i32.ge_u @@ -6094,7 +6137,7 @@ i32.lt_u select ) - (func $~lib/util/number/utoa_simple (; 127 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 129 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) loop $do-continue|0 local.get $1 @@ -6121,14 +6164,14 @@ br_if $do-continue|0 end ) - (func $~lib/util/number/itoa32 (; 128 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 130 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) local.get $0 i32.eqz if - i32.const 6480 + i32.const 6416 return end local.get $0 @@ -6163,7 +6206,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 129 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 131 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 i32.const 1 @@ -6211,7 +6254,7 @@ call $~lib/util/number/utoa_simple local.get $0 ) - (func $~lib/util/string/joinIntegerArray (; 130 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 132 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6224,7 +6267,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $4 @@ -6316,7 +6359,7 @@ end local.get $1 ) - (func $~lib/array/Array#join (; 131 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 133 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 @@ -6324,13 +6367,13 @@ local.get $1 call $~lib/util/string/joinIntegerArray ) - (func $~lib/util/number/utoa32 (; 132 ;) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 134 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 i32.eqz if - i32.const 6480 + i32.const 6416 return end local.get $0 @@ -6347,7 +6390,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa_stream (; 133 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 135 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 i32.const 1 @@ -6374,7 +6417,7 @@ call $~lib/util/number/utoa_simple local.get $0 ) - (func $~lib/util/string/joinIntegerArray (; 134 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 136 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6387,7 +6430,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $4 @@ -6479,7 +6522,7 @@ end local.get $1 ) - (func $~lib/array/Array#join (; 135 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 137 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 @@ -6487,7 +6530,7 @@ local.get $1 call $~lib/util/string/joinIntegerArray ) - (func $~lib/util/number/genDigits (; 136 ;) (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 (; 138 ;) (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) @@ -6688,7 +6731,7 @@ local.get $4 i32.const 2 i32.shl - i32.const 7888 + i32.const 7824 i32.add i64.load32_u local.get $10 @@ -6816,7 +6859,7 @@ i32.sub i32.const 2 i32.shl - i32.const 7888 + i32.const 7824 i32.add i64.load32_u i64.mul @@ -6878,7 +6921,7 @@ local.get $6 end ) - (func $~lib/util/number/prettify (; 137 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/prettify (; 139 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 i32.eqz @@ -7123,7 +7166,7 @@ end end ) - (func $~lib/util/number/dtoa_core (; 138 ;) (param $0 i32) (param $1 f64) (result i32) + (func $~lib/util/number/dtoa_core (; 140 ;) (param $0 i32) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) (local $4 i32) @@ -7238,14 +7281,14 @@ i32.sub global.set $~lib/util/number/_K local.get $9 - i32.const 6976 + i32.const 6912 i32.add i64.load global.set $~lib/util/number/_frc_pow local.get $4 i32.const 1 i32.shl - i32.const 7696 + i32.const 7632 i32.add i32.load16_s global.set $~lib/util/number/_exp_pow @@ -7415,7 +7458,7 @@ local.get $7 i32.add ) - (func $~lib/util/number/dtoa_stream (; 139 ;) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) + (func $~lib/util/number/dtoa_stream (; 141 ;) (param $0 i32) (param $1 i32) (param $2 f64) (result i32) local.get $0 local.get $1 i32.const 1 @@ -7490,7 +7533,7 @@ local.get $2 call $~lib/util/number/dtoa_core ) - (func $~lib/util/string/joinFloatArray (; 140 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinFloatArray (; 142 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 f64) (local $4 i32) @@ -7504,7 +7547,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $4 @@ -7517,7 +7560,7 @@ f64.const 0 f64.eq if - i32.const 6832 + i32.const 6768 local.set $0 br $__inlined_func$~lib/util/number/dtoa end @@ -7531,12 +7574,12 @@ local.get $3 f64.ne if - i32.const 6864 + i32.const 6800 local.set $0 br $__inlined_func$~lib/util/number/dtoa end - i32.const 6896 - i32.const 6944 + i32.const 6832 + i32.const 6880 local.get $3 f64.const 0 f64.lt @@ -7573,7 +7616,7 @@ return end local.get $4 - i32.const 6800 + i32.const 6736 call $~lib/string/String#get:length local.tee $5 i32.const 28 @@ -7612,7 +7655,7 @@ i32.const 1 i32.shl i32.add - i32.const 6800 + i32.const 6736 local.get $5 i32.const 1 i32.shl @@ -7653,7 +7696,7 @@ end local.get $1 ) - (func $~lib/util/string/joinReferenceArray<~lib/string/String | null> (; 141 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/string/String | null> (; 143 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7668,7 +7711,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $6 @@ -7687,13 +7730,13 @@ local.get $5 call $~lib/rt/pure/__retain else - i32.const 6128 + i32.const 6064 end local.get $5 call $~lib/rt/pure/__release return end - i32.const 6128 + i32.const 6064 local.set $1 local.get $2 local.tee $4 @@ -7819,7 +7862,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/string/String | null>#join (; 142 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#join (; 144 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 @@ -7827,7 +7870,7 @@ local.get $1 call $~lib/util/string/joinReferenceArray<~lib/string/String | null> ) - (func $~lib/util/string/joinReferenceArray (; 143 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray (; 145 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7841,7 +7884,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $5 @@ -7857,15 +7900,15 @@ end local.get $4 call $~lib/rt/pure/__release - i32.const 8112 - i32.const 6128 + i32.const 8048 + i32.const 6064 local.get $4 select return end - i32.const 6128 + i32.const 6064 local.set $1 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -7894,7 +7937,7 @@ if local.get $1 local.get $1 - i32.const 8112 + i32.const 8048 call $~lib/string/String.__concat local.tee $6 local.tee $2 @@ -7915,7 +7958,7 @@ if local.get $1 local.tee $2 - i32.const 6368 + i32.const 6304 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -7959,7 +8002,7 @@ if local.get $1 local.get $1 - i32.const 8112 + i32.const 8048 call $~lib/string/String.__concat local.tee $3 local.tee $2 @@ -7980,14 +8023,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array#join (; 144 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#join (; 146 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load offset=12 call $~lib/util/string/joinReferenceArray ) - (func $~lib/util/number/itoa_stream (; 145 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 147 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 i32.const 1 @@ -8053,7 +8096,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 146 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 148 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8066,7 +8109,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $3 @@ -8078,7 +8121,7 @@ return end local.get $3 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.tee $4 i32.const 11 @@ -8115,7 +8158,7 @@ i32.const 1 i32.shl i32.add - i32.const 6368 + i32.const 6304 local.get $4 i32.const 1 i32.shl @@ -8154,7 +8197,7 @@ end local.get $1 ) - (func $~lib/util/number/itoa_stream (; 147 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 149 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 i32.const 1 @@ -8189,7 +8232,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 148 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 150 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8202,7 +8245,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $3 @@ -8214,7 +8257,7 @@ return end local.get $3 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.tee $4 i32.const 10 @@ -8253,7 +8296,7 @@ i32.const 1 i32.shl i32.add - i32.const 6368 + i32.const 6304 local.get $4 i32.const 1 i32.shl @@ -8294,7 +8337,7 @@ end local.get $1 ) - (func $~lib/util/number/decimalCount64High (; 149 ;) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64High (; 151 ;) (param $0 i64) (result i32) local.get $0 i64.const 100000000000 i64.ge_u @@ -8340,7 +8383,7 @@ i64.lt_u select ) - (func $~lib/util/number/utoa_simple (; 150 ;) (param $0 i32) (param $1 i64) (param $2 i32) + (func $~lib/util/number/utoa_simple (; 152 ;) (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) loop $do-continue|0 local.get $1 @@ -8370,7 +8413,7 @@ br_if $do-continue|0 end ) - (func $~lib/util/number/itoa_stream (; 151 ;) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 153 ;) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) local.get $0 local.get $1 @@ -8413,7 +8456,7 @@ end local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 152 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 154 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i64) @@ -8427,7 +8470,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $3 @@ -8438,7 +8481,7 @@ local.tee $4 i64.eqz if (result i32) - i32.const 6480 + i32.const 6416 else local.get $4 i64.const 4294967295 @@ -8476,7 +8519,7 @@ return end local.get $3 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.tee $5 i32.const 20 @@ -8515,7 +8558,7 @@ i32.const 1 i32.shl i32.add - i32.const 6368 + i32.const 6304 local.get $5 i32.const 1 i32.shl @@ -8556,7 +8599,7 @@ end local.get $1 ) - (func $~lib/util/number/itoa_stream (; 153 ;) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) + (func $~lib/util/number/itoa_stream (; 155 ;) (param $0 i32) (param $1 i32) (param $2 i64) (result i32) (local $3 i32) local.get $0 local.get $1 @@ -8622,7 +8665,7 @@ end local.get $0 ) - (func $~lib/util/string/joinIntegerArray (; 154 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 156 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i64) (local $4 i32) @@ -8636,7 +8679,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $4 @@ -8647,7 +8690,7 @@ local.tee $3 i64.eqz if (result i32) - i32.const 6480 + i32.const 6416 else local.get $3 i64.const 63 @@ -8706,7 +8749,7 @@ return end local.get $4 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.tee $5 i32.const 21 @@ -8745,7 +8788,7 @@ i32.const 1 i32.shl i32.add - i32.const 6368 + i32.const 6304 local.get $5 i32.const 1 i32.shl @@ -8786,7 +8829,7 @@ end local.get $1 ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 155 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 157 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8801,7 +8844,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $5 @@ -8818,18 +8861,18 @@ local.get $4 if (result i32) local.get $4 - i32.const 6368 + i32.const 6304 call $~lib/array/Array#join else - i32.const 6128 + i32.const 6064 end local.get $4 call $~lib/rt/pure/__release return end - i32.const 6128 + i32.const 6064 local.set $1 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -8857,7 +8900,7 @@ local.tee $3 if local.get $3 - i32.const 6368 + i32.const 6304 call $~lib/array/Array#join local.tee $2 local.get $1 @@ -8884,7 +8927,7 @@ if local.get $1 local.tee $2 - i32.const 6368 + i32.const 6304 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -8927,7 +8970,7 @@ local.tee $0 if local.get $0 - i32.const 6368 + i32.const 6304 call $~lib/array/Array#join local.tee $2 local.get $1 @@ -8954,7 +8997,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/number/itoa_stream (; 156 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 158 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 i32.const 1 @@ -8989,7 +9032,7 @@ call $~lib/util/number/utoa_simple local.get $1 ) - (func $~lib/util/string/joinIntegerArray (; 157 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 159 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9002,7 +9045,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $3 @@ -9014,7 +9057,7 @@ return end local.get $3 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.tee $4 i32.const 10 @@ -9051,7 +9094,7 @@ i32.const 1 i32.shl i32.add - i32.const 6368 + i32.const 6304 local.get $4 i32.const 1 i32.shl @@ -9090,14 +9133,14 @@ end local.get $1 ) - (func $~lib/array/Array#toString (; 158 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#toString (; 160 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load offset=12 call $~lib/util/string/joinIntegerArray ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 159 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 161 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9112,7 +9155,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $5 @@ -9131,15 +9174,15 @@ local.get $4 call $~lib/array/Array#toString else - i32.const 6128 + i32.const 6064 end local.get $4 call $~lib/rt/pure/__release return end - i32.const 6128 + i32.const 6064 local.set $1 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -9193,7 +9236,7 @@ if local.get $1 local.tee $2 - i32.const 6368 + i32.const 6304 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -9262,7 +9305,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 160 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array> (; 162 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9277,7 +9320,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $5 @@ -9294,18 +9337,18 @@ local.get $4 if (result i32) local.get $4 - i32.const 6368 + i32.const 6304 call $~lib/array/Array#join else - i32.const 6128 + i32.const 6064 end local.get $4 call $~lib/rt/pure/__release return end - i32.const 6128 + i32.const 6064 local.set $1 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -9333,7 +9376,7 @@ local.tee $3 if local.get $3 - i32.const 6368 + i32.const 6304 call $~lib/array/Array#join local.tee $2 local.get $1 @@ -9360,7 +9403,7 @@ if local.get $1 local.tee $2 - i32.const 6368 + i32.const 6304 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -9403,7 +9446,7 @@ local.tee $0 if local.get $0 - i32.const 6368 + i32.const 6304 call $~lib/array/Array#join local.tee $2 local.get $1 @@ -9430,14 +9473,14 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array<~lib/array/Array>#toString (; 161 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#toString (; 163 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=4 local.get $0 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> ) - (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (; 162 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> (; 164 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9452,7 +9495,7 @@ i32.const 0 i32.lt_s if - i32.const 6128 + i32.const 6064 return end local.get $5 @@ -9471,15 +9514,15 @@ local.get $4 call $~lib/array/Array<~lib/array/Array>#toString else - i32.const 6128 + i32.const 6064 end local.get $4 call $~lib/rt/pure/__release return end - i32.const 6128 + i32.const 6064 local.set $1 - i32.const 6368 + i32.const 6304 call $~lib/string/String#get:length local.set $7 loop $for-loop|0 @@ -9533,7 +9576,7 @@ if local.get $1 local.tee $2 - i32.const 6368 + i32.const 6304 call $~lib/string/String.__concat local.tee $6 local.tee $1 @@ -9602,7 +9645,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $start:std/array (; 163 ;) + (func $start:std/array (; 165 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -9631,7 +9674,7 @@ (local $25 i32) (local $26 i32) (local $27 i32) - (local $28 i64) + (local $28 i32) (local $29 i32) (local $30 i32) (local $31 i32) @@ -9639,13 +9682,13 @@ (local $33 i32) (local $34 i32) (local $35 i32) - (local $36 i32) - (local $37 f64) + (local $36 f64) + (local $37 i32) (local $38 i32) (local $39 i32) (local $40 i32) - (local $41 i32) - (local $42 f32) + (local $41 f32) + (local $42 i32) (local $43 i32) (local $44 i32) (local $45 i32) @@ -9662,7 +9705,6 @@ (local $56 i32) (local $57 i32) (local $58 i32) - (local $59 i32) i32.const 0 call $~lib/array/Array#constructor global.set $std/array/arr @@ -9732,7 +9774,7 @@ i32.const 1568 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $58 + local.tee $57 call $std/array/isArraysEqual i32.eqz if @@ -9756,7 +9798,7 @@ i32.const 1600 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $59 + local.tee $58 call $std/array/isArraysEqual i32.eqz if @@ -9780,7 +9822,7 @@ i32.const 1632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $56 + local.tee $55 call $std/array/isArraysEqual i32.eqz if @@ -9804,7 +9846,7 @@ i32.const 1664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $57 + local.tee $56 call $std/array/isArraysEqual i32.eqz if @@ -9819,14 +9861,14 @@ call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $57 + call $~lib/rt/pure/__release local.get $58 call $~lib/rt/pure/__release - local.get $59 + local.get $55 call $~lib/rt/pure/__release local.get $56 call $~lib/rt/pure/__release - local.get $57 - call $~lib/rt/pure/__release i32.const 5 i32.const 2 i32.const 7 @@ -9871,7 +9913,7 @@ i32.const 1792 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $58 + local.tee $57 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -9896,7 +9938,7 @@ i32.const 1840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $59 + local.tee $58 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -9921,7 +9963,7 @@ i32.const 1888 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $56 + local.tee $55 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -9946,7 +9988,7 @@ i32.const 1936 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $57 + local.tee $56 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -9962,14 +10004,14 @@ call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release + local.get $57 + call $~lib/rt/pure/__release local.get $58 call $~lib/rt/pure/__release - local.get $59 + local.get $55 call $~lib/rt/pure/__release local.get $56 call $~lib/rt/pure/__release - local.get $57 - call $~lib/rt/pure/__release global.get $std/array/arr i32.load offset=12 if @@ -10241,18 +10283,18 @@ i32.store offset=4 local.get $0 i32.load offset=12 - local.tee $58 + local.tee $57 i32.const 0 i32.gt_s if local.get $0 i32.load offset=4 local.tee $1 - local.get $58 + local.get $57 i32.const 2 i32.shl i32.add - local.set $58 + local.set $57 loop $do-continue|0 local.get $1 i32.load @@ -10261,7 +10303,7 @@ i32.const 4 i32.add local.tee $1 - local.get $58 + local.get $57 i32.lt_u br_if $do-continue|0 end @@ -10291,7 +10333,7 @@ global.get $std/array/arr local.get $0 call $~lib/array/Array#concat - local.set $58 + local.set $57 global.get $std/array/arr call $std/array/internalCapacity i32.const 3 @@ -10316,7 +10358,7 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.load offset=12 i32.const 3 i32.ne @@ -10328,14 +10370,14 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.const 0 i32.const 2 i32.const 3 i32.const 2032 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $56 + local.tee $55 call $~lib/array/Array#concat call $~lib/rt/pure/__release global.get $std/array/arr @@ -10350,7 +10392,7 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -10363,7 +10405,7 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -10376,7 +10418,7 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -10399,7 +10441,7 @@ local.get $0 call $~lib/array/Array#concat local.set $1 - local.get $58 + local.get $57 call $~lib/rt/pure/__release global.get $std/array/arr call $std/array/internalCapacity @@ -10523,7 +10565,7 @@ i32.const 2048 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $58 + local.tee $57 i32.load offset=12 if i32.const 0 @@ -10533,13 +10575,13 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 global.get $std/array/arr call $~lib/array/Array#concat - local.set $59 + local.set $58 local.get $1 call $~lib/rt/pure/__release - local.get $59 + local.get $58 i32.load offset=12 i32.const 3 i32.ne @@ -10551,7 +10593,7 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.load offset=12 if i32.const 0 @@ -10563,11 +10605,11 @@ end local.get $0 call $~lib/rt/pure/__release - local.get $59 + local.get $58 call $~lib/rt/pure/__release - local.get $56 + local.get $55 call $~lib/rt/pure/__release - local.get $58 + local.get $57 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -10580,14 +10622,14 @@ i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $58 + local.tee $57 i32.const 5 i32.const 2 i32.const 3 i32.const 2112 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $59 + local.tee $58 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10613,14 +10655,14 @@ i32.const 3 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $56 + local.tee $55 i32.const 5 i32.const 2 i32.const 3 i32.const 2208 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $57 + local.tee $56 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10645,14 +10687,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $43 + local.tee $42 i32.const 5 i32.const 2 i32.const 3 i32.const 2304 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $54 + local.tee $53 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10677,14 +10719,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $53 + local.tee $52 i32.const 5 i32.const 2 i32.const 3 i32.const 2400 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $52 + local.tee $51 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10709,14 +10751,14 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $51 + local.tee $50 i32.const 5 i32.const 2 i32.const 3 i32.const 2496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $50 + local.tee $49 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10741,14 +10783,14 @@ i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $49 + local.tee $48 i32.const 5 i32.const 2 i32.const 3 i32.const 2592 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $47 + local.tee $46 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10773,14 +10815,14 @@ i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.tee $46 + local.tee $45 i32.const 5 i32.const 2 i32.const 3 i32.const 2688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $45 + local.tee $44 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10805,14 +10847,14 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#copyWithin - local.tee $32 + local.tee $31 i32.const 5 i32.const 2 i32.const 3 i32.const 2784 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $44 + local.tee $43 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10837,14 +10879,14 @@ i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $48 + local.tee $47 i32.const 5 i32.const 2 i32.const 3 i32.const 2880 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $41 + local.tee $40 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10869,14 +10911,14 @@ i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.tee $40 + local.tee $39 i32.const 5 i32.const 2 i32.const 3 i32.const 2976 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $39 + local.tee $38 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10902,14 +10944,14 @@ i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.tee $38 + local.tee $37 i32.const 5 i32.const 2 i32.const 3 i32.const 3072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $36 + local.tee $35 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10942,7 +10984,7 @@ i32.const 3168 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $35 + local.tee $34 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -10956,17 +10998,15 @@ end local.get $0 call $~lib/rt/pure/__release + local.get $57 + call $~lib/rt/pure/__release local.get $58 call $~lib/rt/pure/__release - local.get $59 + local.get $55 call $~lib/rt/pure/__release local.get $56 call $~lib/rt/pure/__release - local.get $57 - call $~lib/rt/pure/__release - local.get $43 - call $~lib/rt/pure/__release - local.get $54 + local.get $42 call $~lib/rt/pure/__release local.get $53 call $~lib/rt/pure/__release @@ -10978,19 +11018,19 @@ call $~lib/rt/pure/__release local.get $49 call $~lib/rt/pure/__release - local.get $47 + local.get $48 call $~lib/rt/pure/__release local.get $46 call $~lib/rt/pure/__release local.get $45 call $~lib/rt/pure/__release - local.get $32 - call $~lib/rt/pure/__release local.get $44 call $~lib/rt/pure/__release - local.get $48 + local.get $31 + call $~lib/rt/pure/__release + local.get $43 call $~lib/rt/pure/__release - local.get $41 + local.get $47 call $~lib/rt/pure/__release local.get $40 call $~lib/rt/pure/__release @@ -10998,11 +11038,13 @@ call $~lib/rt/pure/__release local.get $38 call $~lib/rt/pure/__release - local.get $36 + local.get $37 + call $~lib/rt/pure/__release + local.get $35 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release - local.get $35 + local.get $34 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 42 @@ -11178,7 +11220,7 @@ global.get $std/array/arr local.tee $0 i32.load offset=12 - local.tee $58 + local.tee $57 i32.const 1 i32.lt_s if @@ -11197,21 +11239,21 @@ local.get $1 i32.const 4 i32.add - local.get $58 + local.get $57 i32.const 1 i32.sub - local.tee $58 + local.tee $57 i32.const 2 i32.shl - local.tee $56 + local.tee $55 call $~lib/memory/memory.copy local.get $1 - local.get $56 + local.get $55 i32.add i32.const 0 i32.store local.get $0 - local.get $58 + local.get $57 i32.store offset=12 global.set $std/array/i global.get $std/array/i @@ -11379,14 +11421,14 @@ unreachable end global.get $std/array/arr - local.tee $58 + local.tee $57 i32.load offset=12 local.tee $1 if - local.get $58 + local.get $57 i32.load offset=4 local.set $0 - local.get $58 + local.get $57 i32.load offset=4 local.get $1 i32.const 1 @@ -11402,13 +11444,13 @@ if local.get $0 i32.load - local.set $59 + local.set $58 local.get $0 local.get $1 i32.load i32.store local.get $1 - local.get $59 + local.get $58 i32.store local.get $0 i32.const 4 @@ -11656,16 +11698,16 @@ call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $0 - local.set $56 + local.set $55 i32.const 0 local.set $1 block $__inlined_func$~lib/array/Array#indexOf local.get $0 i32.load offset=12 - local.tee $58 + local.tee $57 if (result i32) i32.const 0 - local.get $58 + local.get $57 i32.ge_s else i32.const 1 @@ -11675,15 +11717,15 @@ local.set $1 br $__inlined_func$~lib/array/Array#indexOf end - local.get $56 + local.get $55 i32.load offset=4 - local.set $59 + local.set $58 loop $while-continue|022 local.get $1 - local.get $58 + local.get $57 i32.lt_s if - local.get $59 + local.get $58 local.get $1 i32.const 2 i32.shl @@ -11719,17 +11761,17 @@ i32.const 3248 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $58 - local.set $57 + local.tee $57 + local.set $56 i32.const 0 local.set $1 block $__inlined_func$~lib/array/Array#indexOf - local.get $58 + local.get $57 i32.load offset=12 - local.tee $59 + local.tee $58 if (result i32) i32.const 0 - local.get $59 + local.get $58 i32.ge_s else i32.const 1 @@ -11739,15 +11781,15 @@ local.set $1 br $__inlined_func$~lib/array/Array#indexOf end - local.get $57 + local.get $56 i32.load offset=4 - local.set $56 + local.set $55 loop $while-continue|023 local.get $1 - local.get $59 + local.get $58 i32.lt_s if - local.get $56 + local.get $55 local.get $1 i32.const 3 i32.shl @@ -11779,7 +11821,7 @@ end local.get $0 call $~lib/rt/pure/__release - local.get $58 + local.get $57 call $~lib/rt/pure/__release global.get $std/array/arr i32.const 44 @@ -11927,41 +11969,41 @@ i32.const 3280 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $58 + local.tee $57 i32.load offset=12 - local.tee $59 + local.tee $58 if (result i32) i32.const 0 - local.get $59 + local.get $58 i32.ge_s else i32.const 1 end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $58 + local.get $57 i32.load offset=4 - local.set $57 + local.set $56 loop $while-continue|024 local.get $0 - local.get $59 + local.get $58 i32.lt_s if i32.const 1 - local.get $57 + local.get $56 local.get $0 i32.const 2 i32.shl i32.add f32.load - local.tee $42 + local.tee $41 f32.const nan:0x400000 f32.eq if (result i32) i32.const 1 else - local.get $42 - local.get $42 + local.get $41 + local.get $41 f32.ne end br_if $__inlined_func$~lib/array/Array#includes @@ -11994,41 +12036,41 @@ i32.const 3312 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $59 + local.tee $58 i32.load offset=12 - local.tee $56 + local.tee $55 if (result i32) i32.const 0 - local.get $56 + local.get $55 i32.ge_s else i32.const 1 end br_if $__inlined_func$~lib/array/Array#includes drop - local.get $59 + local.get $58 i32.load offset=4 - local.set $43 + local.set $42 loop $while-continue|025 local.get $0 - local.get $56 + local.get $55 i32.lt_s if i32.const 1 - local.get $43 + local.get $42 local.get $0 i32.const 3 i32.shl i32.add f64.load - local.tee $37 + local.tee $36 f64.const nan:0x8000000000000 f64.eq if (result i32) i32.const 1 else - local.get $37 - local.get $37 + local.get $36 + local.get $36 f64.ne end br_if $__inlined_func$~lib/array/Array#includes @@ -12106,9 +12148,9 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 call $~lib/rt/pure/__release - local.get $59 + local.get $58 call $~lib/rt/pure/__release i32.const 5 i32.const 2 @@ -12120,14 +12162,14 @@ i32.const 0 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $57 + local.tee $56 i32.const 5 i32.const 2 i32.const 3 i32.const 3392 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $54 + local.tee $53 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12146,7 +12188,7 @@ i32.const 3440 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $53 + local.tee $52 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12171,14 +12213,14 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.tee $52 + local.tee $51 i32.const 0 i32.const 2 i32.const 3 i32.const 3504 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $51 + local.tee $50 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12197,7 +12239,7 @@ i32.const 3520 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $50 + local.tee $49 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12222,14 +12264,14 @@ i32.const 2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $49 + local.tee $48 i32.const 3 i32.const 2 i32.const 3 i32.const 3616 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $47 + local.tee $46 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12248,7 +12290,7 @@ i32.const 3648 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $46 + local.tee $45 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12273,14 +12315,14 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.tee $45 + local.tee $44 i32.const 2 i32.const 2 i32.const 3 i32.const 3728 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $44 + local.tee $43 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12299,7 +12341,7 @@ i32.const 3760 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $48 + local.tee $47 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12323,14 +12365,14 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.tee $41 + local.tee $40 i32.const 1 i32.const 2 i32.const 3 i32.const 3840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $40 + local.tee $39 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12349,7 +12391,7 @@ i32.const 3872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $39 + local.tee $38 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12373,14 +12415,14 @@ i32.const -1 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $38 + local.tee $37 i32.const 1 i32.const 2 i32.const 3 i32.const 3952 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $36 + local.tee $35 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12399,7 +12441,7 @@ i32.const 3984 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $35 + local.tee $34 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12423,14 +12465,14 @@ i32.const -2 i32.const 2147483647 call $~lib/array/Array#splice - local.tee $31 + local.tee $30 i32.const 2 i32.const 2 i32.const 3 i32.const 4064 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $30 + local.tee $29 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12449,7 +12491,7 @@ i32.const 4096 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $29 + local.tee $28 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12473,14 +12515,14 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.tee $34 + local.tee $33 i32.const 1 i32.const 2 i32.const 3 i32.const 4176 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $33 + local.tee $32 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -12768,10 +12810,10 @@ i32.const 4800 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $59 + local.set $58 local.get $0 call $~lib/rt/pure/__release - local.get $59 + local.get $58 i32.const 7 i32.const 5 call $~lib/array/Array#splice @@ -12794,7 +12836,7 @@ call $~lib/builtins/abort unreachable end - local.get $59 + local.get $58 i32.const 5 i32.const 2 i32.const 3 @@ -12822,7 +12864,7 @@ local.tee $0 i32.const 1 call $~lib/array/Array#splice - local.tee $56 + local.tee $55 i32.load offset=12 if i32.const 0 @@ -12848,7 +12890,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $58 + local.tee $57 i32.load offset=4 local.tee $1 i32.const 1 @@ -12872,13 +12914,13 @@ i32.store offset=16 local.get $0 call $~lib/rt/pure/__release - local.get $58 + local.get $57 i32.const 2 call $~lib/array/Array#splice - local.set $43 - local.get $56 + local.set $42 + local.get $55 call $~lib/rt/pure/__release - local.get $43 + local.get $42 i32.load offset=12 i32.const 2 i32.ne @@ -12890,7 +12932,7 @@ call $~lib/builtins/abort unreachable end - local.get $43 + local.get $42 i32.const 0 call $~lib/array/Array#__get local.tee $8 @@ -12905,7 +12947,7 @@ call $~lib/builtins/abort unreachable end - local.get $43 + local.get $42 i32.const 1 call $~lib/array/Array#__get local.tee $7 @@ -12920,7 +12962,7 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.load offset=12 i32.const 3 i32.ne @@ -12932,7 +12974,7 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.const 0 call $~lib/array/Array#__get local.tee $6 @@ -12947,7 +12989,7 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.const 1 call $~lib/array/Array#__get local.tee $5 @@ -12962,7 +13004,7 @@ call $~lib/builtins/abort unreachable end - local.get $58 + local.get $57 i32.const 2 call $~lib/array/Array#__get local.tee $4 @@ -12983,7 +13025,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $56 + local.tee $55 i32.load offset=4 local.tee $1 i32.const 1 @@ -12996,9 +13038,9 @@ i32.const 2 call $std/array/Ref#constructor i32.store offset=8 - local.get $56 + local.get $55 call $~lib/array/Array#splice - local.tee $32 + local.tee $31 i32.load offset=12 i32.const 1 i32.ne @@ -13010,7 +13052,7 @@ call $~lib/builtins/abort unreachable end - local.get $32 + local.get $31 i32.const 0 call $~lib/array/Array#__get local.tee $1 @@ -13035,7 +13077,7 @@ call $~lib/builtins/abort unreachable end - local.get $56 + local.get $55 i32.load offset=12 i32.const 2 i32.ne @@ -13047,7 +13089,7 @@ call $~lib/builtins/abort unreachable end - local.get $56 + local.get $55 i32.const 0 call $~lib/array/Array#__get local.tee $3 @@ -13059,7 +13101,7 @@ call $~lib/builtins/abort unreachable end - local.get $56 + local.get $55 i32.const 1 call $~lib/array/Array#__get local.tee $0 @@ -13084,11 +13126,9 @@ call $~lib/builtins/abort unreachable end - local.get $59 - call $~lib/rt/pure/__release - local.get $57 + local.get $58 call $~lib/rt/pure/__release - local.get $54 + local.get $56 call $~lib/rt/pure/__release local.get $53 call $~lib/rt/pure/__release @@ -13100,7 +13140,7 @@ call $~lib/rt/pure/__release local.get $49 call $~lib/rt/pure/__release - local.get $47 + local.get $48 call $~lib/rt/pure/__release local.get $46 call $~lib/rt/pure/__release @@ -13108,9 +13148,9 @@ call $~lib/rt/pure/__release local.get $44 call $~lib/rt/pure/__release - local.get $48 + local.get $43 call $~lib/rt/pure/__release - local.get $41 + local.get $47 call $~lib/rt/pure/__release local.get $40 call $~lib/rt/pure/__release @@ -13118,20 +13158,22 @@ call $~lib/rt/pure/__release local.get $38 call $~lib/rt/pure/__release - local.get $36 + local.get $37 call $~lib/rt/pure/__release local.get $35 call $~lib/rt/pure/__release - local.get $31 + local.get $34 call $~lib/rt/pure/__release local.get $30 call $~lib/rt/pure/__release local.get $29 call $~lib/rt/pure/__release - local.get $34 + local.get $28 call $~lib/rt/pure/__release local.get $33 call $~lib/rt/pure/__release + local.get $32 + call $~lib/rt/pure/__release local.get $27 call $~lib/rt/pure/__release local.get $26 @@ -13658,17 +13700,17 @@ unreachable end loop $for-loop|0 - local.get $55 + local.get $54 i32.const 100 i32.lt_s if global.get $std/array/arr call $~lib/array/Array#pop drop - local.get $55 + local.get $54 i32.const 1 i32.add - local.set $55 + local.set $54 br $for-loop|0 end end @@ -13687,9 +13729,9 @@ i32.const 0 local.set $0 global.get $std/array/arr - local.tee $59 + local.tee $58 i32.load offset=12 - local.tee $57 + local.tee $56 i32.const 2 i32.const 9 i32.const 0 @@ -13697,15 +13739,15 @@ call $~lib/rt/pure/__retain local.tee $1 i32.load offset=4 - local.set $55 + local.set $54 loop $for-loop|043 local.get $0 - local.get $57 - local.get $59 + local.get $56 + local.get $58 i32.load offset=12 - local.tee $54 - local.get $57 - local.get $54 + local.tee $53 + local.get $56 + local.get $53 i32.lt_s select i32.lt_s @@ -13715,17 +13757,17 @@ local.get $0 i32.const 2 i32.shl - local.tee $54 - local.get $59 + local.tee $53 + local.get $58 i32.load offset=4 i32.add i32.load f32.convert_i32_s - local.set $42 + local.set $41 + local.get $53 local.get $54 - local.get $55 i32.add - local.get $42 + local.get $41 f32.store local.get $0 i32.const 1 @@ -14273,49 +14315,7 @@ call $~lib/array/Array#push call $~lib/bindings/Math/random i64.reinterpret_f64 - local.set $28 - i32.const 1 - global.set $~lib/math/random_seeded - local.get $28 - 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 $28 - 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 5040 - i32.const 1406 - i32.const 4 - call $~lib/builtins/abort - unreachable - end + call $~lib/math/NativeMath.seedRandom i32.const 8 i32.const 2 i32.const 9 @@ -14335,41 +14335,41 @@ i32.const 5328 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $57 + local.set $56 i32.const 0 local.set $1 i32.const 0 local.get $0 i32.load offset=12 - local.tee $55 - local.get $57 + local.tee $54 + local.get $56 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 local.get $0 - local.get $57 + local.get $56 i32.eq br_if $__inlined_func$std/array/isArraysEqual drop loop $for-loop|00 local.get $1 - local.get $55 + local.get $54 i32.lt_s if local.get $0 local.get $1 call $~lib/array/Array#__get - local.tee $42 - local.get $42 + local.tee $41 + local.get $41 f32.ne if (result i32) - local.get $57 + local.get $56 local.get $1 call $~lib/array/Array#__get - local.tee $42 - local.get $42 + local.tee $41 + local.get $41 f32.ne else i32.const 0 @@ -14380,7 +14380,7 @@ local.get $0 local.get $1 call $~lib/array/Array#__get - local.get $57 + local.get $56 local.get $1 call $~lib/array/Array#__get f32.ne @@ -14411,10 +14411,10 @@ i32.const 5376 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $59 + local.set $58 i32.const 0 global.set $~argumentsLength - local.get $59 + local.get $58 call $~lib/array/Array#sort|trampoline call $~lib/rt/pure/__release block $__inlined_func$std/array/isArraysEqual (result i32) @@ -14424,41 +14424,41 @@ i32.const 5456 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $55 + local.set $54 i32.const 0 local.set $1 i32.const 0 - local.get $59 + local.get $58 i32.load offset=12 - local.tee $53 - local.get $55 + local.tee $52 + local.get $54 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual drop i32.const 1 - local.get $55 - local.get $59 + local.get $54 + local.get $58 i32.eq br_if $__inlined_func$std/array/isArraysEqual drop loop $for-loop|01 local.get $1 - local.get $53 + local.get $52 i32.lt_s if - local.get $59 + local.get $58 local.get $1 call $~lib/array/Array#__get - local.tee $37 - local.get $37 + local.tee $36 + local.get $36 f64.ne if (result i32) - local.get $55 + local.get $54 local.get $1 call $~lib/array/Array#__get - local.tee $37 - local.get $37 + local.tee $36 + local.get $36 f64.ne else i32.const 0 @@ -14466,10 +14466,10 @@ i32.eqz if i32.const 0 - local.get $59 + local.get $58 local.get $1 call $~lib/array/Array#__get - local.get $55 + local.get $54 local.get $1 call $~lib/array/Array#__get f64.ne @@ -14500,21 +14500,21 @@ i32.const 5536 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $54 + local.set $53 i32.const 0 global.set $~argumentsLength - local.get $54 + local.get $53 i32.const 46 call $~lib/array/Array#sort call $~lib/rt/pure/__release - local.get $54 + local.get $53 i32.const 5 i32.const 2 i32.const 3 i32.const 5584 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $41 + local.tee $40 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14532,21 +14532,21 @@ i32.const 5632 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $53 + local.set $52 i32.const 0 global.set $~argumentsLength - local.get $53 + local.get $52 i32.const 47 call $~lib/array/Array#sort call $~lib/rt/pure/__release - local.get $53 + local.get $52 i32.const 5 i32.const 2 i32.const 7 i32.const 5680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $40 + local.tee $39 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14564,28 +14564,28 @@ i32.const 5728 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $44 + local.set $43 i32.const 1 i32.const 2 i32.const 3 i32.const 5744 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $52 + local.set $51 i32.const 2 i32.const 2 i32.const 3 i32.const 5776 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $51 + local.set $50 i32.const 4 i32.const 2 i32.const 3 i32.const 5808 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $50 + local.set $49 i32.const 4 i32.const 2 i32.const 3 @@ -14595,33 +14595,33 @@ local.set $1 i32.const 64 call $std/array/createReverseOrderedArray - local.set $49 + local.set $48 i32.const 128 call $std/array/createReverseOrderedArray - local.set $47 + local.set $46 i32.const 1024 call $std/array/createReverseOrderedArray - local.set $46 + local.set $45 i32.const 10000 call $std/array/createReverseOrderedArray - local.set $45 + local.set $44 i32.const 512 call $std/array/createRandomOrderedArray - local.set $48 - local.get $44 + local.set $47 + local.get $43 i32.const 48 call $std/array/assertSorted - local.get $52 + local.get $51 i32.const 48 call $std/array/assertSorted - local.get $52 + local.get $51 i32.const 1 i32.const 2 i32.const 3 - i32.const 5936 + i32.const 5872 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $39 + local.tee $38 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14633,17 +14633,17 @@ call $~lib/builtins/abort unreachable end - local.get $51 + local.get $50 i32.const 48 call $std/array/assertSorted - local.get $51 + local.get $50 i32.const 2 i32.const 2 i32.const 3 - i32.const 5968 + i32.const 5904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $38 + local.tee $37 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -14655,10 +14655,10 @@ call $~lib/builtins/abort unreachable end - local.get $50 + local.get $49 i32.const 48 call $std/array/assertSorted - local.get $50 + local.get $49 local.get $1 i32.const 0 call $std/array/isArraysEqual @@ -14671,10 +14671,10 @@ call $~lib/builtins/abort unreachable end - local.get $49 + local.get $48 i32.const 48 call $std/array/assertSorted - local.get $49 + local.get $48 local.get $1 i32.const 4 call $std/array/isArraysEqual @@ -14687,10 +14687,10 @@ call $~lib/builtins/abort unreachable end - local.get $47 + local.get $46 i32.const 48 call $std/array/assertSorted - local.get $47 + local.get $46 local.get $1 i32.const 4 call $std/array/isArraysEqual @@ -14703,10 +14703,10 @@ call $~lib/builtins/abort unreachable end - local.get $46 + local.get $45 i32.const 48 call $std/array/assertSorted - local.get $46 + local.get $45 local.get $1 i32.const 4 call $std/array/isArraysEqual @@ -14719,10 +14719,10 @@ call $~lib/builtins/abort unreachable end - local.get $45 + local.get $44 i32.const 48 call $std/array/assertSorted - local.get $45 + local.get $44 local.get $1 i32.const 4 call $std/array/isArraysEqual @@ -14735,49 +14735,49 @@ call $~lib/builtins/abort unreachable end - local.get $48 + local.get $47 i32.const 48 call $std/array/assertSorted local.get $0 call $~lib/rt/pure/__release - local.get $57 - call $~lib/rt/pure/__release - local.get $59 + local.get $56 call $~lib/rt/pure/__release - local.get $55 + local.get $58 call $~lib/rt/pure/__release local.get $54 call $~lib/rt/pure/__release - local.get $41 - call $~lib/rt/pure/__release local.get $53 call $~lib/rt/pure/__release local.get $40 call $~lib/rt/pure/__release - local.get $44 - call $~lib/rt/pure/__release local.get $52 call $~lib/rt/pure/__release + local.get $39 + call $~lib/rt/pure/__release + local.get $43 + call $~lib/rt/pure/__release local.get $51 call $~lib/rt/pure/__release local.get $50 call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release local.get $49 call $~lib/rt/pure/__release - local.get $47 + local.get $1 + call $~lib/rt/pure/__release + local.get $48 call $~lib/rt/pure/__release local.get $46 call $~lib/rt/pure/__release local.get $45 call $~lib/rt/pure/__release - local.get $48 + local.get $44 call $~lib/rt/pure/__release - local.get $39 + local.get $47 call $~lib/rt/pure/__release local.get $38 call $~lib/rt/pure/__release + local.get $37 + call $~lib/rt/pure/__release i32.const 64 call $std/array/createRandomOrderedArray local.set $1 @@ -14822,7 +14822,7 @@ if i32.const 1 call $~lib/array/Array#constructor - local.tee $59 + local.tee $58 i32.const 0 i32.const 1 local.get $0 @@ -14830,9 +14830,9 @@ call $~lib/array/Array#__set local.get $1 local.get $0 - local.get $59 + local.get $58 call $~lib/array/Array<~lib/array/Array>#__set - local.get $59 + local.get $58 call $~lib/rt/pure/__release local.get $0 i32.const 1 @@ -14870,16 +14870,16 @@ i32.const 13 call $~lib/rt/tlsf/__alloc call $~lib/rt/pure/__retain - local.tee $59 + local.tee $58 i32.const 511 local.get $0 i32.sub i32.store local.get $1 local.get $0 - local.get $59 + local.get $58 call $~lib/array/Array<~lib/array/Array>#__set - local.get $59 + local.get $58 call $~lib/rt/pure/__release local.get $0 i32.const 1 @@ -14896,17 +14896,17 @@ i32.const 7 i32.const 2 i32.const 15 - i32.const 6144 + i32.const 6080 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $0 i32.const 7 i32.const 2 i32.const 15 - i32.const 6192 + i32.const 6128 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $59 + local.set $58 i32.const 1 global.set $~argumentsLength local.get $0 @@ -14917,44 +14917,44 @@ i32.const 0 local.get $0 i32.load offset=12 - local.tee $54 - local.get $59 + local.tee $53 + local.get $58 i32.load offset=12 i32.ne br_if $__inlined_func$std/array/isArraysEqual<~lib/string/String | null> drop i32.const 1 local.get $0 - local.get $59 + local.get $58 i32.eq br_if $__inlined_func$std/array/isArraysEqual<~lib/string/String | null> drop loop $for-loop|04 local.get $1 - local.get $54 + local.get $53 i32.lt_s if local.get $0 local.get $1 call $~lib/array/Array#__get - local.tee $57 - local.get $59 + local.tee $56 + local.get $58 local.get $1 call $~lib/array/Array#__get - local.tee $55 + local.tee $54 call $~lib/string/String.__eq i32.eqz if - local.get $57 + local.get $56 call $~lib/rt/pure/__release - local.get $55 + local.get $54 call $~lib/rt/pure/__release i32.const 0 br $__inlined_func$std/array/isArraysEqual<~lib/string/String | null> end - local.get $57 + local.get $56 call $~lib/rt/pure/__release - local.get $55 + local.get $54 call $~lib/rt/pure/__release local.get $1 i32.const 1 @@ -14983,14 +14983,14 @@ call $std/array/assertSorted<~lib/array/Array> local.get $0 call $~lib/rt/pure/__release - local.get $59 + local.get $58 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release i32.const 2 i32.const 0 i32.const 17 - i32.const 6272 + i32.const 6208 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $1 @@ -15000,7 +15000,7 @@ call $~lib/util/string/joinBooleanArray local.tee $0 local.get $0 - i32.const 6400 + i32.const 6336 call $~lib/string/String.__eq i32.eqz if @@ -15014,14 +15014,14 @@ i32.const 3 i32.const 2 i32.const 3 - i32.const 6448 + i32.const 6384 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $54 - i32.const 6128 - call $~lib/array/Array#join local.tee $53 - i32.const 6512 + i32.const 6064 + call $~lib/array/Array#join + local.tee $52 + i32.const 6448 call $~lib/string/String.__eq i32.eqz if @@ -15035,14 +15035,14 @@ i32.const 3 i32.const 2 i32.const 7 - i32.const 6544 + i32.const 6480 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $52 - i32.const 6576 - call $~lib/array/Array#join local.tee $51 i32.const 6512 + call $~lib/array/Array#join + local.tee $50 + i32.const 6448 call $~lib/string/String.__eq i32.eqz if @@ -15056,14 +15056,14 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 6608 + i32.const 6544 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $50 - i32.const 6640 - call $~lib/array/Array#join local.tee $49 - i32.const 6672 + i32.const 6576 + call $~lib/array/Array#join + local.tee $48 + i32.const 6608 call $~lib/string/String.__eq i32.eqz if @@ -15077,7 +15077,7 @@ i32.const 6 i32.const 3 i32.const 10 - i32.const 6736 + i32.const 6672 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $0 @@ -15085,10 +15085,10 @@ local.get $0 i32.load offset=12 call $~lib/util/string/joinFloatArray - local.tee $59 - local.set $47 - local.get $59 - i32.const 7952 + local.tee $58 + local.set $46 + local.get $58 + i32.const 7888 call $~lib/string/String.__eq i32.eqz if @@ -15102,14 +15102,14 @@ i32.const 3 i32.const 2 i32.const 15 - i32.const 8080 + i32.const 8016 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $46 - i32.const 6128 - call $~lib/array/Array<~lib/string/String | null>#join local.tee $45 - i32.const 8048 + i32.const 6064 + call $~lib/array/Array<~lib/string/String | null>#join + local.tee $44 + i32.const 7984 call $~lib/string/String.__eq i32.eqz if @@ -15126,23 +15126,23 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $59 + local.tee $58 i32.load offset=4 - local.tee $57 + local.tee $56 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $57 + local.get $56 i32.const 0 i32.store offset=4 - local.get $57 + local.get $56 i32.const 0 call $std/array/Ref#constructor i32.store offset=8 - local.get $59 + local.get $58 call $~lib/array/Array#join - local.tee $44 - i32.const 8160 + local.tee $43 + i32.const 8096 call $~lib/string/String.__eq i32.eqz if @@ -15159,20 +15159,20 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $57 + local.tee $56 i32.load offset=4 - local.tee $48 + local.tee $47 i32.const 0 call $std/array/Ref#constructor i32.store - local.get $48 + local.get $47 i32.const 0 call $std/array/Ref#constructor i32.store offset=4 - local.get $57 + local.get $56 call $~lib/array/Array#join - local.tee $48 - i32.const 8240 + local.tee $47 + i32.const 8176 call $~lib/string/String.__eq i32.eqz if @@ -15186,8 +15186,6 @@ local.get $1 call $~lib/rt/pure/__release call $~lib/rt/pure/__release - local.get $54 - call $~lib/rt/pure/__release local.get $53 call $~lib/rt/pure/__release local.get $52 @@ -15198,56 +15196,58 @@ call $~lib/rt/pure/__release local.get $49 call $~lib/rt/pure/__release - local.get $0 + local.get $48 call $~lib/rt/pure/__release - local.get $47 + local.get $0 call $~lib/rt/pure/__release local.get $46 call $~lib/rt/pure/__release local.get $45 call $~lib/rt/pure/__release - local.get $59 - call $~lib/rt/pure/__release local.get $44 call $~lib/rt/pure/__release - local.get $57 + local.get $58 call $~lib/rt/pure/__release - local.get $48 + local.get $43 + call $~lib/rt/pure/__release + local.get $56 + call $~lib/rt/pure/__release + local.get $47 call $~lib/rt/pure/__release i32.const 0 i32.const 2 i32.const 3 - i32.const 8320 + i32.const 8256 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $57 + local.set $56 i32.const 1 i32.const 2 i32.const 3 - i32.const 8336 + i32.const 8272 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $55 + local.set $54 i32.const 2 i32.const 2 i32.const 3 - i32.const 8368 + i32.const 8304 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $54 + local.set $53 i32.const 4 i32.const 2 i32.const 3 - i32.const 8400 + i32.const 8336 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.set $53 - local.get $57 - i32.const 6368 + local.set $52 + local.get $56 + i32.const 6304 call $~lib/array/Array#join local.tee $1 local.get $1 - i32.const 6128 + i32.const 6064 call $~lib/string/String.__eq i32.eqz if @@ -15258,13 +15258,13 @@ call $~lib/builtins/abort unreachable end - local.get $55 - i32.const 6368 + local.get $54 + i32.const 6304 call $~lib/array/Array#join local.tee $1 - local.set $46 + local.set $45 local.get $1 - i32.const 8048 + i32.const 7984 call $~lib/string/String.__eq i32.eqz if @@ -15275,13 +15275,13 @@ call $~lib/builtins/abort unreachable end - local.get $54 - i32.const 6368 + local.get $53 + i32.const 6304 call $~lib/array/Array#join local.tee $1 - local.set $45 + local.set $44 local.get $1 - i32.const 8432 + i32.const 8368 call $~lib/string/String.__eq i32.eqz if @@ -15292,13 +15292,13 @@ call $~lib/builtins/abort unreachable end - local.get $53 - i32.const 6368 + local.get $52 + i32.const 6304 call $~lib/array/Array#join local.tee $1 - local.set $44 + local.set $43 local.get $1 - i32.const 8464 + i32.const 8400 call $~lib/string/String.__eq i32.eqz if @@ -15312,18 +15312,18 @@ i32.const 3 i32.const 0 i32.const 21 - i32.const 8496 + i32.const 8432 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $52 + local.tee $51 i32.load offset=4 - local.get $52 + local.get $51 i32.load offset=12 call $~lib/util/string/joinIntegerArray local.tee $1 - local.set $48 + local.set $47 local.get $1 - i32.const 8528 + i32.const 8464 call $~lib/string/String.__eq i32.eqz if @@ -15337,18 +15337,18 @@ i32.const 3 i32.const 1 i32.const 22 - i32.const 8560 + i32.const 8496 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $51 + local.tee $50 i32.load offset=4 - local.get $51 + local.get $50 i32.load offset=12 call $~lib/util/string/joinIntegerArray local.tee $1 - local.set $41 + local.set $40 local.get $1 - i32.const 8592 + i32.const 8528 call $~lib/string/String.__eq i32.eqz if @@ -15362,18 +15362,18 @@ i32.const 3 i32.const 3 i32.const 23 - i32.const 8640 + i32.const 8576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $50 + local.tee $49 i32.load offset=4 - local.get $50 + local.get $49 i32.load offset=12 call $~lib/util/string/joinIntegerArray local.tee $1 - local.set $40 + local.set $39 local.get $1 - i32.const 8688 + i32.const 8624 call $~lib/string/String.__eq i32.eqz if @@ -15387,18 +15387,18 @@ i32.const 4 i32.const 3 i32.const 24 - i32.const 8752 + i32.const 8688 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $49 + local.tee $48 i32.load offset=4 - local.get $49 + local.get $48 i32.load offset=12 call $~lib/util/string/joinIntegerArray local.tee $1 - local.set $39 + local.set $38 local.get $1 - i32.const 8800 + i32.const 8736 call $~lib/string/String.__eq i32.eqz if @@ -15412,16 +15412,16 @@ i32.const 7 i32.const 2 i32.const 15 - i32.const 8912 + i32.const 8848 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $38 - i32.const 6368 + local.tee $37 + i32.const 6304 call $~lib/array/Array<~lib/string/String | null>#join local.tee $1 - local.set $36 + local.set $35 local.get $1 - i32.const 8960 + i32.const 8896 call $~lib/string/String.__eq i32.eqz if @@ -15435,16 +15435,16 @@ i32.const 4 i32.const 2 i32.const 15 - i32.const 9072 + i32.const 9008 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $35 - i32.const 6368 + local.tee $34 + i32.const 6304 call $~lib/array/Array<~lib/string/String | null>#join local.tee $1 - local.set $31 + local.set $30 local.get $1 - i32.const 9104 + i32.const 9040 call $~lib/string/String.__eq i32.eqz if @@ -15467,7 +15467,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 9136 + i32.const 9072 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store @@ -15475,7 +15475,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 9168 + i32.const 9104 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 @@ -15485,9 +15485,9 @@ i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> local.tee $0 - local.set $30 + local.set $29 local.get $0 - i32.const 9200 + i32.const 9136 call $~lib/string/String.__eq i32.eqz if @@ -15506,19 +15506,19 @@ call $~lib/rt/pure/__retain local.tee $0 i32.load offset=4 - local.tee $59 + local.tee $58 i32.const 2 i32.const 0 i32.const 6 - i32.const 9232 + i32.const 9168 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $59 + local.get $58 i32.const 2 i32.const 0 i32.const 6 - i32.const 9264 + i32.const 9200 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 @@ -15527,10 +15527,10 @@ local.get $0 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array> - local.tee $59 - local.set $29 - local.get $59 - i32.const 9200 + local.tee $58 + local.set $28 + local.get $58 + i32.const 9136 call $~lib/string/String.__eq i32.eqz if @@ -15547,7 +15547,7 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $59 + local.tee $58 i32.load offset=4 i32.const 1 i32.const 2 @@ -15555,26 +15555,26 @@ i32.const 0 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain - local.tee $33 + local.tee $32 i32.load offset=4 i32.const 1 i32.const 2 i32.const 7 - i32.const 9296 + i32.const 9232 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store - local.get $33 + local.get $32 i32.store - local.get $59 + local.get $58 i32.load offset=4 - local.get $59 + local.get $58 i32.load offset=12 call $~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>> - local.tee $34 - local.set $33 - local.get $34 - i32.const 8048 + local.tee $33 + local.set $32 + local.get $33 + i32.const 7984 call $~lib/string/String.__eq i32.eqz if @@ -15585,28 +15585,24 @@ call $~lib/builtins/abort unreachable end - local.get $57 - call $~lib/rt/pure/__release - local.get $55 + local.get $56 call $~lib/rt/pure/__release local.get $54 call $~lib/rt/pure/__release local.get $53 call $~lib/rt/pure/__release + local.get $52 call $~lib/rt/pure/__release - local.get $46 call $~lib/rt/pure/__release local.get $45 call $~lib/rt/pure/__release local.get $44 call $~lib/rt/pure/__release - local.get $52 - call $~lib/rt/pure/__release - local.get $48 + local.get $43 call $~lib/rt/pure/__release local.get $51 call $~lib/rt/pure/__release - local.get $41 + local.get $47 call $~lib/rt/pure/__release local.get $50 call $~lib/rt/pure/__release @@ -15616,38 +15612,42 @@ call $~lib/rt/pure/__release local.get $39 call $~lib/rt/pure/__release + local.get $48 + call $~lib/rt/pure/__release local.get $38 call $~lib/rt/pure/__release - local.get $36 + local.get $37 call $~lib/rt/pure/__release local.get $35 call $~lib/rt/pure/__release - local.get $31 + local.get $34 call $~lib/rt/pure/__release local.get $30 call $~lib/rt/pure/__release local.get $29 call $~lib/rt/pure/__release - local.get $33 + local.get $28 + call $~lib/rt/pure/__release + local.get $32 call $~lib/rt/pure/__release global.get $std/array/arr call $~lib/rt/pure/__release - local.get $58 + local.get $57 call $~lib/rt/pure/__release - local.get $43 + local.get $42 call $~lib/rt/pure/__release - local.get $56 + local.get $55 call $~lib/rt/pure/__release - local.get $32 + local.get $31 call $~lib/rt/pure/__release local.get $1 call $~lib/rt/pure/__release local.get $0 call $~lib/rt/pure/__release - local.get $59 + local.get $58 call $~lib/rt/pure/__release ) - (func $~start (; 164 ;) + (func $~start (; 166 ;) global.get $~started if return @@ -15657,7 +15657,7 @@ end call $start:std/array ) - (func $~lib/rt/pure/decrement (; 165 ;) (param $0 i32) + (func $~lib/rt/pure/decrement (; 167 ;) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -15788,9 +15788,9 @@ i32.store offset=4 end ) - (func $~lib/rt/pure/__visit (; 166 ;) (param $0 i32) + (func $~lib/rt/pure/__visit (; 168 ;) (param $0 i32) local.get $0 - i32.const 9300 + i32.const 9236 i32.lt_u if return @@ -15800,7 +15800,7 @@ i32.sub call $~lib/rt/pure/decrement ) - (func $~lib/array/Array#__visit_impl (; 167 ;) (param $0 i32) + (func $~lib/array/Array#__visit_impl (; 169 ;) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 diff --git a/tests/compiler/std/array.untouched.wat b/tests/compiler/std/array.untouched.wat index 3e14e221a7..c91d1ddd93 100644 --- a/tests/compiler/std/array.untouched.wat +++ b/tests/compiler/std/array.untouched.wat @@ -10,12 +10,12 @@ (type $f32_f32_=>_i32 (func (param f32 f32) (result i32))) (type $f64_f64_=>_i32 (func (param f64 f64) (result i32))) (type $none_=>_none (func)) + (type $none_=>_f64 (func (result f64))) (type $i32_i32_i64_=>_i32 (func (param i32 i32 i64) (result i32))) (type $i32_f32_i32_=>_i32 (func (param i32 f32 i32) (result i32))) (type $i32_f64_i32_=>_i32 (func (param i32 f64 i32) (result i32))) (type $i32_i32_=>_f32 (func (param i32 i32) (result f32))) (type $i32_i32_i32_=>_f32 (func (param i32 i32 i32) (result f32))) - (type $none_=>_f64 (func (result f64))) (type $i32_i32_=>_f64 (func (param i32 i32) (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) @@ -33,6 +33,7 @@ (import "rtrace" "onrealloc" (func $~lib/rt/rtrace/onrealloc (param i32 i32))) (import "rtrace" "onfree" (func $~lib/rt/rtrace/onfree (param i32))) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "seed" (func $~lib/builtins/seed (result f64))) (import "rtrace" "ondecrement" (func $~lib/rt/rtrace/ondecrement (param i32))) (memory $0 1) (data (i32.const 16) "\1c\00\00\00\01\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") @@ -146,72 +147,71 @@ (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\12\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) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003\00") - (data (i32.const 5936) "\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 5968) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-\00") - (data (i32.const 6000) "\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 6032) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_\00") - (data (i32.const 6064) "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 6128) "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 6192) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 \00") - (data (i32.const 6224) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000\00") - (data (i32.const 6256) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00") - (data (i32.const 6288) "\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 6336) "\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 6368) "\b8\02\00\00\01\00\00\00\13\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 7712) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 7728) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") - (data (i32.const 7760) "\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 7792) "\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 7824) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002\00") - (data (i32.const 7856) "\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 7888) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff\00") - (data (i32.const 7920) "\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 7952) "\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 7984) "\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 8032) "\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 8080) "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 8144) " \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 8192) "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 8304) "\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 8352) "\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 8400) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002\00") - (data (i32.const 8432) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004\00") - (data (i32.const 8464) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00 \1d\00\00\e0 \00\00\00\00\00\00\00!\00\00") - (data (i32.const 8496) "\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 8528) "\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 8560) "\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 8592) "\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 8624) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") - (data (i32.const 8656) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") - (data (i32.const 8688) "\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\12\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) "\n\00\00\00\01\00\00\00\01\00\00\00\n\00\00\001\00-\002\00-\003\00") + (data (i32.const 5872) "\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 5904) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\00-\00") + (data (i32.const 5936) "\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 5968) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00_\00_\00") + (data (i32.const 6000) "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 6064) "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 6128) "\04\00\00\00\01\00\00\00\01\00\00\00\04\00\00\00,\00 \00") + (data (i32.const 6160) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\000\00.\000\00") + (data (i32.const 6192) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\00N\00a\00N\00") + (data (i32.const 6224) "\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 6272) "\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 6304) "\b8\02\00\00\01\00\00\00\13\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 7648) "\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00") + (data (i32.const 7664) "\04\00\00\00\01\00\00\00\00\00\00\00\04\00\00\00\01\00\00\00") + (data (i32.const 7696) "\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 7728) "\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 7760) "\06\00\00\00\01\00\00\00\01\00\00\00\06\00\00\001\00,\002\00") + (data (i32.const 7792) "\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 7824) "\03\00\00\00\01\00\00\00\00\00\00\00\03\00\00\00\01\ff\00") + (data (i32.const 7856) "\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 7888) "\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 7920) "\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 7968) "\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 8016) "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 8080) " \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 8128) "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 8240) "\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 8288) "\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 8336) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\002\00") + (data (i32.const 8368) "\02\00\00\00\01\00\00\00\01\00\00\00\02\00\00\004\00") + (data (i32.const 8400) "\10\00\00\00\01\00\00\00\00\00\00\00\10\00\00\00\e0\1c\00\00\a0 \00\00\00\00\00\00\c0 \00\00") + (data (i32.const 8432) "\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 8464) "\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 8496) "\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 8528) "\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 8560) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\01\02") + (data (i32.const 8592) "\02\00\00\00\01\00\00\00\00\00\00\00\02\00\00\00\03\04") + (data (i32.const 8624) "\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)) @@ -238,11 +238,11 @@ (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 8708)) + (global $~lib/heap/__heap_base i32 (i32.const 8644)) (export "__setArgumentsLength" (func $~setArgumentsLength)) (export "_start" (func $~start)) (export "memory" (memory $0)) - (func $~lib/rt/tlsf/removeBlock (; 7 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/removeBlock (; 8 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -452,7 +452,7 @@ end end ) - (func $~lib/rt/tlsf/insertBlock (; 8 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/insertBlock (; 9 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -802,7 +802,7 @@ local.get $7 i32.store offset=4 ) - (func $~lib/rt/tlsf/addMemory (; 9 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/addMemory (; 10 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -950,7 +950,7 @@ call $~lib/rt/tlsf/insertBlock i32.const 1 ) - (func $~lib/rt/tlsf/maybeInitialize (; 10 ;) (result i32) + (func $~lib/rt/tlsf/maybeInitialize (; 11 ;) (result i32) (local $0 i32) (local $1 i32) (local $2 i32) @@ -1100,7 +1100,7 @@ end local.get $0 ) - (func $~lib/rt/tlsf/prepareSize (; 11 ;) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/prepareSize (; 12 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -1129,7 +1129,7 @@ i32.gt_u select ) - (func $~lib/rt/tlsf/searchBlock (; 12 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/searchBlock (; 13 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1312,7 +1312,7 @@ end local.get $7 ) - (func $~lib/rt/tlsf/growMemory (; 13 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/growMemory (; 14 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -1396,7 +1396,7 @@ call $~lib/rt/tlsf/addMemory drop ) - (func $~lib/rt/tlsf/prepareBlock (; 14 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/rt/tlsf/prepareBlock (; 15 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1491,7 +1491,7 @@ i32.store end ) - (func $~lib/rt/tlsf/allocateBlock (; 15 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/allocateBlock (; 16 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) global.get $~lib/rt/tlsf/collectLock @@ -1602,7 +1602,7 @@ call $~lib/rt/rtrace/onalloc local.get $4 ) - (func $~lib/rt/tlsf/__alloc (; 16 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__alloc (; 17 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 local.get $1 @@ -1610,7 +1610,7 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.fill (; 17 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.fill (; 18 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1819,7 +1819,7 @@ end end ) - (func $~lib/rt/pure/increment (; 18 ;) (param $0 i32) + (func $~lib/rt/pure/increment (; 19 ;) (param $0 i32) (local $1 i32) local.get $0 i32.load offset=4 @@ -1864,7 +1864,7 @@ unreachable end ) - (func $~lib/rt/pure/__retain (; 19 ;) (param $0 i32) (result i32) + (func $~lib/rt/pure/__retain (; 20 ;) (param $0 i32) (result i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -1876,7 +1876,7 @@ end local.get $0 ) - (func $~lib/rt/pure/__release (; 20 ;) (param $0 i32) + (func $~lib/rt/pure/__release (; 21 ;) (param $0 i32) local.get $0 global.get $~lib/heap/__heap_base i32.gt_u @@ -1887,7 +1887,7 @@ call $~lib/rt/pure/decrement end ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (; 21 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/arraybuffer/ArrayBufferView#constructor (; 22 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -1959,7 +1959,7 @@ i32.store offset=8 local.get $0 ) - (func $~lib/array/Array#constructor (; 22 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#constructor (; 23 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -1981,7 +1981,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array.isArray<~lib/array/Array | null> (; 23 ;) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/array/Array | null> (; 24 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -1999,7 +1999,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $std/array/Ref#constructor (; 24 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Ref#constructor (; 25 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -2014,7 +2014,7 @@ i32.store local.get $0 ) - (func $~lib/array/Array.isArray (; 25 ;) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray (; 26 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2032,7 +2032,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/typedarray/Uint8Array#constructor (; 26 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/typedarray/Uint8Array#constructor (; 27 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -2048,7 +2048,7 @@ local.set $0 local.get $0 ) - (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (; 27 ;) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/typedarray/Uint8Array> (; 28 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2066,10 +2066,10 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array.isArray (; 28 ;) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray (; 29 ;) (param $0 i32) (result i32) i32.const 0 ) - (func $~lib/array/Array.isArray<~lib/string/String> (; 29 ;) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/string/String> (; 30 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2087,7 +2087,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/array/Array.isArray<~lib/array/Array> (; 30 ;) (param $0 i32) (result i32) + (func $~lib/array/Array.isArray<~lib/array/Array> (; 31 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2105,7 +2105,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/util/memory/memcpy (; 31 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/memory/memcpy (; 32 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3129,7 +3129,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 32 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 33 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3349,7 +3349,7 @@ end end ) - (func $~lib/rt/__allocBuffer (; 33 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/__allocBuffer (; 34 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $0 local.get $1 @@ -3364,7 +3364,7 @@ end local.get $3 ) - (func $~lib/rt/__allocArray (; 34 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/rt/__allocArray (; 35 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -3396,7 +3396,7 @@ i32.store offset=12 local.get $4 ) - (func $~lib/array/Array#fill (; 35 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 36 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -3473,11 +3473,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#get:length (; 36 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 37 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 37 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 38 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -3486,7 +3486,7 @@ i32.add i32.load8_u ) - (func $~lib/array/Array#__get (; 38 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 39 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -3506,7 +3506,7 @@ local.set $2 local.get $2 ) - (func $std/array/isArraysEqual (; 39 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3591,7 +3591,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#fill (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#fill (; 41 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -3676,11 +3676,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#get:length (; 41 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 42 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 42 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 43 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -3689,7 +3689,7 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 43 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 44 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -3709,7 +3709,7 @@ local.set $2 local.get $2 ) - (func $std/array/isArraysEqual (; 44 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 45 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -3794,17 +3794,17 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#get:length (; 45 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 46 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 46 ;) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 47 ;) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub i32.load offset=12 ) - (func $std/array/internalCapacity (; 47 ;) (param $0 i32) (result i32) + (func $std/array/internalCapacity (; 48 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -3825,7 +3825,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/rt/tlsf/checkUsedBlock (; 48 ;) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/checkUsedBlock (; 49 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 16 @@ -3871,7 +3871,7 @@ end local.get $1 ) - (func $~lib/rt/tlsf/freeBlock (; 49 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 50 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $1 i32.load @@ -3887,7 +3887,7 @@ local.get $1 call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/tlsf/reallocateBlock (; 50 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 51 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4006,7 +4006,7 @@ end local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 51 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__realloc (; 52 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 call $~lib/rt/tlsf/checkUsedBlock @@ -4015,7 +4015,7 @@ i32.const 16 i32.add ) - (func $~lib/array/ensureSize (; 52 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/ensureSize (; 53 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4077,7 +4077,7 @@ i32.store offset=8 end ) - (func $~lib/array/Array#push (; 53 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#push (; 54 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4104,7 +4104,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#__unchecked_get (; 54 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 55 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -4113,7 +4113,7 @@ i32.add i32.load ) - (func $~lib/array/Array#__get (; 55 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 56 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -4133,7 +4133,7 @@ local.set $2 local.get $2 ) - (func $~lib/array/Array#pop (; 56 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#pop (; 57 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -4166,7 +4166,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#set:length (; 57 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#set:length (; 58 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4218,11 +4218,11 @@ local.get $1 i32.store offset=12 ) - (func $~lib/array/Array#get:length (; 58 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 59 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#concat (; 59 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#concat (; 60 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -4295,7 +4295,7 @@ call $~lib/rt/pure/__release local.get $8 ) - (func $~lib/array/Array#copyWithin (; 60 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $~lib/array/Array#copyWithin (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -4424,7 +4424,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $std/array/isArraysEqual (; 61 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 62 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4509,7 +4509,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#unshift (; 62 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#unshift (; 63 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -4542,7 +4542,7 @@ i32.store offset=12 local.get $2 ) - (func $~lib/array/Array#shift (; 63 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#shift (; 64 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4591,7 +4591,7 @@ i32.store offset=12 local.get $3 ) - (func $~lib/array/Array#reverse (; 64 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#reverse (; 65 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4646,7 +4646,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#indexOf (; 65 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 66 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4715,7 +4715,7 @@ end i32.const -1 ) - (func $~lib/array/Array#indexOf (; 66 ;) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 67 ;) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4784,7 +4784,7 @@ end i32.const -1 ) - (func $~lib/array/Array#indexOf (; 67 ;) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/array/Array#indexOf (; 68 ;) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4853,7 +4853,7 @@ end i32.const -1 ) - (func $~lib/array/Array#includes (; 68 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 69 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) local.get $0 local.get $1 local.get $2 @@ -4862,7 +4862,7 @@ i32.ge_s return ) - (func $~lib/array/Array#includes (; 69 ;) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 70 ;) (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4945,7 +4945,7 @@ i32.const 0 return ) - (func $~lib/array/Array#includes (; 70 ;) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) + (func $~lib/array/Array#includes (; 71 ;) (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5028,7 +5028,7 @@ i32.const 0 return ) - (func $~lib/array/Array#splice (; 71 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5136,7 +5136,7 @@ i32.store offset=12 local.get $6 ) - (func $~lib/array/Array#splice (; 72 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 73 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5244,7 +5244,7 @@ i32.store offset=12 local.get $6 ) - (func $~lib/array/Array#__unchecked_get (; 73 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 74 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -5254,7 +5254,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 74 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 75 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -5286,7 +5286,7 @@ end local.get $2 ) - (func $~lib/array/Array#splice (; 75 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#splice (; 76 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -5394,11 +5394,11 @@ i32.store offset=12 local.get $6 ) - (func $~lib/array/Array#get:length (; 76 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 77 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 77 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__unchecked_get (; 78 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -5408,7 +5408,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array#__get (; 78 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#__get (; 79 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -5428,7 +5428,7 @@ local.set $2 local.get $2 ) - (func $~lib/array/Array#__unchecked_set (; 79 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__unchecked_set (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $0 i32.load offset=4 local.get $1 @@ -5438,7 +5438,7 @@ local.get $2 i32.store ) - (func $~lib/array/Array#__set (; 80 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array#__set (; 81 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $1 local.get $0 i32.load offset=12 @@ -5472,7 +5472,7 @@ local.get $2 call $~lib/array/Array#__unchecked_set ) - (func $start:std/array~anonymous|0 (; 81 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|0 (; 82 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5485,11 +5485,11 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~setArgumentsLength (; 82 ;) (param $0 i32) + (func $~setArgumentsLength (; 83 ;) (param $0 i32) local.get $0 global.set $~argumentsLength ) - (func $~lib/array/Array#findIndex (; 83 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#findIndex (; 84 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5540,7 +5540,7 @@ end i32.const -1 ) - (func $start:std/array~anonymous|1 (; 84 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|1 (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5553,7 +5553,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|2 (; 85 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|2 (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5566,7 +5566,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|3 (; 86 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|3 (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5583,7 +5583,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|4 (; 87 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|4 (; 88 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5596,7 +5596,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|5 (; 88 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|5 (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5612,7 +5612,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|6 (; 89 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|6 (; 90 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5625,7 +5625,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#every (; 90 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#every (; 91 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5677,7 +5677,7 @@ end i32.const 1 ) - (func $start:std/array~anonymous|7 (; 91 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|7 (; 92 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5690,7 +5690,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|8 (; 92 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|8 (; 93 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5707,7 +5707,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|9 (; 93 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|9 (; 94 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5720,7 +5720,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|10 (; 94 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|10 (; 95 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5736,7 +5736,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|11 (; 95 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|11 (; 96 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5749,7 +5749,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#some (; 96 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#some (; 97 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5800,7 +5800,7 @@ end i32.const 0 ) - (func $start:std/array~anonymous|12 (; 97 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|12 (; 98 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5813,7 +5813,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|13 (; 98 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|13 (; 99 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5830,7 +5830,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|14 (; 99 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|14 (; 100 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5843,7 +5843,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|15 (; 100 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|15 (; 101 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -5859,7 +5859,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|16 (; 101 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|16 (; 102 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -5870,7 +5870,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array#forEach (; 102 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#forEach (; 103 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5916,7 +5916,7 @@ end end ) - (func $start:std/array~anonymous|17 (; 103 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|17 (; 104 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -5931,7 +5931,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|18 (; 104 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|18 (; 105 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -5942,7 +5942,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|19 (; 105 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|19 (; 106 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -5956,7 +5956,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|20 (; 106 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $start:std/array~anonymous|20 (; 107 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -6069,7 +6069,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|21 (; 107 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) + (func $start:std/array~anonymous|21 (; 108 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result f32) (local $3 f32) local.get $2 call $~lib/rt/pure/__retain @@ -6081,7 +6081,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#map (; 108 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 109 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6149,11 +6149,11 @@ end local.get $3 ) - (func $~lib/array/Array#get:length (; 109 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 110 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 110 ;) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__unchecked_get (; 111 ;) (param $0 i32) (param $1 i32) (result f32) local.get $0 i32.load offset=4 local.get $1 @@ -6162,7 +6162,7 @@ i32.add f32.load ) - (func $~lib/array/Array#__get (; 111 ;) (param $0 i32) (param $1 i32) (result f32) + (func $~lib/array/Array#__get (; 112 ;) (param $0 i32) (param $1 i32) (result f32) (local $2 f32) local.get $1 local.get $0 @@ -6182,7 +6182,7 @@ local.set $2 local.get $2 ) - (func $start:std/array~anonymous|22 (; 112 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|22 (; 113 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6201,7 +6201,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#map (; 113 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#map (; 114 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6268,7 +6268,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|23 (; 114 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|23 (; 115 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6283,7 +6283,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|24 (; 115 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|24 (; 116 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6301,7 +6301,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|25 (; 116 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|25 (; 117 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6314,7 +6314,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array#filter (; 117 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#filter (; 118 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -6377,7 +6377,7 @@ end local.get $2 ) - (func $start:std/array~anonymous|26 (; 118 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|26 (; 119 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6398,7 +6398,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|27 (; 119 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|27 (; 120 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6415,7 +6415,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|28 (; 120 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $start:std/array~anonymous|28 (; 121 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) local.get $2 call $~lib/rt/pure/__retain @@ -6435,7 +6435,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $start:std/array~anonymous|29 (; 121 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|29 (; 122 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6448,7 +6448,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduce (; 122 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 123 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6500,7 +6500,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|30 (; 123 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|30 (; 124 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6513,7 +6513,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|31 (; 124 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|31 (; 125 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6531,7 +6531,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduce (; 125 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduce (; 126 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6583,7 +6583,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|32 (; 126 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|32 (; 127 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6601,7 +6601,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|33 (; 127 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|33 (; 128 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6618,7 +6618,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|34 (; 128 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|34 (; 129 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6631,7 +6631,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|35 (; 129 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|35 (; 130 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6647,7 +6647,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|36 (; 130 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|36 (; 131 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6660,7 +6660,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduceRight (; 131 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 132 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6702,7 +6702,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|37 (; 132 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|37 (; 133 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6715,7 +6715,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|38 (; 133 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|38 (; 134 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6733,7 +6733,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#reduceRight (; 134 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/array/Array#reduceRight (; 135 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -6775,7 +6775,7 @@ end local.get $3 ) - (func $start:std/array~anonymous|39 (; 135 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|39 (; 136 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6793,7 +6793,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|40 (; 136 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|40 (; 137 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6810,7 +6810,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|41 (; 137 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|41 (; 138 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6823,7 +6823,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $start:std/array~anonymous|42 (; 138 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (func $start:std/array~anonymous|42 (; 139 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) local.get $3 call $~lib/rt/pure/__retain @@ -6839,7 +6839,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/math/murmurHash3 (; 139 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 140 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -6868,7 +6868,7 @@ local.set $0 local.get $0 ) - (func $~lib/math/splitMix32 (; 140 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 141 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -6903,7 +6903,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 141 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 142 ;) (param $0 i64) i32.const 1 global.set $~lib/math/random_seeded local.get $0 @@ -6955,7 +6955,7 @@ unreachable end ) - (func $~lib/util/sort/insertionSort (; 142 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 143 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -7045,13 +7045,13 @@ end end ) - (func $~lib/rt/tlsf/__free (; 143 ;) (param $0 i32) + (func $~lib/rt/tlsf/__free (; 144 ;) (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 (; 144 ;) (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) @@ -7340,7 +7340,7 @@ local.get $12 f32.store ) - (func $~lib/array/Array#sort (; 145 ;) (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 f32) @@ -7415,7 +7415,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 146 ;) (param $0 f32) (param $1 f32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 147 ;) (param $0 f32) (param $1 f32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -7448,7 +7448,7 @@ i32.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 147 ;) (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 @@ -7467,7 +7467,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $std/array/isArraysEqual (; 148 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 149 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 f32) @@ -7574,7 +7574,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 149 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 150 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -7664,7 +7664,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 150 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 151 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7953,7 +7953,7 @@ local.get $12 f64.store ) - (func $~lib/array/Array#sort (; 151 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 152 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 f64) @@ -8028,7 +8028,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 152 ;) (param $0 f64) (param $1 f64) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 153 ;) (param $0 f64) (param $1 f64) (result i32) (local $2 i64) (local $3 i64) local.get $0 @@ -8061,7 +8061,7 @@ i64.lt_s i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 153 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 154 ;) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -8080,11 +8080,11 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/array/Array#get:length (; 154 ;) (param $0 i32) (result i32) + (func $~lib/array/Array#get:length (; 155 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array#__unchecked_get (; 155 ;) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__unchecked_get (; 156 ;) (param $0 i32) (param $1 i32) (result f64) local.get $0 i32.load offset=4 local.get $1 @@ -8093,7 +8093,7 @@ i32.add f64.load ) - (func $~lib/array/Array#__get (; 156 ;) (param $0 i32) (param $1 i32) (result f64) + (func $~lib/array/Array#__get (; 157 ;) (param $0 i32) (param $1 i32) (result f64) (local $2 f64) local.get $1 local.get $0 @@ -8113,7 +8113,7 @@ local.set $2 local.get $2 ) - (func $std/array/isArraysEqual (; 157 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual (; 158 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 f64) @@ -8220,7 +8220,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/util/sort/insertionSort (; 158 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 159 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8310,7 +8310,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 159 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 160 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8599,7 +8599,7 @@ local.get $12 i32.store ) - (func $~lib/array/Array#sort (; 160 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 161 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8672,12 +8672,12 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 161 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 162 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 162 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 163 ;) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -8696,7 +8696,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $~lib/util/sort/insertionSort (; 163 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort (; 164 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -8786,7 +8786,7 @@ end end ) - (func $~lib/util/sort/weakHeapSort (; 164 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/weakHeapSort (; 165 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9075,7 +9075,7 @@ local.get $12 i32.store ) - (func $~lib/array/Array#sort (; 165 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort (; 166 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9148,7 +9148,7 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 166 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|0 (; 167 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.gt_u @@ -9157,7 +9157,7 @@ i32.lt_u i32.sub ) - (func $~lib/array/Array#sort|trampoline (; 167 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#sort|trampoline (; 168 ;) (param $0 i32) (param $1 i32) (result i32) block $1of1 block $0of1 block $outOfRange @@ -9176,7 +9176,7 @@ local.get $1 call $~lib/array/Array#sort ) - (func $std/array/createReverseOrderedArray (; 168 ;) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedArray (; 169 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9210,19 +9210,16 @@ end local.get $1 ) - (func $~lib/math/NativeMath.random (; 169 ;) (result f64) + (func $~lib/math/NativeMath.random (; 170 ;) (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/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 local.set $0 @@ -9265,7 +9262,7 @@ f64.const 1 f64.sub ) - (func $std/array/createRandomOrderedArray (; 170 ;) (param $0 i32) (result i32) + (func $std/array/createRandomOrderedArray (; 171 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9299,12 +9296,12 @@ end local.get $1 ) - (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 171 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR~anonymous|1 (; 172 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $std/array/isSorted (; 172 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted (; 173 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9359,7 +9356,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted (; 173 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted (; 174 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9384,7 +9381,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/array/assertSortedDefault (; 174 ;) (param $0 i32) + (func $std/array/assertSortedDefault (; 175 ;) (param $0 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 @@ -9397,27 +9394,27 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $start:std/array~anonymous|43 (; 175 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|43 (; 176 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|44 (; 176 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|44 (; 177 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $start:std/array~anonymous|45 (; 177 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|45 (; 178 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $1 i32.sub ) - (func $start:std/array~anonymous|46 (; 178 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|46 (; 179 ;) (param $0 i32) (param $1 i32) (result i32) local.get $1 local.get $0 i32.sub ) - (func $~lib/array/Array<~lib/array/Array>#constructor (; 179 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#constructor (; 180 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -9439,7 +9436,7 @@ i32.store offset=12 local.get $0 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 180 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_set (; 181 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -9469,7 +9466,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/array/Array>#__set (; 181 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/array/Array>#__set (; 182 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -9510,7 +9507,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedNestedArray (; 182 ;) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedNestedArray (; 183 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -9555,7 +9552,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|47 (; 183 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|47 (; 184 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9577,7 +9574,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 184 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/array/Array> (; 185 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9675,7 +9672,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#sort (; 185 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#sort (; 186 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9746,11 +9743,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#get:length (; 186 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#get:length (; 187 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 187 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__unchecked_get (; 188 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -9760,7 +9757,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/array/Array>#__get (; 188 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/array/Array>#__get (; 189 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -9792,7 +9789,7 @@ end local.get $2 ) - (func $std/array/isSorted<~lib/array/Array> (; 189 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/array/Array> (; 190 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9859,7 +9856,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted<~lib/array/Array> (; 190 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/array/Array> (; 191 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -9884,7 +9881,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/array/Array>#constructor (; 191 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#constructor (; 192 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -9906,7 +9903,7 @@ i32.store offset=12 local.get $0 ) - (func $std/array/Proxy#constructor (; 192 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/Proxy#constructor (; 193 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.eqz if @@ -9921,7 +9918,7 @@ i32.store local.get $0 ) - (func $~lib/array/Array>#__unchecked_set (; 193 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__unchecked_set (; 194 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -9951,7 +9948,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array>#__set (; 194 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array>#__set (; 195 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -9992,7 +9989,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createReverseOrderedElementsArray (; 195 ;) (param $0 i32) (result i32) + (func $std/array/createReverseOrderedElementsArray (; 196 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -10032,7 +10029,7 @@ end local.get $1 ) - (func $start:std/array~anonymous|48 (; 196 ;) (param $0 i32) (param $1 i32) (result i32) + (func $start:std/array~anonymous|48 (; 197 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10052,7 +10049,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/util/sort/insertionSort> (; 197 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort> (; 198 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10150,7 +10147,7 @@ end end ) - (func $~lib/array/Array>#sort (; 198 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#sort (; 199 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10221,11 +10218,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#get:length (; 199 ;) (param $0 i32) (result i32) + (func $~lib/array/Array>#get:length (; 200 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array>#__unchecked_get (; 200 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__unchecked_get (; 201 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10235,7 +10232,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array>#__get (; 201 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array>#__get (; 202 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -10267,7 +10264,7 @@ end local.get $2 ) - (func $std/array/isSorted> (; 202 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted> (; 203 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10334,7 +10331,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted> (; 203 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted> (; 204 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10359,7 +10356,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 204 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String | null> (; 205 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -10457,7 +10454,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String | null>#sort (; 205 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#sort (; 206 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10528,11 +10525,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#get:length (; 206 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#get:length (; 207 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 207 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__unchecked_get (; 208 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -10542,7 +10539,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String | null>#__get (; 208 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String | null>#__get (; 209 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -10562,7 +10559,7 @@ local.set $2 local.get $2 ) - (func $std/array/isSorted<~lib/string/String | null> (; 209 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String | null> (; 210 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10629,7 +10626,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted<~lib/string/String | null> (; 210 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null> (; 211 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -10654,7 +10651,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String#get:length (; 211 ;) (param $0 i32) (result i32) + (func $~lib/string/String#get:length (; 212 ;) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub @@ -10662,7 +10659,7 @@ i32.const 1 i32.shr_u ) - (func $~lib/util/string/compareImpl (; 212 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 213 ;) (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) @@ -10784,7 +10781,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 213 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String | null>~anonymous|0 (; 214 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -10890,7 +10887,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 214 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String | null>|trampoline (; 215 ;) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -10911,7 +10908,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String | null> ) - (func $~lib/string/String.__eq (; 215 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 216 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -10984,7 +10981,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__ne (; 216 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__ne (; 217 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11003,7 +11000,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/isArraysEqual<~lib/string/String | null> (; 217 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $std/array/isArraysEqual<~lib/string/String | null> (; 218 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11100,7 +11097,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $~lib/array/Array<~lib/string/String>#constructor (; 218 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#constructor (; 219 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 if (result i32) local.get $0 @@ -11122,14 +11119,14 @@ i32.store offset=12 local.get $0 ) - (func $~lib/string/String#charAt (; 219 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#charAt (; 220 ;) (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 @@ -11148,7 +11145,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/string/String#concat (; 220 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String#concat (; 221 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11162,7 +11159,7 @@ i32.const 0 i32.eq if - i32.const 5232 + i32.const 5168 local.tee $2 local.get $1 local.tee $3 @@ -11195,7 +11192,7 @@ i32.const 0 i32.eq if - i32.const 5120 + i32.const 5056 call $~lib/rt/pure/__retain local.set $2 local.get $1 @@ -11224,7 +11221,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $~lib/string/String.__concat (; 221 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__concat (; 222 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11233,7 +11230,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 @@ -11247,7 +11244,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/createRandomString (; 222 ;) (param $0 i32) (result i32) + (func $std/array/createRandomString (; 223 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11256,7 +11253,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 @@ -11308,7 +11305,7 @@ end local.get $1 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 223 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_set (; 224 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) local.get $2 @@ -11338,7 +11335,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $~lib/array/Array<~lib/string/String>#__set (; 224 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/array/Array<~lib/string/String>#__set (; 225 ;) (param $0 i32) (param $1 i32) (param $2 i32) local.get $2 call $~lib/rt/pure/__retain local.set $2 @@ -11379,7 +11376,7 @@ local.get $2 call $~lib/rt/pure/__release ) - (func $std/array/createRandomStringArray (; 225 ;) (param $0 i32) (result i32) + (func $std/array/createRandomStringArray (; 226 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -11417,7 +11414,7 @@ end local.get $1 ) - (func $~lib/util/sort/insertionSort<~lib/string/String> (; 226 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/sort/insertionSort<~lib/string/String> (; 227 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11515,7 +11512,7 @@ end end ) - (func $~lib/array/Array<~lib/string/String>#sort (; 227 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#sort (; 228 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11586,11 +11583,11 @@ local.get $0 call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#get:length (; 228 ;) (param $0 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#get:length (; 229 ;) (param $0 i32) (result i32) local.get $0 i32.load offset=12 ) - (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 229 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__unchecked_get (; 230 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 i32.load offset=4 local.get $1 @@ -11600,7 +11597,7 @@ i32.load call $~lib/rt/pure/__retain ) - (func $~lib/array/Array<~lib/string/String>#__get (; 230 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array<~lib/string/String>#__get (; 231 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 local.get $0 @@ -11632,7 +11629,7 @@ end local.get $2 ) - (func $std/array/isSorted<~lib/string/String> (; 231 ;) (param $0 i32) (param $1 i32) (result i32) + (func $std/array/isSorted<~lib/string/String> (; 232 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11699,7 +11696,7 @@ call $~lib/rt/pure/__release local.get $3 ) - (func $std/array/assertSorted<~lib/string/String> (; 232 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String> (; 233 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -11724,7 +11721,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 233 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/util/sort/COMPARATOR<~lib/string/String>~anonymous|0 (; 234 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -11830,7 +11827,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/array/assertSorted<~lib/string/String>|trampoline (; 234 ;) (param $0 i32) (param $1 i32) + (func $std/array/assertSorted<~lib/string/String>|trampoline (; 235 ;) (param $0 i32) (param $1 i32) block $1of1 block $0of1 block $outOfRange @@ -11851,7 +11848,7 @@ local.get $1 call $std/array/assertSorted<~lib/string/String> ) - (func $~lib/string/String#substring (; 235 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String#substring (; 236 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11925,7 +11922,7 @@ local.get $10 i32.eqz if - i32.const 5120 + i32.const 5056 call $~lib/rt/pure/__retain return end @@ -11958,7 +11955,7 @@ local.get $11 call $~lib/rt/pure/__retain ) - (func $~lib/util/string/joinBooleanArray (; 236 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinBooleanArray (; 237 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -11980,7 +11977,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 @@ -11990,8 +11987,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 @@ -12048,8 +12045,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 @@ -12099,8 +12096,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 @@ -12133,7 +12130,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 237 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 238 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12156,7 +12153,7 @@ local.get $4 return ) - (func $~lib/util/number/decimalCount32 (; 238 ;) (param $0 i32) (result i32) + (func $~lib/util/number/decimalCount32 (; 239 ;) (param $0 i32) (result i32) local.get $0 i32.const 100000 i32.lt_u @@ -12211,7 +12208,7 @@ end unreachable ) - (func $~lib/util/number/utoa32_lut (; 239 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/util/number/utoa32_lut (; 240 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12246,14 +12243,14 @@ i32.const 100 i32.rem_u local.set $7 - i32.const 5504 + i32.const 5440 local.get $6 i32.const 2 i32.shl i32.add i64.load32_u local.set $8 - i32.const 5504 + i32.const 5440 local.get $7 i32.const 2 i32.shl @@ -12296,7 +12293,7 @@ i32.const 2 i32.sub local.set $2 - i32.const 5504 + i32.const 5440 local.get $10 i32.const 2 i32.shl @@ -12319,7 +12316,7 @@ i32.const 2 i32.sub local.set $2 - i32.const 5504 + i32.const 5440 local.get $1 i32.const 2 i32.shl @@ -12351,7 +12348,7 @@ i32.store16 end ) - (func $~lib/util/number/itoa32 (; 240 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa32 (; 241 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12361,7 +12358,7 @@ local.get $0 i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -12405,12 +12402,12 @@ local.get $3 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 241 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 242 ;) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/itoa32 return ) - (func $~lib/util/number/itoa_stream (; 242 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 243 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12475,7 +12472,7 @@ call $~lib/util/number/utoa32_lut local.get $4 ) - (func $~lib/util/string/joinIntegerArray (; 243 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 244 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12495,7 +12492,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 @@ -12618,7 +12615,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 244 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 245 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12641,7 +12638,7 @@ local.get $4 return ) - (func $~lib/util/number/utoa32 (; 245 ;) (param $0 i32) (result i32) + (func $~lib/util/number/utoa32 (; 246 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -12650,7 +12647,7 @@ local.get $0 i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -12675,12 +12672,12 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/util/number/itoa (; 246 ;) (param $0 i32) (result i32) + (func $~lib/util/number/itoa (; 247 ;) (param $0 i32) (result i32) local.get $0 call $~lib/util/number/utoa32 return ) - (func $~lib/util/number/itoa_stream (; 247 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/number/itoa_stream (; 248 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12725,7 +12722,7 @@ call $~lib/util/number/utoa32_lut local.get $4 ) - (func $~lib/util/string/joinIntegerArray (; 248 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/util/string/joinIntegerArray (; 249 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12745,7 +12742,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 @@ -12868,7 +12865,7 @@ call $~lib/rt/pure/__release local.get $4 ) - (func $~lib/array/Array#join (; 249 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#join (; 250 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12891,7 +12888,7 @@ local.get $4 return ) - (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) @@ -13160,7 +13157,7 @@ local.set $23 local.get $19 local.set $22 - i32.const 7296 + i32.const 7232 local.get $14 i32.const 2 i32.shl @@ -13301,7 +13298,7 @@ i32.add global.set $~lib/util/number/_K local.get $10 - i32.const 7296 + i32.const 7232 i32.const 0 local.get $14 i32.sub @@ -13394,7 +13391,7 @@ end unreachable ) - (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) @@ -13711,7 +13708,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) @@ -13874,14 +13871,14 @@ i32.shl i32.sub global.set $~lib/util/number/_K - i32.const 6384 + i32.const 6320 local.get $14 i32.const 3 i32.shl i32.add i64.load global.set $~lib/util/number/_frc_pow - i32.const 7104 + i32.const 7040 local.get $14 i32.const 1 i32.shl @@ -14137,7 +14134,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) @@ -14145,7 +14142,7 @@ f64.const 0 f64.eq if - i32.const 6240 + i32.const 6176 return end local.get $0 @@ -14159,11 +14156,11 @@ local.get $0 f64.ne if - i32.const 6272 + i32.const 6208 return end - i32.const 6304 - i32.const 6352 + i32.const 6240 + i32.const 6288 local.get $0 f64.const 0 f64.lt @@ -14198,7 +14195,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.get $0 local.get $1 @@ -14276,7 +14273,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) @@ -14296,7 +14293,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 @@ -14419,7 +14416,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) @@ -14442,7 +14439,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) @@ -14464,7 +14461,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 @@ -14481,7 +14478,7 @@ local.get $4 call $~lib/rt/pure/__retain else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -14671,7 +14668,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) @@ -14694,10 +14691,10 @@ local.get $4 return ) - (func $std/array/Ref#toString (; 259 ;) (param $0 i32) (result i32) - i32.const 7520 + (func $std/array/Ref#toString (; 260 ;) (param $0 i32) (result i32) + i32.const 7456 ) - (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) @@ -14719,7 +14716,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 @@ -14753,7 +14750,7 @@ local.get $5 call $std/array/Ref#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -14763,7 +14760,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -14908,7 +14905,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) @@ -14931,7 +14928,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) @@ -14953,7 +14950,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 @@ -14987,7 +14984,7 @@ local.get $5 call $std/array/Ref#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -14997,7 +14994,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -15142,7 +15139,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) @@ -15165,12 +15162,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 @@ -15179,7 +15176,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) @@ -15264,7 +15261,7 @@ call $~lib/util/number/utoa32_lut local.get $4 ) - (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) @@ -15284,7 +15281,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 @@ -15407,7 +15404,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) @@ -15430,19 +15427,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) @@ -15495,7 +15492,7 @@ call $~lib/util/number/utoa32_lut local.get $4 ) - (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) @@ -15515,7 +15512,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 @@ -15638,7 +15635,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) @@ -15661,12 +15658,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/decimalCount64High (; 275 ;) (param $0 i64) (result i32) + (func $~lib/util/number/decimalCount64High (; 276 ;) (param $0 i64) (result i32) local.get $0 i64.const 1000000000000000 i64.lt_u @@ -15725,7 +15722,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 i64) (local $5 i32) @@ -15781,14 +15778,14 @@ i32.const 100 i32.rem_u local.set $11 - i32.const 5504 + i32.const 5440 local.get $10 i32.const 2 i32.shl i32.add i64.load32_u local.set $12 - i32.const 5504 + i32.const 5440 local.get $11 i32.const 2 i32.shl @@ -15810,14 +15807,14 @@ i64.shl i64.or i64.store - i32.const 5504 + i32.const 5440 local.get $8 i32.const 2 i32.shl i32.add i64.load32_u local.set $12 - i32.const 5504 + i32.const 5440 local.get $9 i32.const 2 i32.shl @@ -15848,7 +15845,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) @@ -15861,7 +15858,7 @@ i64.ne i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -15914,12 +15911,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) @@ -15990,7 +15987,7 @@ end local.get $4 ) - (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) @@ -16010,7 +16007,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 @@ -16133,7 +16130,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) @@ -16156,12 +16153,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) @@ -16175,7 +16172,7 @@ i64.ne i32.eqz if - i32.const 5472 + i32.const 5408 return end local.get $0 @@ -16250,12 +16247,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) @@ -16346,7 +16343,7 @@ end local.get $4 ) - (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) @@ -16366,7 +16363,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 @@ -16489,7 +16486,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) @@ -16512,17 +16509,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) @@ -16544,7 +16541,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 @@ -16578,7 +16575,7 @@ local.get $5 call $~lib/array/Array#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -16588,7 +16585,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -16733,7 +16730,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) @@ -16756,19 +16753,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) @@ -16821,7 +16818,7 @@ call $~lib/util/number/utoa32_lut local.get $4 ) - (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) @@ -16841,7 +16838,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 @@ -16964,7 +16961,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) @@ -16987,12 +16984,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) @@ -17014,7 +17011,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 @@ -17048,7 +17045,7 @@ local.get $5 call $~lib/array/Array#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -17058,7 +17055,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -17203,7 +17200,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) @@ -17226,17 +17223,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) @@ -17258,7 +17255,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 @@ -17292,7 +17289,7 @@ local.get $5 call $~lib/array/Array#toString else - i32.const 5120 + i32.const 5056 end local.set $4 local.get $2 @@ -17302,7 +17299,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -17447,7 +17444,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) @@ -17470,12 +17467,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) @@ -17497,7 +17494,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 @@ -17531,7 +17528,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 @@ -17541,7 +17538,7 @@ local.get $4 return end - i32.const 5120 + i32.const 5056 local.set $7 local.get $2 call $~lib/string/String#get:length @@ -17686,7 +17683,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) @@ -17709,12 +17706,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) @@ -22710,7 +22707,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 $29 @@ -22731,7 +22728,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 $31 @@ -22904,14 +22901,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 $31 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 $34 @@ -22950,14 +22947,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 $34 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join local.tee $29 - i32.const 5392 + i32.const 5328 call $~lib/string/String.__eq i32.eqz if @@ -22971,14 +22968,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 $32 - i32.const 5120 + i32.const 5056 call $~lib/array/Array#join local.tee $31 - i32.const 5920 + i32.const 5856 call $~lib/string/String.__eq i32.eqz if @@ -22992,14 +22989,14 @@ i32.const 3 i32.const 2 i32.const 7 - i32.const 5952 + i32.const 5888 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $37 - i32.const 5984 + i32.const 5920 call $~lib/array/Array#join local.tee $36 - i32.const 5920 + i32.const 5856 call $~lib/string/String.__eq i32.eqz if @@ -23013,14 +23010,14 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 6016 + i32.const 5952 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $35 - i32.const 6048 + i32.const 5984 call $~lib/array/Array#join local.tee $54 - i32.const 6080 + i32.const 6016 call $~lib/string/String.__eq i32.eqz if @@ -23034,14 +23031,14 @@ i32.const 6 i32.const 3 i32.const 10 - i32.const 6144 + i32.const 6080 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $40 - i32.const 6208 + i32.const 6144 call $~lib/array/Array#join local.tee $39 - i32.const 7360 + i32.const 7296 call $~lib/string/String.__eq i32.eqz if @@ -23055,14 +23052,14 @@ i32.const 3 i32.const 2 i32.const 15 - i32.const 7488 + i32.const 7424 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $42 - i32.const 5120 + i32.const 5056 call $~lib/array/Array<~lib/string/String | null>#join local.tee $38 - i32.const 7456 + i32.const 7392 call $~lib/string/String.__eq i32.eqz if @@ -23100,10 +23097,10 @@ local.get $43 local.set $41 local.get $41 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join local.tee $43 - i32.const 7568 + i32.const 7504 call $~lib/string/String.__eq i32.eqz if @@ -23137,10 +23134,10 @@ local.get $44 local.set $47 local.get $47 - i32.const 5360 + i32.const 5296 call $~lib/array/Array#join local.tee $44 - i32.const 7648 + i32.const 7584 call $~lib/string/String.__eq i32.eqz if @@ -23186,35 +23183,35 @@ i32.const 0 i32.const 2 i32.const 3 - i32.const 7728 + i32.const 7664 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $47 i32.const 1 i32.const 2 i32.const 3 - i32.const 7744 + i32.const 7680 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $43 i32.const 2 i32.const 2 i32.const 3 - i32.const 7776 + i32.const 7712 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $41 i32.const 4 i32.const 2 i32.const 3 - i32.const 7808 + i32.const 7744 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $38 local.get $47 call $~lib/array/Array#toString local.tee $44 - i32.const 5120 + i32.const 5056 call $~lib/string/String.__eq i32.eqz if @@ -23228,7 +23225,7 @@ local.get $43 call $~lib/array/Array#toString local.tee $42 - i32.const 7456 + i32.const 7392 call $~lib/string/String.__eq i32.eqz if @@ -23242,7 +23239,7 @@ local.get $41 call $~lib/array/Array#toString local.tee $39 - i32.const 7840 + i32.const 7776 call $~lib/string/String.__eq i32.eqz if @@ -23256,7 +23253,7 @@ local.get $38 call $~lib/array/Array#toString local.tee $40 - i32.const 7872 + i32.const 7808 call $~lib/string/String.__eq i32.eqz if @@ -23270,13 +23267,13 @@ i32.const 3 i32.const 0 i32.const 21 - i32.const 7904 + i32.const 7840 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $35 call $~lib/array/Array#toString local.tee $54 - i32.const 7936 + i32.const 7872 call $~lib/string/String.__eq i32.eqz if @@ -23290,13 +23287,13 @@ i32.const 3 i32.const 1 i32.const 22 - i32.const 7968 + i32.const 7904 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $37 call $~lib/array/Array#toString local.tee $36 - i32.const 8000 + i32.const 7936 call $~lib/string/String.__eq i32.eqz if @@ -23310,13 +23307,13 @@ i32.const 3 i32.const 3 i32.const 23 - i32.const 8048 + i32.const 7984 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $32 call $~lib/array/Array#toString local.tee $31 - i32.const 8096 + i32.const 8032 call $~lib/string/String.__eq i32.eqz if @@ -23330,13 +23327,13 @@ i32.const 4 i32.const 3 i32.const 24 - i32.const 8160 + i32.const 8096 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $34 call $~lib/array/Array#toString local.tee $29 - i32.const 8208 + i32.const 8144 call $~lib/string/String.__eq i32.eqz if @@ -23350,14 +23347,14 @@ i32.const 7 i32.const 2 i32.const 15 - i32.const 8320 + i32.const 8256 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.set $49 local.get $49 call $~lib/array/Array<~lib/string/String | null>#toString local.tee $48 - i32.const 8368 + i32.const 8304 call $~lib/string/String.__eq i32.eqz if @@ -23371,13 +23368,13 @@ i32.const 4 i32.const 2 i32.const 15 - i32.const 8480 + i32.const 8416 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain local.tee $50 call $~lib/array/Array<~lib/string/String | null>#toString local.tee $51 - i32.const 8512 + i32.const 8448 call $~lib/string/String.__eq i32.eqz if @@ -23402,7 +23399,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 8544 + i32.const 8480 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store @@ -23410,7 +23407,7 @@ i32.const 2 i32.const 2 i32.const 3 - i32.const 8576 + i32.const 8512 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 @@ -23419,7 +23416,7 @@ local.get $56 call $~lib/array/Array<~lib/array/Array>#toString local.tee $30 - i32.const 8608 + i32.const 8544 call $~lib/string/String.__eq i32.eqz if @@ -23444,7 +23441,7 @@ i32.const 2 i32.const 0 i32.const 6 - i32.const 8640 + i32.const 8576 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store @@ -23452,7 +23449,7 @@ i32.const 2 i32.const 0 i32.const 6 - i32.const 8672 + i32.const 8608 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store offset=4 @@ -23461,7 +23458,7 @@ local.get $57 call $~lib/array/Array<~lib/array/Array>#toString local.tee $26 - i32.const 8608 + i32.const 8544 call $~lib/string/String.__eq i32.eqz if @@ -23497,7 +23494,7 @@ i32.const 1 i32.const 2 i32.const 7 - i32.const 8704 + i32.const 8640 call $~lib/rt/__allocArray call $~lib/rt/pure/__retain i32.store @@ -23508,7 +23505,7 @@ local.get $58 call $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#toString local.tee $28 - i32.const 7456 + i32.const 7392 call $~lib/string/String.__eq i32.eqz if @@ -23582,7 +23579,7 @@ local.get $58 call $~lib/rt/pure/__release ) - (func $~start (; 309 ;) + (func $~start (; 310 ;) global.get $~started if return @@ -23592,10 +23589,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 @@ -23672,7 +23669,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 @@ -23696,16 +23693,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) @@ -23744,13 +23741,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) @@ -23789,7 +23786,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) @@ -23828,7 +23825,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) @@ -23867,7 +23864,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) @@ -23906,7 +23903,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) @@ -23945,31 +23942,31 @@ 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/staticarray/StaticArray#__visit_impl (; 325 ;) (param $0 i32) (param $1 i32) + (func $~lib/staticarray/StaticArray#__visit_impl (; 326 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/staticarray/StaticArray#__visit_impl (; 326 ;) (param $0 i32) (param $1 i32) + (func $~lib/staticarray/StaticArray#__visit_impl (; 327 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/staticarray/StaticArray#__visit_impl (; 327 ;) (param $0 i32) (param $1 i32) + (func $~lib/staticarray/StaticArray#__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#__visit_impl (; 330 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 331 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array#__visit_impl (; 331 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array#__visit_impl (; 332 ;) (param $0 i32) (param $1 i32) nop ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 332 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 333 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24008,7 +24005,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 333 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array>#__visit_impl (; 334 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24047,7 +24044,7 @@ end end ) - (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 334 ;) (param $0 i32) (param $1 i32) + (func $~lib/array/Array<~lib/array/Array<~lib/array/Array>>#__visit_impl (; 335 ;) (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -24086,7 +24083,7 @@ end end ) - (func $~lib/rt/__visit_members (; 335 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 336 ;) (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 ed5c7e3e3e..3faa6502a1 100644 --- a/tests/compiler/std/math.optimized.wat +++ b/tests/compiler/std/math.optimized.wat @@ -11,6 +11,7 @@ (type $f64_f64_f64_f64_=>_i32 (func (param f64 f64 f64 f64) (result i32))) (type $none_=>_none (func)) (type $f32_i32_=>_f32 (func (param f32 i32) (result f32))) + (type $none_=>_f64 (func (result f64))) (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i64_=>_none (func (param i64))) @@ -24,7 +25,6 @@ (type $i64_=>_i64 (func (param i64) (result i64))) (type $i64_i32_=>_i64 (func (param i64 i32) (result i64))) (type $f32_f32_f32_=>_f32 (func (param f32 f32 f32) (result f32))) - (type $none_=>_f64 (func (result f64))) (type $f64_f64_i32_=>_f64 (func (param f64 f64 i32) (result f64))) (type $f64_f64_f64_=>_f64 (func (param f64 f64 f64) (result f64))) (import "Math" "E" (global $~lib/bindings/Math/E f64)) @@ -59,6 +59,7 @@ (import "Math" "min" (func $~lib/bindings/Math/min (param f64 f64) (result f64))) (import "math" "mod" (func $std/math/mod (param f64 f64) (result f64))) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "seed" (func $~lib/builtins/seed (result f64))) (import "Math" "sign" (func $~lib/bindings/Math/sign (param f64) (result f64))) (import "Math" "sin" (func $~lib/bindings/Math/sin (param f64) (result f64))) (import "Math" "sinh" (func $~lib/bindings/Math/sinh (param f64) (result f64))) @@ -75,7 +76,6 @@ (data (i32.const 3393) "\01\00\00\01\00\00\00\03\00\00\00\00\01\00\00\00\00\00\00\00\00\f0?t\85\15\d3\b0\d9\ef?\0f\89\f9lX\b5\ef?Q[\12\d0\01\93\ef?{Q}<\b8r\ef?\aa\b9h1\87T\ef?8bunz8\ef?\e1\de\1f\f5\9d\1e\ef?\15\b71\n\fe\06\ef?\cb\a9:7\a7\f1\ee?\"4\12L\a6\de\ee?-\89a`\08\ce\ee?\'*6\d5\da\bf\ee?\82O\9dV+\b4\ee?)TH\dd\07\ab\ee?\85U:\b0~\a4\ee?\cd;\7ff\9e\a0\ee?t_\ec\e8u\9f\ee?\87\01\ebs\14\a1\ee?\13\ceL\99\89\a5\ee?\db\a0*B\e5\ac\ee?\e5\c5\cd\b07\b7\ee?\90\f0\a3\82\91\c4\ee?]%>\b2\03\d5\ee?\ad\d3Z\99\9f\e8\ee?G^\fb\f2v\ff\ee?\9cR\85\dd\9b\19\ef?i\90\ef\dc 7\ef?\87\a4\fb\dc\18X\ef?_\9b{3\97|\ef?\da\90\a4\a2\af\a4\ef?@En[v\d0\ef?") (data (i32.const 3665) "\01\00\00\01\00\00\00\04\00\00\00\00\01\00\00\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\0d\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\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 3936) "\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 3984) "(\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)) @@ -89,7 +89,7 @@ (global $~lib/math/NativeMath.sincos_cos (mut f64) (f64.const 0)) (export "memory" (memory $0)) (start $~start) - (func $~lib/math/NativeMath.scalbn (; 32 ;) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/NativeMath.scalbn (; 33 ;) (param $0 f64) (param $1 i32) (result f64) local.get $1 i32.const 1023 i32.gt_s @@ -166,7 +166,7 @@ f64.reinterpret_i64 f64.mul ) - (func $std/math/ulperr (; 33 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) + (func $std/math/ulperr (; 34 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result f64) (local $3 i32) local.get $1 local.get $1 @@ -256,7 +256,7 @@ local.get $2 f64.add ) - (func $std/math/check (; 34 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/check (; 35 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 f64.eq @@ -286,7 +286,7 @@ end i32.const 1 ) - (func $~lib/math/NativeMathf.scalbn (; 35 ;) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/NativeMathf.scalbn (; 36 ;) (param $0 f32) (param $1 i32) (result f32) local.get $1 i32.const 127 i32.gt_s @@ -362,7 +362,7 @@ f32.reinterpret_i32 f32.mul ) - (func $std/math/ulperrf (; 36 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) + (func $std/math/ulperrf (; 37 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) (local $3 i32) local.get $1 local.get $1 @@ -449,7 +449,7 @@ local.get $2 f32.add ) - (func $std/math/check (; 37 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/check (; 38 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 f32.eq @@ -479,7 +479,7 @@ end i32.const 1 ) - (func $std/math/test_scalbn (; 38 ;) (param $0 f64) (param $1 i32) (param $2 f64) (result i32) + (func $std/math/test_scalbn (; 39 ;) (param $0 f64) (param $1 i32) (param $2 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.scalbn @@ -487,7 +487,7 @@ f64.const 0 call $std/math/check ) - (func $std/math/test_scalbnf (; 39 ;) (param $0 f32) (param $1 i32) (param $2 f32) (result i32) + (func $std/math/test_scalbnf (; 40 ;) (param $0 f32) (param $1 i32) (param $2 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.scalbn @@ -495,7 +495,7 @@ f32.const 0 call $std/math/check ) - (func $std/math/test_abs (; 40 ;) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_abs (; 41 ;) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.abs local.get $1 @@ -511,14 +511,14 @@ i32.const 0 end ) - (func $std/math/test_absf (; 41 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_absf (; 42 ;) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.abs local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/R (; 42 ;) (param $0 f64) (result f64) + (func $~lib/math/R (; 43 ;) (param $0 f64) (result f64) local.get $0 f64.const 0.16666666666666666 local.get $0 @@ -561,7 +561,7 @@ f64.add f64.div ) - (func $~lib/math/NativeMath.acos (; 43 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 44 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -685,7 +685,7 @@ f64.add f64.mul ) - (func $std/math/test_acos (; 44 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_acos (; 45 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.acos local.get $1 @@ -701,7 +701,7 @@ i32.const 0 end ) - (func $~lib/math/Rf (; 45 ;) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 46 ;) (param $0 f32) (result f32) local.get $0 f32.const 0.16666586697101593 local.get $0 @@ -720,7 +720,7 @@ f32.add f32.div ) - (func $~lib/math/NativeMathf.acos (; 46 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 47 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -836,14 +836,14 @@ f32.add f32.mul ) - (func $std/math/test_acosf (; 47 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_acosf (; 48 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.acos local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.log1p (; 48 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 49 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i32) @@ -1039,7 +1039,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.log (; 49 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 50 ;) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) (local $3 f64) @@ -1206,7 +1206,7 @@ f64.mul f64.add ) - (func $std/math/test_acosh (; 50 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_acosh (; 51 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i64) block $__inlined_func$~lib/math/NativeMath.acosh (result f64) @@ -1275,7 +1275,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log1p (; 51 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 52 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -1443,7 +1443,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.log (; 52 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 53 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -1576,7 +1576,7 @@ f32.mul f32.add ) - (func $std/math/test_acoshf (; 53 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_acoshf (; 54 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) block $__inlined_func$~lib/math/NativeMathf.acosh (result f32) local.get $0 @@ -1631,7 +1631,7 @@ local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.asin (; 54 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 55 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -1769,7 +1769,7 @@ end local.get $0 ) - (func $std/math/test_asin (; 55 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_asin (; 56 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.asin local.get $1 @@ -1785,7 +1785,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.asin (; 56 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 57 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f64) @@ -1866,14 +1866,14 @@ local.get $1 f32.copysign ) - (func $std/math/test_asinf (; 57 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_asinf (; 58 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.asin local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_asinh (; 58 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_asinh (; 59 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i64) local.get $0 @@ -1958,7 +1958,7 @@ i32.const 0 end ) - (func $std/math/test_asinhf (; 59 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_asinhf (; 60 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 f32) (local $4 i32) local.get $0 @@ -2029,7 +2029,7 @@ local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.atan (; 60 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 61 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -2251,7 +2251,7 @@ local.get $1 f64.copysign ) - (func $std/math/test_atan (; 61 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_atan (; 62 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.atan local.get $1 @@ -2267,7 +2267,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atan (; 62 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 63 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) (local $3 i32) @@ -2462,14 +2462,14 @@ local.get $1 f32.copysign ) - (func $std/math/test_atanf (; 63 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_atanf (; 64 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.atan local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_atanh (; 64 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_atanh (; 65 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i64) (local $5 f64) @@ -2537,7 +2537,7 @@ i32.const 0 end ) - (func $std/math/test_atanhf (; 65 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_atanhf (; 66 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 f32) (local $4 i32) local.get $0 @@ -2590,7 +2590,7 @@ local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.atan2 (; 66 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 67 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 i32) (local $3 i32) (local $4 i32) @@ -2800,7 +2800,7 @@ i32.and select ) - (func $std/math/test_atan2 (; 67 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $std/math/test_atan2 (; 68 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.atan2 @@ -2818,7 +2818,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atan2 (; 68 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 69 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 f32) @@ -3012,7 +3012,7 @@ i32.and select ) - (func $std/math/test_atan2f (; 69 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) + (func $std/math/test_atan2f (; 70 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.atan2 @@ -3020,7 +3020,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.cbrt (; 70 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 71 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -3141,7 +3141,7 @@ f64.mul f64.add ) - (func $std/math/test_cbrt (; 71 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_cbrt (; 72 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.cbrt local.get $1 @@ -3157,7 +3157,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.cbrt (; 72 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 73 ;) (param $0 f32) (result f32) (local $1 f64) (local $2 f64) (local $3 i32) @@ -3256,14 +3256,14 @@ f64.div f32.demote_f64 ) - (func $std/math/test_cbrtf (; 73 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_cbrtf (; 74 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.cbrt local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_ceil (; 74 ;) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_ceil (; 75 ;) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.ceil local.get $1 @@ -3279,14 +3279,14 @@ i32.const 0 end ) - (func $std/math/test_ceilf (; 75 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_ceilf (; 76 ;) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.ceil local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/pio2_large_quot (; 76 ;) (param $0 i64) (result i32) + (func $~lib/math/pio2_large_quot (; 77 ;) (param $0 i64) (result i32) (local $1 i64) (local $2 i64) (local $3 i64) @@ -3572,7 +3572,7 @@ i64.sub i32.wrap_i64 ) - (func $~lib/math/NativeMath.cos (; 77 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cos (; 78 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 f64) @@ -3905,7 +3905,7 @@ end local.get $0 ) - (func $std/math/test_cos (; 78 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_cos (; 79 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.cos local.get $1 @@ -3921,7 +3921,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.cos (; 79 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cos (; 80 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -4190,14 +4190,14 @@ end local.get $0 ) - (func $std/math/test_cosf (; 80 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_cosf (; 81 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.cos local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.expm1 (; 81 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 82 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -4468,7 +4468,7 @@ local.get $4 f64.mul ) - (func $~lib/math/NativeMath.exp (; 82 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 83 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 f64) @@ -4618,7 +4618,7 @@ end local.get $0 ) - (func $std/math/test_cosh (; 83 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_cosh (; 84 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) (local $3 f64) (local $4 i32) (local $5 i64) @@ -4696,7 +4696,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.expm1 (; 84 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 85 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) (local $3 i32) @@ -4944,7 +4944,7 @@ local.get $5 f32.mul ) - (func $~lib/math/NativeMathf.exp (; 85 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 86 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -5077,7 +5077,7 @@ end local.get $0 ) - (func $std/math/test_coshf (; 86 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_coshf (; 87 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 i32) block $__inlined_func$~lib/math/NativeMathf.cosh (result f32) local.get $0 @@ -5140,7 +5140,7 @@ local.get $2 call $std/math/check ) - (func $std/math/test_exp (; 87 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_exp (; 88 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.exp local.get $1 @@ -5156,14 +5156,14 @@ i32.const 0 end ) - (func $std/math/test_expf (; 88 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_expf (; 89 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.exp local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_expm1 (; 89 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_expm1 (; 90 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.expm1 local.get $1 @@ -5179,14 +5179,14 @@ i32.const 0 end ) - (func $std/math/test_expm1f (; 90 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_expm1f (; 91 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.expm1 local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.exp2 (; 91 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp2 (; 92 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 i32) @@ -5394,7 +5394,7 @@ end local.get $1 ) - (func $std/math/test_exp2 (; 92 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_exp2 (; 93 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.exp2 local.get $1 @@ -5411,7 +5411,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.exp2 (; 93 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp2 (; 94 ;) (param $0 f32) (result f32) (local $1 f64) (local $2 f32) (local $3 i32) @@ -5507,14 +5507,14 @@ end local.get $2 ) - (func $std/math/test_exp2f (; 94 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_exp2f (; 95 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.exp2 local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_floor (; 95 ;) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_floor (; 96 ;) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.floor local.get $1 @@ -5530,14 +5530,14 @@ i32.const 0 end ) - (func $std/math/test_floorf (; 96 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_floorf (; 97 ;) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.floor local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.hypot (; 97 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 98 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -5707,7 +5707,7 @@ f64.sqrt f64.mul ) - (func $std/math/test_hypot (; 98 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $std/math/test_hypot (; 99 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.hypot @@ -5715,7 +5715,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMathf.hypot (; 99 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 100 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -5820,7 +5820,7 @@ f32.sqrt f32.mul ) - (func $std/math/test_hypotf (; 100 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) + (func $std/math/test_hypotf (; 101 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.hypot @@ -5828,7 +5828,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_log (; 101 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_log (; 102 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log local.get $1 @@ -5844,14 +5844,14 @@ i32.const 0 end ) - (func $std/math/test_logf (; 102 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_logf (; 103 ;) (param $0 f32) (param $1 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.log local.get $1 f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.log10 (; 103 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 104 ;) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) (local $3 f64) @@ -6056,7 +6056,7 @@ local.get $7 f64.add ) - (func $std/math/test_log10 (; 104 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_log10 (; 105 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log10 local.get $1 @@ -6072,7 +6072,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log10 (; 105 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 106 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -6229,14 +6229,14 @@ f32.mul f32.add ) - (func $std/math/test_log10f (; 106 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_log10f (; 107 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.log10 local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_log1p (; 107 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_log1p (; 108 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log1p local.get $1 @@ -6252,14 +6252,14 @@ i32.const 0 end ) - (func $std/math/test_log1pf (; 108 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_log1pf (; 109 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.log1p local.get $1 local.get $2 call $std/math/check ) - (func $~lib/math/NativeMath.log2 (; 109 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 110 ;) (param $0 f64) (result f64) (local $1 i32) (local $2 i64) (local $3 f64) @@ -6456,7 +6456,7 @@ local.get $7 f64.add ) - (func $std/math/test_log2 (; 110 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_log2 (; 111 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.log2 local.get $1 @@ -6472,7 +6472,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log2 (; 111 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 112 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -6621,14 +6621,14 @@ f32.convert_i32_s f32.add ) - (func $std/math/test_log2f (; 112 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_log2f (; 113 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 call $~lib/math/NativeMathf.log2 local.get $1 local.get $2 call $std/math/check ) - (func $std/math/test_max (; 113 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_max (; 114 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 f64.max @@ -6646,7 +6646,7 @@ i32.const 0 end ) - (func $std/math/test_maxf (; 114 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_maxf (; 115 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 f32.max @@ -6654,7 +6654,7 @@ f32.const 0 call $std/math/check ) - (func $std/math/test_min (; 115 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_min (; 116 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 f64.min @@ -6672,7 +6672,7 @@ i32.const 0 end ) - (func $std/math/test_minf (; 116 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_minf (; 117 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 f32.min @@ -6680,7 +6680,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.mod (; 117 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 118 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -6883,7 +6883,7 @@ local.get $0 f64.mul ) - (func $std/math/test_mod (; 118 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_mod (; 119 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.mod @@ -6901,7 +6901,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.mod (; 119 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 120 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7093,7 +7093,7 @@ local.get $0 f32.mul ) - (func $std/math/test_modf (; 120 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_modf (; 121 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.mod @@ -7101,7 +7101,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.pow (; 121 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 122 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -8046,7 +8046,7 @@ f64.const 1e-300 f64.mul ) - (func $std/math/test_pow (; 122 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) + (func $std/math/test_pow (; 123 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.pow @@ -8064,7 +8064,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.pow (; 123 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 124 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -8523,7 +8523,7 @@ end local.get $5 ) - (func $std/math/test_powf (; 124 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) + (func $std/math/test_powf (; 125 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.pow @@ -8531,7 +8531,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/murmurHash3 (; 125 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 126 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -8552,7 +8552,7 @@ i64.shr_u i64.xor ) - (func $~lib/math/splitMix32 (; 126 ;) (param $0 i32) (result i32) + (func $~lib/math/splitMix32 (; 127 ;) (param $0 i32) (result i32) local.get $0 i32.const 1831565813 i32.add @@ -8584,7 +8584,7 @@ i32.shr_u i32.xor ) - (func $~lib/math/NativeMath.seedRandom (; 127 ;) (param $0 i64) + (func $~lib/math/NativeMath.seedRandom (; 128 ;) (param $0 i64) (local $1 i32) i32.const 1 global.set $~lib/math/random_seeded @@ -8629,7 +8629,7 @@ unreachable end ) - (func $std/math/test_round (; 128 ;) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_round (; 129 ;) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.const 0.5 f64.add @@ -8640,7 +8640,7 @@ f64.const 0 call $std/math/check ) - (func $std/math/test_roundf (; 129 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_roundf (; 130 ;) (param $0 f32) (param $1 f32) (result i32) local.get $0 f32.const 0.5 f32.add @@ -8651,7 +8651,7 @@ f32.const 0 call $std/math/check ) - (func $std/math/test_sign (; 130 ;) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_sign (; 131 ;) (param $0 f64) (param $1 f64) (result i32) f64.const 1 local.get $0 f64.copysign @@ -8674,7 +8674,7 @@ i32.const 0 end ) - (func $std/math/test_signf (; 131 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_signf (; 132 ;) (param $0 f32) (param $1 f32) (result i32) f32.const 1 local.get $0 f32.copysign @@ -8688,7 +8688,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.rem (; 132 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.rem (; 133 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -8937,7 +8937,7 @@ end local.get $0 ) - (func $std/math/test_rem (; 133 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_rem (; 134 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.rem @@ -8945,7 +8945,7 @@ f64.const 0 call $std/math/check ) - (func $~lib/math/NativeMathf.rem (; 134 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.rem (; 135 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9188,7 +9188,7 @@ end local.get $0 ) - (func $std/math/test_remf (; 135 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_remf (; 136 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.rem @@ -9196,7 +9196,7 @@ f32.const 0 call $std/math/check ) - (func $~lib/math/NativeMath.sin (; 136 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sin (; 137 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 f64) @@ -9512,7 +9512,7 @@ end local.get $0 ) - (func $std/math/test_sin (; 137 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_sin (; 138 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.sin local.get $1 @@ -9528,7 +9528,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sin (; 138 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sin (; 139 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -9798,14 +9798,14 @@ end local.get $0 ) - (func $std/math/test_sinf (; 139 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_sinf (; 140 ;) (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 (; 140 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.sinh (; 141 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) (local $3 i32) @@ -9882,7 +9882,7 @@ f64.mul f64.mul ) - (func $std/math/test_sinh (; 141 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_sinh (; 142 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.sinh local.get $1 @@ -9898,7 +9898,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.sinh (; 142 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.sinh (; 143 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -9970,14 +9970,14 @@ f32.mul f32.mul ) - (func $std/math/test_sinhf (; 143 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_sinhf (; 144 ;) (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 (; 144 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_sqrt (; 145 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 f64.sqrt local.get $1 @@ -9993,14 +9993,14 @@ i32.const 0 end ) - (func $std/math/test_sqrtf (; 145 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_sqrtf (; 146 ;) (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 (; 146 ;) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) + (func $~lib/math/tan_kern (; 147 ;) (param $0 f64) (param $1 f64) (param $2 i32) (result f64) (local $3 f64) (local $4 f64) (local $5 f64) @@ -10179,7 +10179,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.tan (; 147 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tan (; 148 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 f64) (local $3 i32) @@ -10356,7 +10356,7 @@ i32.sub call $~lib/math/tan_kern ) - (func $std/math/test_tan (; 148 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_tan (; 149 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.tan local.get $1 @@ -10372,7 +10372,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.tan (; 149 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.tan (; 150 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -10626,14 +10626,14 @@ local.get $3 f32.demote_f64 ) - (func $std/math/test_tanf (; 150 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_tanf (; 151 ;) (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 (; 151 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.tanh (; 152 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i32) (local $3 i64) @@ -10712,7 +10712,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_tanh (; 152 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) + (func $std/math/test_tanh (; 153 ;) (param $0 f64) (param $1 f64) (param $2 f64) (result i32) local.get $0 call $~lib/math/NativeMath.tanh local.get $1 @@ -10728,7 +10728,7 @@ i32.const 0 end ) - (func $std/math/test_tanhf (; 153 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) + (func $std/math/test_tanhf (; 154 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result i32) (local $3 f32) (local $4 i32) local.get $0 @@ -10803,7 +10803,7 @@ local.get $2 call $std/math/check ) - (func $std/math/test_trunc (; 154 ;) (param $0 f64) (param $1 f64) (result i32) + (func $std/math/test_trunc (; 155 ;) (param $0 f64) (param $1 f64) (result i32) local.get $0 f64.trunc local.get $1 @@ -10819,14 +10819,14 @@ i32.const 0 end ) - (func $std/math/test_truncf (; 155 ;) (param $0 f32) (param $1 f32) (result i32) + (func $std/math/test_truncf (; 156 ;) (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 (; 156 ;) (param $0 f64) + (func $~lib/math/NativeMath.sincos (; 157 ;) (param $0 f64) (local $1 f64) (local $2 i64) (local $3 f64) @@ -11217,7 +11217,7 @@ local.get $3 global.set $~lib/math/NativeMath.sincos_cos ) - (func $std/math/test_sincos (; 157 ;) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) + (func $std/math/test_sincos (; 158 ;) (param $0 i64) (param $1 i64) (param $2 i64) (param $3 i64) (param $4 i64) (local $5 f64) (local $6 f64) local.get $3 @@ -11243,7 +11243,7 @@ drop end ) - (func $~lib/math/dtoi32 (; 158 ;) (param $0 f64) (result i32) + (func $~lib/math/dtoi32 (; 159 ;) (param $0 f64) (result i32) local.get $0 f64.const 4294967296 local.get $0 @@ -11255,7 +11255,7 @@ i64.trunc_f64_s i32.wrap_i64 ) - (func $~lib/math/NativeMath.imul (; 159 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.imul (; 160 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) local.get $0 local.get $1 @@ -11276,7 +11276,7 @@ i32.mul f64.convert_i32_s ) - (func $~lib/math/NativeMath.clz32 (; 160 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.clz32 (; 161 ;) (param $0 f64) (result f64) local.get $0 local.get $0 f64.sub @@ -11291,7 +11291,7 @@ i32.clz f64.convert_i32_s ) - (func $~lib/math/ipow64 (; 161 ;) (param $0 i64) (param $1 i32) (result i64) + (func $~lib/math/ipow64 (; 162 ;) (param $0 i64) (param $1 i32) (result i64) (local $2 i64) i64.const 1 local.set $2 @@ -11322,7 +11322,7 @@ end local.get $2 ) - (func $~lib/math/ipow32f (; 162 ;) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/ipow32f (; 163 ;) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) local.get $1 @@ -11368,7 +11368,7 @@ end local.get $2 ) - (func $~lib/math/ipow64f (; 163 ;) (param $0 f64) (param $1 i32) (result f64) + (func $~lib/math/ipow64f (; 164 ;) (param $0 f64) (param $1 i32) (result f64) (local $2 f64) (local $3 i32) local.get $1 @@ -11414,7 +11414,7 @@ end local.get $2 ) - (func $start:std/math (; 164 ;) + (func $start:std/math (; 165 ;) (local $0 f64) (local $1 f32) (local $2 i32) @@ -36769,12 +36769,9 @@ global.get $~lib/math/random_seeded i32.eqz if - i32.const 4000 - i32.const 3952 - i32.const 1413 - i32.const 24 - call $~lib/builtins/abort - unreachable + call $~lib/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 local.set $3 @@ -36844,12 +36841,9 @@ global.get $~lib/math/random_seeded i32.eqz if - i32.const 4000 - i32.const 3952 - i32.const 2606 - i32.const 24 - call $~lib/builtins/abort - unreachable + call $~lib/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_32 local.tee $5 @@ -47197,7 +47191,7 @@ unreachable end ) - (func $~start (; 165 ;) + (func $~start (; 166 ;) call $start:std/math ) ) diff --git a/tests/compiler/std/math.untouched.wat b/tests/compiler/std/math.untouched.wat index baa0a69ddd..15c743b551 100644 --- a/tests/compiler/std/math.untouched.wat +++ b/tests/compiler/std/math.untouched.wat @@ -7,10 +7,10 @@ (type $f32_f32_f32_f32_i32_=>_i32 (func (param f32 f32 f32 f32 i32) (result i32))) (type $f64_f64_f64_f64_i32_=>_i32 (func (param f64 f64 f64 f64 i32) (result i32))) (type $f32_f32_=>_f32 (func (param f32 f32) (result f32))) + (type $none_=>_f64 (func (result f64))) (type $none_=>_none (func)) (type $f64_=>_i32 (func (param f64) (result i32))) (type $f32_i32_=>_f32 (func (param f32 i32) (result f32))) - (type $none_=>_f64 (func (result f64))) (type $f64_i32_=>_f64 (func (param f64 i32) (result f64))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $i64_=>_none (func (param i64))) @@ -59,6 +59,7 @@ (import "Math" "min" (func $~lib/bindings/Math/min (param f64 f64) (result f64))) (import "math" "mod" (func $std/math/mod (param f64 f64) (result f64))) (import "Math" "random" (func $~lib/bindings/Math/random (result f64))) + (import "env" "seed" (func $~lib/builtins/seed (result f64))) (import "Math" "sign" (func $~lib/bindings/Math/sign (param f64) (result f64))) (import "Math" "sin" (func $~lib/bindings/Math/sin (param f64) (result f64))) (import "Math" "sinh" (func $~lib/bindings/Math/sinh (param f64) (result f64))) @@ -80,7 +81,6 @@ (data (i32.const 9136) "\00\01\00\00\01\00\00\00\03\00\00\00\00\01\00\00\be\f3\f8y\eca\f6?\190\96[\c6\fe\de\bf=\88\afJ\edq\f5?\a4\fc\d42h\0b\db\bf\b0\10\f0\f09\95\f4?{\b7\1f\n\8bA\d7\bf\85\03\b8\b0\95\c9\f3?{\cfm\1a\e9\9d\d3\bf\a5d\88\0c\19\0d\f3?1\b6\f2\f3\9b\1d\d0\bf\a0\8e\0b{\"^\f2?\f0z;\1b\1d|\c9\bf?4\1aJJ\bb\f1?\9f<\af\93\e3\f9\c2\bf\ba\e5\8a\f0X#\f1?\\\8dx\bf\cb`\b9\bf\a7\00\99A?\95\f0?\ce_G\b6\9do\aa\bf\00\00\00\00\00\00\f0?\00\00\00\00\00\00\00\00\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 9408) "\00\10\00\00\01\00\00\00\03\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 (; 35 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/check (; 36 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.get $1 @@ -357,7 +357,7 @@ end i32.const 1 ) - (func $std/math/eulpf (; 36 ;) (param $0 f32) (result i32) + (func $std/math/eulpf (; 37 ;) (param $0 f32) (result i32) (local $1 i32) (local $2 i32) local.get $0 @@ -383,7 +383,7 @@ i32.const 23 i32.sub ) - (func $~lib/math/NativeMathf.scalbn (; 37 ;) (param $0 f32) (param $1 i32) (result f32) + (func $~lib/math/NativeMathf.scalbn (; 38 ;) (param $0 f32) (param $1 i32) (result f32) (local $2 f32) (local $3 i32) (local $4 i32) @@ -473,7 +473,7 @@ f32.reinterpret_i32 f32.mul ) - (func $std/math/ulperrf (; 38 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) + (func $std/math/ulperrf (; 39 ;) (param $0 f32) (param $1 f32) (param $2 f32) (result f32) (local $3 f32) local.get $0 local.get $0 @@ -552,7 +552,7 @@ local.get $2 f32.add ) - (func $std/math/check (; 39 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/check (; 40 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.get $1 @@ -585,7 +585,7 @@ end i32.const 1 ) - (func $std/math/test_scalbn (; 40 ;) (param $0 f64) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_scalbn (; 41 ;) (param $0 f64) (param $1 i32) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMath.scalbn @@ -594,7 +594,7 @@ local.get $4 call $std/math/check ) - (func $std/math/test_scalbnf (; 41 ;) (param $0 f32) (param $1 i32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_scalbnf (; 42 ;) (param $0 f32) (param $1 i32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) local.get $0 local.get $1 call $~lib/math/NativeMathf.scalbn @@ -603,7 +603,7 @@ local.get $4 call $std/math/check ) - (func $std/math/test_abs (; 42 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_abs (; 43 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -630,7 +630,7 @@ i32.const 0 end ) - (func $std/math/test_absf (; 43 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_absf (; 44 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -641,7 +641,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/R (; 44 ;) (param $0 f64) (result f64) + (func $~lib/math/R (; 45 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 f64) local.get $0 @@ -690,7 +690,7 @@ local.get $2 f64.div ) - (func $~lib/math/NativeMath.acos (; 45 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acos (; 46 ;) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -842,7 +842,7 @@ f64.add f64.mul ) - (func $std/math/test_acos (; 46 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acos (; 47 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.acos local.get $1 @@ -866,7 +866,7 @@ i32.const 0 end ) - (func $~lib/math/Rf (; 47 ;) (param $0 f32) (result f32) + (func $~lib/math/Rf (; 48 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 f32) local.get $0 @@ -891,7 +891,7 @@ local.get $2 f32.div ) - (func $~lib/math/NativeMathf.acos (; 48 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acos (; 49 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -1031,7 +1031,7 @@ f32.add f32.mul ) - (func $std/math/test_acosf (; 49 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_acosf (; 50 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.acos local.get $1 @@ -1039,7 +1039,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.log1p (; 50 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log1p (; 51 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -1281,7 +1281,7 @@ f64.mul f64.add ) - (func $~lib/math/NativeMath.log (; 51 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log (; 52 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 f64) @@ -1599,7 +1599,7 @@ end return ) - (func $~lib/math/NativeMath.acosh (; 52 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.acosh (; 53 ;) (param $0 f64) (result f64) (local $1 i64) local.get $0 i64.reinterpret_f64 @@ -1659,7 +1659,7 @@ f64.const 0.6931471805599453 f64.add ) - (func $std/math/test_acosh (; 53 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_acosh (; 54 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.acosh local.get $1 @@ -1683,7 +1683,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log1p (; 54 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log1p (; 55 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -1892,7 +1892,7 @@ f32.mul f32.add ) - (func $~lib/math/NativeMathf.log (; 55 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log (; 56 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -2057,7 +2057,7 @@ end return ) - (func $~lib/math/NativeMathf.acosh (; 56 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.acosh (; 57 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -2113,7 +2113,7 @@ f32.const 0.6931471824645996 f32.add ) - (func $std/math/test_acoshf (; 57 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_acoshf (; 58 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.acosh local.get $1 @@ -2121,7 +2121,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.asin (; 58 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asin (; 59 ;) (param $0 f64) (result f64) (local $1 i32) (local $2 i32) (local $3 i32) @@ -2280,7 +2280,7 @@ end local.get $0 ) - (func $std/math/test_asin (; 59 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asin (; 60 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.asin local.get $1 @@ -2304,7 +2304,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.asin (; 60 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asin (; 61 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 f32) @@ -2396,7 +2396,7 @@ local.get $1 f32.copysign ) - (func $std/math/test_asinf (; 61 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_asinf (; 62 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.asin local.get $1 @@ -2404,7 +2404,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.asinh (; 62 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.asinh (; 63 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 f64) @@ -2480,7 +2480,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_asinh (; 63 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_asinh (; 64 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.asinh local.get $1 @@ -2504,7 +2504,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.asinh (; 64 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.asinh (; 65 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) local.get $0 @@ -2573,7 +2573,7 @@ local.get $0 f32.copysign ) - (func $std/math/test_asinhf (; 65 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_asinhf (; 66 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.asinh local.get $1 @@ -2581,7 +2581,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.atan (; 66 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atan (; 67 ;) (param $0 f64) (result f64) (local $1 i32) (local $2 f64) (local $3 f64) @@ -2839,7 +2839,7 @@ local.get $2 f64.copysign ) - (func $std/math/test_atan (; 67 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atan (; 68 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.atan local.get $1 @@ -2863,7 +2863,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atan (; 68 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atan (; 69 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -3093,7 +3093,7 @@ local.get $2 f32.copysign ) - (func $std/math/test_atanf (; 69 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_atanf (; 70 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.atan local.get $1 @@ -3101,7 +3101,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.atanh (; 70 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.atanh (; 71 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i64) (local $3 f64) @@ -3160,7 +3160,7 @@ local.get $0 f64.copysign ) - (func $std/math/test_atanh (; 71 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_atanh (; 72 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.atanh local.get $1 @@ -3184,7 +3184,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atanh (; 72 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.atanh (; 73 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) local.get $0 @@ -3234,7 +3234,7 @@ local.get $0 f32.copysign ) - (func $std/math/test_atanhf (; 73 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_atanhf (; 74 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.atanh local.get $1 @@ -3242,7 +3242,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.atan2 (; 74 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.atan2 (; 75 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i32) (local $4 i32) @@ -3542,7 +3542,7 @@ end unreachable ) - (func $std/math/test_atan2 (; 75 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_atan2 (; 76 ;) (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.atan2 @@ -3568,7 +3568,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.atan2 (; 76 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.atan2 (; 77 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3840,7 +3840,7 @@ end unreachable ) - (func $std/math/test_atan2f (; 77 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_atan2f (; 78 ;) (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.atan2 @@ -3849,7 +3849,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.cbrt (; 78 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cbrt (; 79 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -3993,7 +3993,7 @@ local.set $3 local.get $3 ) - (func $std/math/test_cbrt (; 79 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cbrt (; 80 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.cbrt local.get $1 @@ -4017,7 +4017,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.cbrt (; 80 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cbrt (; 81 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -4133,7 +4133,7 @@ local.get $3 f32.demote_f64 ) - (func $std/math/test_cbrtf (; 81 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_cbrtf (; 82 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.cbrt local.get $1 @@ -4141,7 +4141,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_ceil (; 82 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_ceil (; 83 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -4168,7 +4168,7 @@ i32.const 0 end ) - (func $std/math/test_ceilf (; 83 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_ceilf (; 84 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -4179,7 +4179,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/pio2_large_quot (; 84 ;) (param $0 f64) (param $1 i64) (result i32) + (func $~lib/math/pio2_large_quot (; 85 ;) (param $0 f64) (param $1 i64) (result i32) (local $2 i64) (local $3 i64) (local $4 i64) @@ -4577,7 +4577,7 @@ local.get $30 i32.wrap_i64 ) - (func $~lib/math/NativeMath.cos (; 85 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cos (; 86 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -5095,7 +5095,7 @@ local.get $0 end ) - (func $std/math/test_cos (; 86 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cos (; 87 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.cos local.get $1 @@ -5119,7 +5119,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.cos (; 87 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cos (; 88 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f64) @@ -5733,7 +5733,7 @@ local.get $26 end ) - (func $std/math/test_cosf (; 88 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_cosf (; 89 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.cos local.get $1 @@ -5741,7 +5741,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.expm1 (; 89 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.expm1 (; 90 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -6054,7 +6054,7 @@ local.get $14 f64.mul ) - (func $~lib/math/NativeMath.exp (; 90 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp (; 91 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 i32) @@ -6332,7 +6332,7 @@ end return ) - (func $~lib/math/NativeMath.cosh (; 91 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.cosh (; 92 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 f64) @@ -6421,7 +6421,7 @@ local.set $3 local.get $3 ) - (func $std/math/test_cosh (; 92 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_cosh (; 93 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.cosh local.get $1 @@ -6445,7 +6445,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.expm1 (; 93 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.expm1 (; 94 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -6738,7 +6738,7 @@ local.get $13 f32.mul ) - (func $~lib/math/NativeMathf.exp (; 94 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp (; 95 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 f64) (local $3 i32) @@ -6869,7 +6869,7 @@ end return ) - (func $~lib/math/NativeMathf.cosh (; 95 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.cosh (; 96 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 f32) (local $3 f32) @@ -6946,7 +6946,7 @@ local.get $3 f32.mul ) - (func $std/math/test_coshf (; 96 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_coshf (; 97 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.cosh local.get $1 @@ -6954,7 +6954,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_exp (; 97 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_exp (; 98 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.exp local.get $1 @@ -6978,7 +6978,7 @@ i32.const 0 end ) - (func $std/math/test_expf (; 98 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expf (; 99 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.exp local.get $1 @@ -6986,7 +6986,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_expm1 (; 99 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_expm1 (; 100 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.expm1 local.get $1 @@ -7010,7 +7010,7 @@ i32.const 0 end ) - (func $std/math/test_expm1f (; 100 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_expm1f (; 101 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.expm1 local.get $1 @@ -7018,7 +7018,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.exp2 (; 101 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.exp2 (; 102 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 i32) @@ -7285,7 +7285,7 @@ f64.add end ) - (func $std/math/test_exp2 (; 102 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_exp2 (; 103 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.exp2 local.get $1 @@ -7310,7 +7310,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.exp2 (; 103 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.exp2 (; 104 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 f64) (local $3 i32) @@ -7433,7 +7433,7 @@ f32.demote_f64 end ) - (func $std/math/test_exp2f (; 104 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_exp2f (; 105 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.exp2 local.get $1 @@ -7441,7 +7441,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_floor (; 105 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_floor (; 106 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -7468,7 +7468,7 @@ i32.const 0 end ) - (func $std/math/test_floorf (; 106 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_floorf (; 107 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) (local $4 f32) local.get $0 local.set $4 @@ -7479,7 +7479,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.hypot (; 107 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.hypot (; 108 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -7674,7 +7674,7 @@ f64.sqrt f64.mul ) - (func $std/math/test_hypot (; 108 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_hypot (; 109 ;) (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.hypot @@ -7683,7 +7683,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMathf.hypot (; 109 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.hypot (; 110 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7800,7 +7800,7 @@ f32.sqrt f32.mul ) - (func $std/math/test_hypotf (; 110 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_hypotf (; 111 ;) (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.hypot @@ -7809,7 +7809,7 @@ local.get $4 call $std/math/check ) - (func $std/math/test_log (; 111 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log (; 112 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log local.get $1 @@ -7833,7 +7833,7 @@ i32.const 0 end ) - (func $std/math/test_logf (; 112 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_logf (; 113 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log local.get $1 @@ -7841,7 +7841,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.log10 (; 113 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log10 (; 114 ;) (param $0 f64) (result f64) (local $1 i64) (local $2 i32) (local $3 i32) @@ -8101,7 +8101,7 @@ local.get $8 f64.add ) - (func $std/math/test_log10 (; 114 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log10 (; 115 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log10 local.get $1 @@ -8125,7 +8125,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log10 (; 115 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log10 (; 116 ;) (param $0 f32) (result f32) (local $1 i32) (local $2 i32) (local $3 f32) @@ -8325,7 +8325,7 @@ f32.mul f32.add ) - (func $std/math/test_log10f (; 116 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log10f (; 117 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log10 local.get $1 @@ -8333,7 +8333,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_log1p (; 117 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log1p (; 118 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log1p local.get $1 @@ -8357,7 +8357,7 @@ i32.const 0 end ) - (func $std/math/test_log1pf (; 118 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log1pf (; 119 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log1p local.get $1 @@ -8365,7 +8365,7 @@ local.get $3 call $std/math/check ) - (func $~lib/math/NativeMath.log2 (; 119 ;) (param $0 f64) (result f64) + (func $~lib/math/NativeMath.log2 (; 120 ;) (param $0 f64) (result f64) (local $1 f64) (local $2 i64) (local $3 f64) @@ -8708,7 +8708,7 @@ end return ) - (func $std/math/test_log2 (; 120 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_log2 (; 121 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMath.log2 local.get $1 @@ -8732,7 +8732,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.log2 (; 121 ;) (param $0 f32) (result f32) + (func $~lib/math/NativeMathf.log2 (; 122 ;) (param $0 f32) (result f32) (local $1 f32) (local $2 i32) (local $3 i32) @@ -8901,7 +8901,7 @@ end return ) - (func $std/math/test_log2f (; 122 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) + (func $std/math/test_log2f (; 123 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 i32) (result i32) local.get $0 call $~lib/math/NativeMathf.log2 local.get $1 @@ -8909,7 +8909,7 @@ local.get $3 call $std/math/check ) - (func $std/math/test_max (; 123 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_max (; 124 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 f64) (local $6 f64) local.get $0 @@ -8941,7 +8941,7 @@ i32.const 0 end ) - (func $std/math/test_maxf (; 124 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_maxf (; 125 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (local $5 f32) (local $6 f32) local.get $0 @@ -8956,7 +8956,7 @@ local.get $4 call $std/math/check ) - (func $std/math/test_min (; 125 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_min (; 126 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) (local $5 f64) (local $6 f64) local.get $0 @@ -8988,7 +8988,7 @@ i32.const 0 end ) - (func $std/math/test_minf (; 126 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_minf (; 127 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) (local $5 f32) (local $6 f32) local.get $0 @@ -9003,7 +9003,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.mod (; 127 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.mod (; 128 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 i64) (local $3 i64) (local $4 i64) @@ -9257,7 +9257,7 @@ local.get $2 f64.reinterpret_i64 ) - (func $std/math/test_mod (; 128 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_mod (; 129 ;) (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.mod @@ -9283,7 +9283,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.mod (; 129 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.mod (; 130 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9531,7 +9531,7 @@ local.get $2 f32.reinterpret_i32 ) - (func $std/math/test_modf (; 130 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_modf (; 131 ;) (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.mod @@ -9540,7 +9540,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/NativeMath.pow (; 131 ;) (param $0 f64) (param $1 f64) (result f64) + (func $~lib/math/NativeMath.pow (; 132 ;) (param $0 f64) (param $1 f64) (result f64) (local $2 f64) (local $3 f64) (local $4 i32) @@ -10500,7 +10500,7 @@ end return ) - (func $std/math/test_pow (; 132 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 i32) (result i32) + (func $std/math/test_pow (; 133 ;) (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.pow @@ -10526,7 +10526,7 @@ i32.const 0 end ) - (func $~lib/math/NativeMathf.pow (; 133 ;) (param $0 f32) (param $1 f32) (result f32) + (func $~lib/math/NativeMathf.pow (; 134 ;) (param $0 f32) (param $1 f32) (result f32) (local $2 f32) (local $3 f32) (local $4 i32) @@ -11111,7 +11111,7 @@ f32.demote_f64 end ) - (func $std/math/test_powf (; 134 ;) (param $0 f32) (param $1 f32) (param $2 f32) (param $3 f32) (param $4 i32) (result i32) + (func $std/math/test_powf (; 135 ;) (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.pow @@ -11120,7 +11120,7 @@ local.get $4 call $std/math/check ) - (func $~lib/math/murmurHash3 (; 135 ;) (param $0 i64) (result i64) + (func $~lib/math/murmurHash3 (; 136 ;) (param $0 i64) (result i64) local.get $0 local.get $0 i64.const 33 @@ -11149,7 +11149,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 @@ -11184,7 +11184,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 @@ -11236,19 +11236,16 @@ unreachable end ) - (func $~lib/math/NativeMath.random (; 138 ;) (result f64) + (func $~lib/math/NativeMath.random (; 139 ;) (result f64) (local $0 i64) (local $1 i64) (local $2 i64) global.get $~lib/math/random_seeded i32.eqz if - i32.const 13584 - i32.const 13536 - i32.const 1413 - i32.const 24 - call $~lib/builtins/abort - unreachable + call $~lib/builtins/seed + i64.reinterpret_f64 + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_64 local.set $0 @@ -11291,51 +11288,51 @@ f64.const 1 f64.sub ) - (func $~lib/math/NativeMathf.random (; 139 ;) (result f32) - (local $0 i32) + (func $~lib/math/NativeMathf.random (; 140 ;) (result f32) + (local $0 i64) (local $1 i32) (local $2 i32) + (local $3 i32) global.get $~lib/math/random_seeded i32.eqz if - i32.const 13584 - i32.const 13536 - i32.const 2606 - i32.const 24 - call $~lib/builtins/abort - unreachable + call $~lib/builtins/seed + i64.reinterpret_f64 + local.set $0 + local.get $0 + call $~lib/math/NativeMath.seedRandom end global.get $~lib/math/random_state0_32 - local.set $0 - global.get $~lib/math/random_state1_32 local.set $1 - local.get $0 + global.get $~lib/math/random_state1_32 + local.set $2 + local.get $1 i32.const -1640531525 i32.mul i32.const 5 i32.rotl i32.const 5 i32.mul - local.set $2 + local.set $3 + local.get $2 local.get $1 - local.get $0 i32.xor - local.set $1 - local.get $0 + local.set $2 + local.get $1 i32.const 26 i32.rotl - local.get $1 + local.get $2 i32.xor - local.get $1 + local.get $2 i32.const 9 i32.shl i32.xor global.set $~lib/math/random_state0_32 - local.get $1 + local.get $2 i32.const 13 i32.rotl global.set $~lib/math/random_state1_32 - local.get $2 + local.get $3 i32.const 9 i32.shr_u i32.const 127 @@ -11346,7 +11343,7 @@ f32.const 1 f32.sub ) - (func $std/math/test_round (; 140 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) + (func $std/math/test_round (; 141 ;) (param $0 f64) (param $1 f64) (param $2 f64) (param $3 i32) (result i32) (local $4 f64) local.get $0 local.set $4 @@ -11361,7 +11358,7 @@ local.get $3 call $std/math/check ) - (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 @@ -11376,7 +11373,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 @@ -11419,7 +11416,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 @@ -11446,7 +11443,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) @@ -11764,7 +11761,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 @@ -11773,7 +11770,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) @@ -12084,7 +12081,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 @@ -12093,7 +12090,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) @@ -12622,7 +12619,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 @@ -12646,7 +12643,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) @@ -13252,7 +13249,7 @@ local.get $26 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 @@ -13260,7 +13257,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) @@ -13358,7 +13355,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 @@ -13382,7 +13379,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) @@ -13471,7 +13468,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 @@ -13479,7 +13476,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 @@ -13506,7 +13503,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 @@ -13517,7 +13514,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) @@ -13730,7 +13727,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) @@ -14042,7 +14039,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 @@ -14066,7 +14063,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) @@ -14713,7 +14710,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 @@ -14721,7 +14718,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) @@ -14813,7 +14810,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 @@ -14837,7 +14834,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) @@ -14923,7 +14920,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 @@ -14931,7 +14928,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 @@ -14958,7 +14955,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 @@ -14969,7 +14966,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) @@ -15588,7 +15585,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) @@ -15626,7 +15623,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) @@ -15697,7 +15694,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 @@ -15719,7 +15716,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 @@ -15735,7 +15732,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) @@ -15955,7 +15952,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) @@ -16005,7 +16002,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) @@ -16055,7 +16052,7 @@ local.get $3 end ) - (func $start:std/math (; 177 ;) + (func $start:std/math (; 178 ;) (local $0 f64) (local $1 i32) (local $2 i32) @@ -55931,7 +55928,7 @@ unreachable end ) - (func $~start (; 178 ;) + (func $~start (; 179 ;) call $start:std/math ) ) diff --git a/tests/compiler/std/string-encoding.optimized.wat b/tests/compiler/std/string-encoding.optimized.wat index acaca85413..080cdaf136 100644 --- a/tests/compiler/std/string-encoding.optimized.wat +++ b/tests/compiler/std/string-encoding.optimized.wat @@ -1115,7 +1115,15 @@ i32.const 16 i32.add ) - (func $~lib/memory/memory.copy (; 17 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/string/String#get:length (; 17 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + ) + (func $~lib/memory/memory.copy (; 18 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) block $~lib/util/memory/memmove|inlined.0 @@ -1288,24 +1296,25 @@ end end ) - (func $~lib/string/String.UTF16.encode (; 18 ;) (param $0 i32) (result i32) + (func $~lib/string/String.UTF16.encode (; 19 ;) (param $0 i32) (result i32) (local $1 i32) - (local $2 i32) local.get $0 i32.const 16 i32.sub i32.load offset=12 - local.tee $1 i32.const 0 call $~lib/rt/tlsf/__alloc - local.tee $2 + local.tee $1 local.get $0 - local.get $1 + local.get $0 + call $~lib/string/String#get:length + i32.const 1 + i32.shl call $~lib/memory/memory.copy - local.get $2 + local.get $1 call $~lib/rt/pure/__retain ) - (func $std/string-encoding/testUTF16Encode (; 19 ;) + (func $std/string-encoding/testUTF16Encode (; 20 ;) (local $0 i32) (local $1 i32) i32.const 1040 @@ -1468,7 +1477,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/string/String.UTF16.decodeUnsafe (; 20 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.UTF16.decodeUnsafe (; 21 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const -2 @@ -1483,7 +1492,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/string/String.UTF16.decode (; 21 ;) (param $0 i32) (result i32) + (func $~lib/string/String.UTF16.decode (; 22 ;) (param $0 i32) (result i32) local.get $0 local.get $0 i32.const 16 @@ -1491,14 +1500,6 @@ i32.load offset=12 call $~lib/string/String.UTF16.decodeUnsafe ) - (func $~lib/string/String#get:length (; 22 ;) (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) (func $~lib/util/string/compareImpl (; 23 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) @@ -1845,66 +1846,46 @@ end local.get $2 ) - (func $~lib/string/String.UTF8.encode (; 27 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/string/String.UTF8.encodeUnsafe (; 27 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - local.tee $2 - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.add - local.set $5 local.get $0 local.get $1 - call $~lib/string/String.UTF8.byteLength - local.tee $0 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.tee $3 - local.get $0 + i32.const 1 + i32.shl i32.add - local.get $1 - i32.const 0 - i32.ne - i32.sub - local.set $6 - local.get $3 - local.set $0 + local.set $4 + local.get $2 + local.set $1 loop $while-continue|0 local.get $0 - local.get $6 + local.get $4 i32.lt_u if - local.get $2 + local.get $0 i32.load16_u - local.tee $4 + local.tee $2 i32.const 128 i32.lt_u if (result i32) - local.get $0 - local.get $4 + local.get $1 + local.get $2 i32.store8 - local.get $0 + local.get $1 i32.const 1 i32.add else - local.get $4 + local.get $2 i32.const 2048 i32.lt_u if (result i32) - local.get $0 - local.get $4 + local.get $1 + local.get $2 i32.const 6 i32.shr_u i32.const 192 i32.or - local.get $4 + local.get $2 i32.const 63 i32.and i32.const 128 @@ -1913,51 +1894,51 @@ i32.shl i32.or i32.store16 - local.get $0 + local.get $1 i32.const 2 i32.add else - local.get $2 + local.get $0 i32.const 2 i32.add - local.get $5 + local.get $4 i32.lt_u i32.const 0 - local.get $4 + local.get $2 i32.const 64512 i32.and i32.const 55296 i32.eq select if - local.get $2 + local.get $0 i32.load16_u offset=2 - local.tee $7 + local.tee $5 i32.const 64512 i32.and i32.const 56320 i32.eq if - local.get $0 - local.get $4 + local.get $1 + local.get $2 i32.const 1023 i32.and i32.const 10 i32.shl i32.const 65536 i32.add - local.get $7 + local.get $5 i32.const 1023 i32.and i32.or - local.tee $4 + local.tee $2 i32.const 63 i32.and i32.const 128 i32.or i32.const 24 i32.shl - local.get $4 + local.get $2 i32.const 6 i32.shr_u i32.const 63 @@ -1967,7 +1948,7 @@ i32.const 16 i32.shl i32.or - local.get $4 + local.get $2 i32.const 12 i32.shr_u i32.const 63 @@ -1977,31 +1958,31 @@ i32.const 8 i32.shl i32.or - local.get $4 + local.get $2 i32.const 18 i32.shr_u i32.const 240 i32.or i32.or i32.store - local.get $0 + local.get $1 i32.const 4 i32.add - local.set $0 - local.get $2 + local.set $1 + local.get $0 i32.const 4 i32.add - local.set $2 + local.set $0 br $while-continue|0 end end - local.get $0 - local.get $4 + local.get $1 + local.get $2 i32.const 12 i32.shr_u i32.const 224 i32.or - local.get $4 + local.get $2 i32.const 6 i32.shr_u i32.const 63 @@ -2012,47 +1993,51 @@ i32.shl i32.or i32.store16 - local.get $0 - local.get $4 + local.get $1 + local.get $2 i32.const 63 i32.and i32.const 128 i32.or i32.store8 offset=2 - local.get $0 + local.get $1 i32.const 3 i32.add end end - local.set $0 - local.get $2 + local.set $1 + local.get $0 i32.const 2 i32.add - local.set $2 + local.set $0 br $while-continue|0 end end - local.get $2 - local.get $5 - i32.gt_u - if - i32.const 0 - i32.const 1440 - i32.const 719 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $1 + local.get $3 if - local.get $0 + local.get $1 i32.const 0 i32.store8 end - local.get $3 + ) + (func $~lib/string/String.UTF8.encode (; 28 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + local.get $0 + local.get $1 + call $~lib/string/String.UTF8.byteLength + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $2 + local.get $1 + call $~lib/string/String.UTF8.encodeUnsafe + local.get $2 call $~lib/rt/pure/__retain ) - (func $std/string-encoding/testUTF8Encode (; 28 ;) + (func $std/string-encoding/testUTF8Encode (; 29 ;) (local $0 i32) (local $1 i32) i32.const 1040 @@ -2196,7 +2181,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $std/string-encoding/testUTF8EncodeNullTerminated (; 29 ;) + (func $std/string-encoding/testUTF8EncodeNullTerminated (; 30 ;) (local $0 i32) (local $1 i32) i32.const 1040 @@ -2350,7 +2335,7 @@ local.get $1 call $~lib/rt/pure/__release ) - (func $~lib/rt/tlsf/freeBlock (; 30 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 31 ;) (param $0 i32) (param $1 i32) local.get $1 local.get $1 i32.load @@ -2363,7 +2348,7 @@ local.get $1 call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/tlsf/reallocateBlock (; 31 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 32 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2466,7 +2451,7 @@ end local.get $3 ) - (func $~lib/string/String.UTF8.decodeUnsafe (; 32 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String.UTF8.decodeUnsafe (; 33 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2481,7 +2466,7 @@ if i32.const 0 i32.const 1440 - i32.const 735 + i32.const 738 i32.const 6 call $~lib/builtins/abort unreachable @@ -2699,7 +2684,7 @@ i32.add call $~lib/rt/pure/__retain ) - (func $~lib/string/String.UTF8.decode (; 33 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.UTF8.decode (; 34 ;) (param $0 i32) (param $1 i32) (result i32) local.get $0 local.get $0 i32.const 16 @@ -2708,7 +2693,7 @@ local.get $1 call $~lib/string/String.UTF8.decodeUnsafe ) - (func $std/string-encoding/testUTF8DecodeNullTerminated (; 34 ;) + (func $std/string-encoding/testUTF8DecodeNullTerminated (; 35 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -2822,7 +2807,7 @@ local.get $4 call $~lib/rt/pure/__release ) - (func $std/string-encoding/testUTF8DecodeUnsafe (; 35 ;) + (func $std/string-encoding/testUTF8DecodeUnsafe (; 36 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3019,7 +3004,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/string-encoding/testLarge (; 36 ;) (param $0 i32) + (func $std/string-encoding/testLarge (; 37 ;) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -3067,7 +3052,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $start:std/string-encoding (; 37 ;) + (func $start:std/string-encoding (; 38 ;) (local $0 i32) (local $1 i32) i32.const 1036 @@ -3161,10 +3146,10 @@ i32.const 14704 call $std/string-encoding/testLarge ) - (func $~start (; 38 ;) + (func $~start (; 39 ;) call $start:std/string-encoding ) - (func $~lib/rt/pure/decrement (; 39 ;) (param $0 i32) + (func $~lib/rt/pure/decrement (; 40 ;) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 diff --git a/tests/compiler/std/string-encoding.untouched.wat b/tests/compiler/std/string-encoding.untouched.wat index d2c27948bd..d4dceff863 100644 --- a/tests/compiler/std/string-encoding.untouched.wat +++ b/tests/compiler/std/string-encoding.untouched.wat @@ -8,6 +8,7 @@ (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (import "rtrace" "onincrement" (func $~lib/rt/rtrace/onincrement (param i32))) @@ -1506,7 +1507,15 @@ i32.const 16 i32.add ) - (func $~lib/util/memory/memcpy (; 21 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/string/String#get:length (; 21 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + ) + (func $~lib/util/memory/memcpy (; 22 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2530,7 +2539,7 @@ i32.store8 end ) - (func $~lib/memory/memory.copy (; 22 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (func $~lib/memory/memory.copy (; 23 ;) (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -2750,38 +2759,49 @@ end end ) - (func $~lib/string/String.UTF16.encode (; 23 ;) (param $0 i32) (result i32) + (func $~lib/string/String.UTF16.encodeUnsafe (; 24 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $1 + i32.const 1 + i32.shl + local.set $3 + local.get $2 + local.get $0 + local.get $3 + call $~lib/memory/memory.copy + local.get $3 + ) + (func $~lib/string/String.UTF16.encode (; 25 ;) (param $0 i32) (result i32) (local $1 i32) (local $2 i32) - (local $3 i32) local.get $0 call $~lib/rt/pure/__retain local.set $0 local.get $0 call $~lib/string/String.UTF16.byteLength - local.set $1 - local.get $1 i32.const 0 call $~lib/rt/tlsf/__alloc - local.set $2 - local.get $2 + local.set $1 + local.get $0 local.get $0 + call $~lib/string/String#get:length + local.get $1 + call $~lib/string/String.UTF16.encodeUnsafe + drop local.get $1 - call $~lib/memory/memory.copy - local.get $2 call $~lib/rt/pure/__retain - local.set $3 + local.set $2 local.get $0 call $~lib/rt/pure/__release - local.get $3 + local.get $2 ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 24 ;) (param $0 i32) (result i32) + (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (; 26 ;) (param $0 i32) (result i32) local.get $0 i32.const 16 i32.sub i32.load offset=12 ) - (func $std/string-encoding/testUTF16Encode (; 25 ;) + (func $std/string-encoding/testUTF16Encode (; 27 ;) (local $0 i32) (local $1 i32) global.get $std/string-encoding/str @@ -2961,7 +2981,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String.UTF16.decodeUnsafe (; 26 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.UTF16.decodeUnsafe (; 28 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $1 i32.const 1 @@ -2979,7 +2999,7 @@ local.get $2 call $~lib/rt/pure/__retain ) - (func $~lib/string/String.UTF16.decode (; 27 ;) (param $0 i32) (result i32) + (func $~lib/string/String.UTF16.decode (; 29 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 call $~lib/rt/pure/__retain @@ -2993,15 +3013,7 @@ call $~lib/rt/pure/__release local.get $1 ) - (func $~lib/string/String#get:length (; 28 ;) (param $0 i32) (result i32) - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.const 1 - i32.shr_u - ) - (func $~lib/util/string/compareImpl (; 29 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) + (func $~lib/util/string/compareImpl (; 30 ;) (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) @@ -3123,7 +3135,7 @@ call $~lib/rt/pure/__release local.get $7 ) - (func $~lib/string/String.__eq (; 30 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.__eq (; 31 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) local.get $0 @@ -3196,7 +3208,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/string-encoding/testUTF16Decode (; 31 ;) + (func $std/string-encoding/testUTF16Decode (; 32 ;) (local $0 i32) (local $1 i32) global.get $std/string-encoding/str @@ -3221,7 +3233,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/string-encoding/testUTF16DecodeUnsafe (; 32 ;) + (func $std/string-encoding/testUTF16DecodeUnsafe (; 33 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -3370,7 +3382,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/string/String.UTF8.byteLength (; 33 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.UTF8.byteLength (; 34 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -3481,7 +3493,7 @@ call $~lib/rt/pure/__release local.get $5 ) - (func $std/string-encoding/testUTF8Length (; 34 ;) + (func $std/string-encoding/testUTF8Length (; 35 ;) global.get $std/string-encoding/str i32.const 0 call $~lib/string/String.UTF8.byteLength @@ -3511,9 +3523,7 @@ unreachable end ) - (func $~lib/string/String.UTF8.encode (; 35 ;) (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) + (func $~lib/string/String.UTF8.encodeUnsafe (; 36 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) (local $5 i32) (local $6 i32) @@ -3523,247 +3533,239 @@ (local $10 i32) (local $11 i32) (local $12 i32) - (local $13 i32) - (local $14 i32) - local.get $0 - call $~lib/rt/pure/__retain - local.set $0 - local.get $0 - local.set $2 - local.get $0 - local.get $0 - i32.const 16 - i32.sub - i32.load offset=12 - i32.add - local.set $3 local.get $0 local.get $1 - call $~lib/string/String.UTF8.byteLength + i32.const 1 + i32.shl + i32.add local.set $4 - local.get $4 - i32.const 0 - call $~lib/rt/tlsf/__alloc + local.get $2 local.set $5 - local.get $5 - local.get $4 - i32.add - local.get $1 - i32.const 0 - i32.ne - i32.sub - local.set $6 - local.get $5 - local.set $7 loop $while-continue|0 - local.get $7 - local.get $6 + local.get $0 + local.get $4 i32.lt_u - local.set $8 - local.get $8 + local.set $6 + local.get $6 if - local.get $2 + local.get $0 i32.load16_u - local.set $9 - local.get $9 + local.set $7 + local.get $7 i32.const 128 i32.lt_u if + local.get $5 local.get $7 - local.get $9 i32.store8 - local.get $7 + local.get $5 i32.const 1 i32.add - local.set $7 + local.set $5 else - local.get $9 + local.get $7 i32.const 2048 i32.lt_u if - local.get $9 + local.get $7 i32.const 6 i32.shr_u i32.const 192 i32.or - local.set $10 - local.get $9 + local.set $8 + local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $11 - local.get $7 - local.get $11 + local.set $9 + local.get $5 + local.get $9 i32.const 8 i32.shl - local.get $10 + local.get $8 i32.or i32.store16 - local.get $7 + local.get $5 i32.const 2 i32.add - local.set $7 + local.set $5 else - local.get $9 + local.get $7 i32.const 64512 i32.and i32.const 55296 i32.eq if (result i32) - local.get $2 + local.get $0 i32.const 2 i32.add - local.get $3 + local.get $4 i32.lt_u else i32.const 0 end if - local.get $2 + local.get $0 i32.load16_u offset=2 - local.set $11 - local.get $11 + local.set $9 + local.get $9 i32.const 64512 i32.and i32.const 56320 i32.eq if i32.const 65536 - local.get $9 + local.get $7 i32.const 1023 i32.and i32.const 10 i32.shl i32.add - local.get $11 + local.get $9 i32.const 1023 i32.and i32.or - local.set $9 - local.get $9 + local.set $7 + local.get $7 i32.const 18 i32.shr_u i32.const 240 i32.or - local.set $10 - local.get $9 + local.set $8 + local.get $7 i32.const 12 i32.shr_u i32.const 63 i32.and i32.const 128 i32.or - local.set $12 - local.get $9 + local.set $10 + local.get $7 i32.const 6 i32.shr_u i32.const 63 i32.and i32.const 128 i32.or - local.set $13 - local.get $9 + local.set $11 + local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $14 - local.get $7 - local.get $14 + local.set $12 + local.get $5 + local.get $12 i32.const 24 i32.shl - local.get $13 + local.get $11 i32.const 16 i32.shl i32.or - local.get $12 + local.get $10 i32.const 8 i32.shl i32.or - local.get $10 + local.get $8 i32.or i32.store - local.get $7 + local.get $5 i32.const 4 i32.add - local.set $7 - local.get $2 + local.set $5 + local.get $0 i32.const 4 i32.add - local.set $2 + local.set $0 br $while-continue|0 end end - local.get $9 + local.get $7 i32.const 12 i32.shr_u i32.const 224 i32.or - local.set $11 - local.get $9 + local.set $9 + local.get $7 i32.const 6 i32.shr_u i32.const 63 i32.and i32.const 128 i32.or - local.set $14 - local.get $9 + local.set $12 + local.get $7 i32.const 63 i32.and i32.const 128 i32.or - local.set $13 - local.get $7 - local.get $14 + local.set $11 + local.get $5 + local.get $12 i32.const 8 i32.shl - local.get $11 + local.get $9 i32.or i32.store16 - local.get $7 - local.get $13 + local.get $5 + local.get $11 i32.store8 offset=2 - local.get $7 + local.get $5 i32.const 3 i32.add - local.set $7 + local.set $5 end end - local.get $2 + local.get $0 i32.const 2 i32.add - local.set $2 + local.set $0 br $while-continue|0 end end - local.get $2 local.get $3 - i32.le_u - i32.eqz - if - i32.const 0 - i32.const 432 - i32.const 719 - i32.const 6 - call $~lib/builtins/abort - unreachable - end - local.get $1 if - local.get $7 + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 i32.const 0 i32.store8 end local.get $5 + local.get $2 + i32.sub + ) + (func $~lib/string/String.UTF8.encode (; 37 ;) (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i32) + local.get $0 call $~lib/rt/pure/__retain - local.set $8 + local.set $0 + local.get $0 + local.get $1 + call $~lib/string/String.UTF8.byteLength + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $2 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $2 + local.get $1 + call $~lib/string/String.UTF8.encodeUnsafe + drop + local.get $2 + call $~lib/rt/pure/__retain + local.set $3 local.get $0 call $~lib/rt/pure/__release - local.get $8 + local.get $3 ) - (func $std/string-encoding/testUTF8Encode (; 36 ;) + (func $std/string-encoding/testUTF8Encode (; 38 ;) (local $0 i32) (local $1 i32) global.get $std/string-encoding/str @@ -3918,7 +3920,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/string-encoding/testUTF8EncodeNullTerminated (; 37 ;) + (func $std/string-encoding/testUTF8EncodeNullTerminated (; 39 ;) (local $0 i32) (local $1 i32) global.get $std/string-encoding/str @@ -4086,7 +4088,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $~lib/rt/tlsf/checkUsedBlock (; 38 ;) (param $0 i32) (result i32) + (func $~lib/rt/tlsf/checkUsedBlock (; 40 ;) (param $0 i32) (result i32) (local $1 i32) local.get $0 i32.const 16 @@ -4132,7 +4134,7 @@ end local.get $1 ) - (func $~lib/rt/tlsf/freeBlock (; 39 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/tlsf/freeBlock (; 41 ;) (param $0 i32) (param $1 i32) (local $2 i32) local.get $1 i32.load @@ -4148,7 +4150,7 @@ local.get $1 call $~lib/rt/rtrace/onfree ) - (func $~lib/rt/tlsf/reallocateBlock (; 40 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/rt/tlsf/reallocateBlock (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4267,7 +4269,7 @@ end local.get $8 ) - (func $~lib/rt/tlsf/__realloc (; 41 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/rt/tlsf/__realloc (; 43 ;) (param $0 i32) (param $1 i32) (result i32) call $~lib/rt/tlsf/maybeInitialize local.get $0 call $~lib/rt/tlsf/checkUsedBlock @@ -4276,7 +4278,7 @@ i32.const 16 i32.add ) - (func $~lib/string/String.UTF8.decodeUnsafe (; 42 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $~lib/string/String.UTF8.decodeUnsafe (; 44 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -4300,7 +4302,7 @@ if i32.const 0 i32.const 432 - i32.const 735 + i32.const 738 i32.const 6 call $~lib/builtins/abort unreachable @@ -4492,7 +4494,7 @@ call $~lib/rt/tlsf/__realloc call $~lib/rt/pure/__retain ) - (func $~lib/string/String.UTF8.decode (; 43 ;) (param $0 i32) (param $1 i32) (result i32) + (func $~lib/string/String.UTF8.decode (; 45 ;) (param $0 i32) (param $1 i32) (result i32) (local $2 i32) local.get $0 call $~lib/rt/pure/__retain @@ -4507,7 +4509,7 @@ call $~lib/rt/pure/__release local.get $2 ) - (func $std/string-encoding/testUTF8Decode (; 44 ;) + (func $std/string-encoding/testUTF8Decode (; 46 ;) (local $0 i32) (local $1 i32) global.get $std/string-encoding/str @@ -4534,7 +4536,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/string-encoding/testUTF8DecodeNullTerminated (; 45 ;) + (func $std/string-encoding/testUTF8DecodeNullTerminated (; 47 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -4662,7 +4664,7 @@ local.get $6 call $~lib/rt/pure/__release ) - (func $std/string-encoding/testUTF8DecodeUnsafe (; 46 ;) + (func $std/string-encoding/testUTF8DecodeUnsafe (; 48 ;) (local $0 i32) (local $1 i32) (local $2 i32) @@ -4862,7 +4864,7 @@ local.get $0 call $~lib/rt/pure/__release ) - (func $std/string-encoding/testLarge (; 47 ;) (param $0 i32) + (func $std/string-encoding/testLarge (; 49 ;) (param $0 i32) (local $1 i32) (local $2 i32) (local $3 i32) @@ -4917,7 +4919,7 @@ local.get $3 call $~lib/rt/pure/__release ) - (func $start:std/string-encoding (; 48 ;) + (func $start:std/string-encoding (; 50 ;) call $std/string-encoding/testUTF16Length call $std/string-encoding/testUTF16Encode call $std/string-encoding/testUTF16Decode @@ -4933,10 +4935,10 @@ i32.const 13696 call $std/string-encoding/testLarge ) - (func $~start (; 49 ;) + (func $~start (; 51 ;) call $start:std/string-encoding ) - (func $~lib/rt/pure/decrement (; 50 ;) (param $0 i32) + (func $~lib/rt/pure/decrement (; 52 ;) (param $0 i32) (local $1 i32) (local $2 i32) local.get $0 @@ -5013,10 +5015,10 @@ i32.store offset=4 end ) - (func $~lib/rt/pure/__collect (; 51 ;) + (func $~lib/rt/pure/__collect (; 53 ;) return ) - (func $~lib/rt/pure/__visit (; 52 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/pure/__visit (; 54 ;) (param $0 i32) (param $1 i32) local.get $0 global.get $~lib/heap/__heap_base i32.lt_u @@ -5040,7 +5042,7 @@ i32.sub call $~lib/rt/pure/decrement ) - (func $~lib/rt/__visit_members (; 53 ;) (param $0 i32) (param $1 i32) + (func $~lib/rt/__visit_members (; 55 ;) (param $0 i32) (param $1 i32) (local $2 i32) block $switch$1$default block $switch$1$case$4 diff --git a/tests/compiler/std/typedarray.optimized.wat b/tests/compiler/std/typedarray.optimized.wat index 04f9e42a2d..6b10bd0d80 100644 --- a/tests/compiler/std/typedarray.optimized.wat +++ b/tests/compiler/std/typedarray.optimized.wat @@ -27668,2783 +27668,2783 @@ block $folding-inner3 block $folding-inner2 block $folding-inner1 - local.get $1 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - local.get $29 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 3 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 4 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $29 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $29 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $29 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - local.set $0 - i32.const 0 - local.set $1 - local.get $29 - i32.load offset=4 - local.set $28 - local.get $29 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $27 - loop $for-loop|00 - local.get $0 - local.get $27 - i32.lt_s - if - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $28 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.add - local.set $1 + block $folding-inner0 + local.get $1 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 3 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 4 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + local.set $0 + i32.const 0 + local.set $1 + local.get $29 + i32.load offset=4 + local.set $28 + local.get $29 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $27 + loop $for-loop|00 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|00 + local.get $27 + i32.lt_s + if + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $28 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.add + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|00 + end end - end - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - local.get $29 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $29 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $29 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $29 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - i32.const 0 - local.set $0 - i32.const 0 - local.set $1 - local.get $29 - i32.load offset=4 - local.set $28 - local.get $29 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $27 - loop $for-loop|01 - local.get $0 - local.get $27 - i32.lt_s - if - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $28 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.add - local.set $1 + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + i32.const 0 + local.set $0 + i32.const 0 + local.set $1 + local.get $29 + i32.load offset=4 + local.set $28 + local.get $29 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $27 + loop $for-loop|01 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|01 + local.get $27 + i32.lt_s + if + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $28 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.add + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|01 + end end - end - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner1 - local.get $29 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 7 - call $~lib/typedarray/Int32Array#reduce - i32.const 6 - i32.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 8 - call $~lib/typedarray/Int32Array#reduce - i32.const 6 - i32.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 9 - call $~lib/typedarray/Int64Array#reduce - i64.const 6 - i64.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 10 - call $~lib/typedarray/Int64Array#reduce - i64.const 6 - i64.ne - br_if $folding-inner1 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=4 - local.set $29 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $28 - loop $for-loop|02 local.get $1 - local.get $28 - i32.lt_s - if - i32.const 4 - global.set $~argumentsLength - local.get $21 - local.get $29 - local.get $1 - i32.const 2 - i32.shl - i32.add - f32.load - f32.add - local.set $21 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|02 - end - end - local.get $21 - f32.const 6 - f32.ne - br_if $folding-inner1 - local.get $0 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - i32.const 0 - local.set $1 - f64.const 0 - local.set $22 - local.get $0 - i32.load offset=4 - local.set $29 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $28 - loop $for-loop|03 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner0 + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set local.get $1 - local.get $28 - i32.lt_s - if - i32.const 4 - global.set $~argumentsLength - local.get $22 - local.get $29 - local.get $1 - i32.const 3 - i32.shl - i32.add - f64.load - f64.add - local.set $22 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|03 - end - end - local.get $22 - f64.const 6 - f64.ne - br_if $folding-inner1 - local.get $0 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $29 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $29 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $29 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - i32.const 0 - local.set $0 - local.get $29 - i32.load offset=4 - local.set $28 - local.get $29 - i32.load offset=8 - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|04 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 7 + call $~lib/typedarray/Int32Array#reduce + i32.const 6 + i32.ne + br_if $folding-inner0 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 8 + call $~lib/typedarray/Int32Array#reduce + i32.const 6 + i32.ne + br_if $folding-inner0 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 9 + call $~lib/typedarray/Int64Array#reduce + i64.const 6 + i64.ne + br_if $folding-inner0 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 10 + call $~lib/typedarray/Int64Array#reduce + i64.const 6 + i64.ne + br_if $folding-inner0 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=4 + local.set $29 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $28 + loop $for-loop|02 + local.get $1 + local.get $28 + i32.lt_s + if + i32.const 4 + global.set $~argumentsLength + local.get $21 + local.get $29 + local.get $1 + i32.const 2 + i32.shl + i32.add + f32.load + f32.add + local.set $21 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|02 + end + end + local.get $21 + f32.const 6 + f32.ne + br_if $folding-inner0 + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + i32.const 0 + local.set $1 + f64.const 0 + local.set $22 + local.get $0 + i32.load offset=4 + local.set $29 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $28 + loop $for-loop|03 + local.get $1 + local.get $28 + i32.lt_s + if + i32.const 4 + global.set $~argumentsLength + local.get $22 + local.get $29 + local.get $1 + i32.const 3 + i32.shl + i32.add + f64.load + f64.add + local.set $22 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|03 + end + end + local.get $22 + f64.const 6 + f64.ne + br_if $folding-inner0 + local.get $0 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + i32.const 0 + local.set $0 + local.get $29 + i32.load offset=4 + local.set $28 + local.get $29 + i32.load offset=8 + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|04 + local.get $1 + i32.const 0 + i32.ge_s + if + i32.const 4 + global.set $~argumentsLength + local.get $0 + local.get $1 + local.get $28 + i32.add + i32.load8_s + i32.add + local.set $0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|04 + end + end + local.get $0 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 14 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 15 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + local.set $0 + local.get $29 + i32.load offset=4 + local.set $28 + local.get $29 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|05 + local.get $1 + i32.const 0 + i32.ge_s + if + i32.const 4 + global.set $~argumentsLength + local.get $0 + local.get $28 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.add + local.set $0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|05 + end + end + local.get $0 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $29 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $29 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $29 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + i32.const 0 + local.set $0 + local.get $29 + i32.load offset=4 + local.set $28 + local.get $29 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.const 1 + i32.sub + local.set $1 + loop $for-loop|06 + local.get $1 + i32.const 0 + i32.ge_s + if + i32.const 4 + global.set $~argumentsLength + local.get $0 + local.get $28 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.add + local.set $0 + local.get $1 + i32.const 1 + i32.sub + local.set $1 + br $for-loop|06 + end + end + local.get $0 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner1 + local.get $29 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 18 + call $~lib/typedarray/Int32Array#reduceRight + i32.const 6 + i32.ne + br_if $folding-inner1 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 19 + call $~lib/typedarray/Int32Array#reduceRight + i32.const 6 + i32.ne + br_if $folding-inner1 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 20 + call $~lib/typedarray/Int64Array#reduceRight + i64.const 6 + i64.ne + br_if $folding-inner1 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 21 + call $~lib/typedarray/Int64Array#reduceRight + i64.const 6 + i64.ne + br_if $folding-inner1 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + f32.const 0 + local.set $21 + local.get $1 + i32.load offset=4 + local.set $29 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|07 + local.get $0 + i32.const 0 + i32.ge_s + if + i32.const 4 + global.set $~argumentsLength + local.get $21 + local.get $29 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + f32.add + local.set $21 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|07 + end + end + local.get $21 + f32.const 6 + f32.ne + br_if $folding-inner1 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + f64.const 0 + local.set $22 + local.get $1 + i32.load offset=4 + local.set $29 + local.get $1 + i32.load offset=8 + i32.const 3 + i32.shr_u + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|08 + local.get $0 + i32.const 0 + i32.ge_s + if + i32.const 4 + global.set $~argumentsLength + local.get $22 + local.get $29 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + f64.add + local.set $22 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|08 + end + end + local.get $22 + f64.const 6 + f64.ne + br_if $folding-inner1 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + local.set $28 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 3 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $28 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $27 + loop $for-loop|09 + local.get $1 + local.get $28 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $27 + i32.add + local.get $1 + local.get $25 + i32.add + i32.load8_s + local.tee $26 + local.get $26 + i32.mul + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|09 + end + end + local.get $29 + local.get $27 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $27 + i32.store offset=4 + local.get $29 + local.get $28 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 9 + i32.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + local.set $28 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 4 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $28 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $27 + loop $for-loop|010 + local.get $1 + local.get $28 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $27 + i32.add + local.get $1 + local.get $25 + i32.add + i32.load8_u + local.tee $26 + local.get $26 + i32.mul + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|010 + end + end + local.get $29 + local.get $27 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $27 + i32.store offset=4 + local.get $29 + local.get $28 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 4 + i32.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 9 + i32.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + local.set $28 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 5 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $28 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $27 + loop $for-loop|011 + local.get $1 + local.get $28 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $27 + i32.add + local.get $1 + local.get $25 + i32.add + i32.load8_u + local.tee $26 + local.get $26 + i32.mul + i32.store8 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|011 + end + end + local.get $29 + local.get $27 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $27 + i32.store offset=4 + local.get $29 + local.get $28 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 4 + i32.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 9 + i32.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $27 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 6 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $27 + i32.const 1 + i32.shl + local.tee $26 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $28 + loop $for-loop|012 + local.get $1 + local.get $27 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $25 + local.get $1 + i32.const 1 + i32.shl + local.tee $24 + i32.add + i32.load16_s + local.tee $23 + local.get $23 + i32.mul + local.set $23 + local.get $24 + local.get $28 + i32.add + local.get $23 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|012 + end + end + local.get $29 + local.get $28 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $28 + i32.store offset=4 + local.get $29 + local.get $26 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 4 + i32.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 9 + i32.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + local.set $27 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 7 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $27 + i32.const 1 + i32.shl + local.tee $26 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $28 + loop $for-loop|013 + local.get $1 + local.get $27 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $25 + local.get $1 + i32.const 1 + i32.shl + local.tee $24 + i32.add + i32.load16_u + local.tee $23 + local.get $23 + i32.mul + local.set $23 + local.get $24 + local.get $28 + i32.add + local.get $23 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|013 + end + end + local.get $29 + local.get $28 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $28 + i32.store offset=4 + local.get $29 + local.get $26 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 4 + i32.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 9 + i32.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $27 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 8 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $27 + i32.const 2 + i32.shl + local.tee $26 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $28 + loop $for-loop|014 + local.get $1 + local.get $27 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $25 + local.get $1 + i32.const 2 + i32.shl + local.tee $24 + i32.add + i32.load + local.tee $23 + local.get $23 + i32.mul + local.set $23 + local.get $24 + local.get $28 + i32.add + local.get $23 + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|014 + end + end + local.get $29 + local.get $28 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $28 + i32.store offset=4 + local.get $29 + local.get $26 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 4 + i32.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 9 + i32.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $27 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 9 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $27 + i32.const 2 + i32.shl + local.tee $26 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $28 + loop $for-loop|015 + local.get $1 + local.get $27 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $25 + local.get $1 + i32.const 2 + i32.shl + local.tee $24 + i32.add + i32.load + local.tee $23 + local.get $23 + i32.mul + local.set $23 + local.get $24 + local.get $28 + i32.add + local.get $23 + i32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|015 + end + end + local.get $29 + local.get $28 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $28 + i32.store offset=4 + local.get $29 + local.get $26 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 4 + i32.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 9 + i32.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $27 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 10 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $27 + i32.const 3 + i32.shl + local.tee $26 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $28 + loop $for-loop|016 + local.get $1 + local.get $27 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $25 + local.get $1 + i32.const 3 + i32.shl + local.tee $24 + i32.add + i64.load + local.tee $20 + local.get $20 + i64.mul + local.set $20 + local.get $24 + local.get $28 + i32.add + local.get $20 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|016 + end + end + local.get $29 + local.get $28 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $28 + i32.store offset=4 + local.get $29 + local.get $26 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 4 + i64.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 9 + i64.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $27 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 11 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $27 + i32.const 3 + i32.shl + local.tee $26 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $28 + loop $for-loop|017 + local.get $1 + local.get $27 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $25 + local.get $1 + i32.const 3 + i32.shl + local.tee $24 + i32.add + i64.load + local.tee $20 + local.get $20 + i64.mul + local.set $20 + local.get $24 + local.get $28 + i32.add + local.get $20 + i64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|017 + end + end + local.get $29 + local.get $28 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $28 + i32.store offset=4 + local.get $29 + local.get $26 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 4 + i64.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 9 + i64.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 2 + i32.shr_u + local.set $27 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 12 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $27 + i32.const 2 + i32.shl + local.tee $26 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $28 + loop $for-loop|018 + local.get $1 + local.get $27 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $25 + local.get $1 + i32.const 2 + i32.shl + local.tee $24 + i32.add + f32.load + local.tee $21 + local.get $21 + f32.mul + local.set $21 + local.get $24 + local.get $28 + i32.add + local.get $21 + f32.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|018 + end + end + local.get $29 + local.get $28 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $28 + i32.store offset=4 + local.get $29 + local.get $26 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 4 + f32.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 9 + f32.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=8 + i32.const 3 + i32.shr_u + local.set $27 + local.get $0 + i32.load offset=4 + local.set $25 + i32.const 12 + i32.const 13 + call $~lib/rt/tlsf/__alloc + local.set $29 + local.get $27 + i32.const 3 + i32.shl + local.tee $26 + i32.const 0 + call $~lib/rt/tlsf/__alloc + local.set $28 + loop $for-loop|019 + local.get $1 + local.get $27 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $25 + local.get $1 + i32.const 3 + i32.shl + local.tee $24 + i32.add + f64.load + local.tee $22 + local.get $22 + f64.mul + local.set $22 + local.get $24 + local.get $28 + i32.add + local.get $22 + f64.store + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|019 + end + end + local.get $29 + local.get $28 + call $~lib/rt/pure/__retain + i32.store + local.get $29 + local.get $28 + i32.store offset=4 + local.get $29 + local.get $26 + i32.store offset=8 + local.get $29 + call $~lib/rt/pure/__retain + local.tee $1 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + br_if $folding-inner2 + local.get $1 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.ne + br_if $folding-inner3 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 9 + f64.ne + br_if $folding-inner4 + local.get $0 + call $~lib/rt/pure/__release + local.get $1 + call $~lib/rt/pure/__release + call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> + call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 46 + call $~lib/typedarray/Int8Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 47 + call $~lib/typedarray/Int8Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 48 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 49 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 50 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 51 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 52 + call $~lib/typedarray/Int16Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 53 + call $~lib/typedarray/Int16Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 54 + call $~lib/typedarray/Uint16Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 55 + call $~lib/typedarray/Uint16Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 56 + call $~lib/typedarray/Int32Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 57 + call $~lib/typedarray/Int32Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 58 + call $~lib/typedarray/Int32Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 59 + call $~lib/typedarray/Int32Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 60 + call $~lib/typedarray/Int64Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 61 + call $~lib/typedarray/Int64Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 62 + call $~lib/typedarray/Int64Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 63 + call $~lib/typedarray/Int64Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 64 + call $~lib/typedarray/Float32Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 65 + call $~lib/typedarray/Float32Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 66 + call $~lib/typedarray/Float64Array#some + i32.eqz + br_if $folding-inner5 + local.get $1 + i32.const 67 + call $~lib/typedarray/Float64Array#some + br_if $folding-inner6 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 68 + call $~lib/typedarray/Int8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 69 + call $~lib/typedarray/Int8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 70 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 71 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 72 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 73 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 74 + call $~lib/typedarray/Int16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 75 + call $~lib/typedarray/Int16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 76 + call $~lib/typedarray/Uint16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 77 + call $~lib/typedarray/Uint16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 78 + call $~lib/typedarray/Int32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 79 + call $~lib/typedarray/Int32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 80 + call $~lib/typedarray/Int32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 81 + call $~lib/typedarray/Int32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 82 + call $~lib/typedarray/Int64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 83 + call $~lib/typedarray/Int64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + local.get $1 + i32.const 84 + call $~lib/typedarray/Int64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 85 + call $~lib/typedarray/Int64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 86 + call $~lib/typedarray/Float32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 87 + call $~lib/typedarray/Float32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + local.get $1 + i32.const 88 + call $~lib/typedarray/Float64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner7 + local.get $1 + i32.const 89 + call $~lib/typedarray/Float64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner8 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + local.get $1 + i32.const 90 + call $~lib/typedarray/Int8Array#every + i32.eqz + br_if $folding-inner9 + local.get $1 + i32.const 91 + call $~lib/typedarray/Int8Array#every + br_if $folding-inner10 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + local.get $1 + i32.const 92 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner9 + local.get $1 + i32.const 93 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner10 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + local.get $1 + i32.const 94 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner9 + local.get $1 + i32.const 95 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner10 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 96 + call $~lib/typedarray/Int16Array#every + i32.eqz + br_if $folding-inner9 + local.get $1 + i32.const 97 + call $~lib/typedarray/Int16Array#every + br_if $folding-inner10 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + local.get $1 + i32.const 98 + call $~lib/typedarray/Uint16Array#every + i32.eqz + br_if $folding-inner9 + local.get $1 + i32.const 99 + call $~lib/typedarray/Uint16Array#every + br_if $folding-inner10 local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 i32.const 0 - i32.ge_s - if - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $1 - local.get $28 - i32.add - i32.load8_s - i32.add - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|04 - end - end - local.get $0 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $29 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 14 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 15 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $29 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $29 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $29 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - local.set $0 - local.get $29 - i32.load offset=4 - local.set $28 - local.get $29 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|05 + i32.const 2 + call $~lib/typedarray/Int32Array#__set local.get $1 - i32.const 0 - i32.ge_s - if - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $28 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.add - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|05 - end - end - local.get $0 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $29 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $29 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $29 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $29 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - i32.const 0 - local.set $0 - local.get $29 - i32.load offset=4 - local.set $28 - local.get $29 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.const 1 - i32.sub - local.set $1 - loop $for-loop|06 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + local.get $1 + i32.const 100 + call $~lib/typedarray/Int32Array#every + i32.eqz + br_if $folding-inner9 local.get $1 + i32.const 101 + call $~lib/typedarray/Int32Array#every + br_if $folding-inner10 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 i32.const 0 - i32.ge_s - if - i32.const 4 - global.set $~argumentsLength - local.get $0 - local.get $28 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.add - local.set $0 - local.get $1 - i32.const 1 - i32.sub - local.set $1 - br $for-loop|06 - end - end - local.get $0 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $29 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 18 - call $~lib/typedarray/Int32Array#reduceRight - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 19 - call $~lib/typedarray/Int32Array#reduceRight - i32.const 6 - i32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 20 - call $~lib/typedarray/Int64Array#reduceRight - i64.const 6 - i64.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 21 - call $~lib/typedarray/Int64Array#reduceRight - i64.const 6 - i64.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - f32.const 0 - local.set $21 - local.get $1 - i32.load offset=4 - local.set $29 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|07 - local.get $0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + local.get $1 + i32.const 102 + call $~lib/typedarray/Int32Array#every + i32.eqz + br_if $folding-inner9 + local.get $1 + i32.const 103 + call $~lib/typedarray/Int32Array#every + br_if $folding-inner10 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 i32.const 0 - i32.ge_s - if - i32.const 4 - global.set $~argumentsLength - local.get $21 - local.get $29 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - f32.add - local.set $21 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|07 - end - end - local.get $21 - f32.const 6 - f32.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - f64.const 0 - local.set $22 - local.get $1 - i32.load offset=4 - local.set $29 - local.get $1 - i32.load offset=8 - i32.const 3 - i32.shr_u - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|08 - local.get $0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + local.get $1 + i32.const 104 + call $~lib/typedarray/Int64Array#every + i32.eqz + br_if $folding-inner9 + local.get $1 + i32.const 105 + call $~lib/typedarray/Int64Array#every + br_if $folding-inner10 + local.get $1 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 i32.const 0 - i32.ge_s - if - i32.const 4 - global.set $~argumentsLength - local.get $22 - local.get $29 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - f64.add - local.set $22 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|08 - end - end - local.get $22 - f64.const 6 - f64.ne - br_if $folding-inner2 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - local.set $28 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 3 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $28 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $27 - loop $for-loop|09 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set local.get $1 - local.get $28 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $27 - i32.add - local.get $1 - local.get $25 - i32.add - i32.load8_s - local.tee $26 - local.get $26 - i32.mul - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|09 - end - end - local.get $29 - local.get $27 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $27 - i32.store offset=4 - local.get $29 - local.get $28 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 9 - i32.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - local.set $28 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 4 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $28 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $27 - loop $for-loop|010 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set local.get $1 - local.get $28 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $27 - i32.add - local.get $1 - local.get $25 - i32.add - i32.load8_u - local.tee $26 - local.get $26 - i32.mul - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|010 - end - end - local.get $29 - local.get $27 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $27 - i32.store offset=4 - local.get $29 - local.get $28 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 4 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 9 - i32.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - local.set $28 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 5 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $28 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $27 - loop $for-loop|011 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set local.get $1 - local.get $28 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $27 - i32.add - local.get $1 - local.get $25 - i32.add - i32.load8_u - local.tee $26 - local.get $26 - i32.mul - i32.store8 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|011 - end - end - local.get $29 - local.get $27 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $27 - i32.store offset=4 - local.get $29 - local.get $28 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 4 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 9 - i32.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $27 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 6 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $27 - i32.const 1 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|012 + i32.const 106 + call $~lib/typedarray/Int64Array#every + i32.eqz + br_if $folding-inner9 local.get $1 - local.get $27 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $1 - i32.const 1 - i32.shl - local.tee $24 - i32.add - i32.load16_s - local.tee $23 - local.get $23 - i32.mul - local.set $23 - local.get $24 - local.get $28 - i32.add - local.get $23 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|012 - end - end - local.get $29 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $28 - i32.store offset=4 - local.get $29 - local.get $26 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 4 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 9 - i32.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - local.set $27 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 7 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $27 - i32.const 1 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|013 + i32.const 107 + call $~lib/typedarray/Int64Array#every + br_if $folding-inner10 local.get $1 - local.get $27 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $1 - i32.const 1 - i32.shl - local.tee $24 - i32.add - i32.load16_u - local.tee $23 - local.get $23 - i32.mul - local.set $23 - local.get $24 - local.get $28 - i32.add - local.get $23 - i32.store16 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|013 - end - end - local.get $29 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $28 - i32.store offset=4 - local.get $29 - local.get $26 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 4 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 9 - i32.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $27 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 8 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $27 - i32.const 2 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|014 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set local.get $1 - local.get $27 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $1 - i32.const 2 - i32.shl - local.tee $24 - i32.add - i32.load - local.tee $23 - local.get $23 - i32.mul - local.set $23 - local.get $24 - local.get $28 - i32.add - local.get $23 - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|014 - end - end - local.get $29 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $28 - i32.store offset=4 - local.get $29 - local.get $26 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 4 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 9 - i32.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $27 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 9 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $27 - i32.const 2 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|015 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 108 + call $~lib/typedarray/Float32Array#every + i32.eqz + br_if $folding-inner9 local.get $1 - local.get $27 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $1 - i32.const 2 - i32.shl - local.tee $24 - i32.add - i32.load - local.tee $23 - local.get $23 - i32.mul - local.set $23 - local.get $24 - local.get $28 - i32.add - local.get $23 - i32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|015 - end - end - local.get $29 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $28 - i32.store offset=4 - local.get $29 - local.get $26 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 4 - i32.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 9 - i32.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $27 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 10 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $27 - i32.const 3 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|016 + i32.const 109 + call $~lib/typedarray/Float32Array#every + br_if $folding-inner10 local.get $1 - local.get $27 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $1 - i32.const 3 - i32.shl - local.tee $24 - i32.add - i64.load - local.tee $20 - local.get $20 - i64.mul - local.set $20 - local.get $24 - local.get $28 - i32.add - local.get $20 - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|016 - end - end - local.get $29 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $28 - i32.store offset=4 - local.get $29 - local.get $26 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 4 - i64.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 9 - i64.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $27 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 11 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $27 - i32.const 3 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|017 + call $~lib/rt/pure/__release + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set local.get $1 - local.get $27 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $1 - i32.const 3 - i32.shl - local.tee $24 - i32.add - i64.load - local.tee $20 - local.get $20 - i64.mul - local.set $20 - local.get $24 - local.get $28 - i32.add - local.get $20 - i64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|017 - end - end - local.get $29 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $28 - i32.store offset=4 - local.get $29 - local.get $26 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 4 - i64.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 9 - i64.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 2 - i32.shr_u - local.set $27 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 12 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $27 - i32.const 2 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|018 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set local.get $1 - local.get $27 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $1 - i32.const 2 - i32.shl - local.tee $24 - i32.add - f32.load - local.tee $21 - local.get $21 - f32.mul - local.set $21 - local.get $24 - local.get $28 - i32.add - local.get $21 - f32.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|018 - end - end - local.get $29 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $28 - i32.store offset=4 - local.get $29 - local.get $26 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 4 - f32.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 9 - f32.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=8 - i32.const 3 - i32.shr_u - local.set $27 - local.get $0 - i32.load offset=4 - local.set $25 - i32.const 12 - i32.const 13 - call $~lib/rt/tlsf/__alloc - local.set $29 - local.get $27 - i32.const 3 - i32.shl - local.tee $26 - i32.const 0 - call $~lib/rt/tlsf/__alloc - local.set $28 - loop $for-loop|019 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set local.get $1 - local.get $27 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $25 - local.get $1 - i32.const 3 - i32.shl - local.tee $24 - i32.add - f64.load - local.tee $22 - local.get $22 - f64.mul - local.set $22 - local.get $24 - local.get $28 - i32.add - local.get $22 - f64.store - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|019 - end - end - local.get $29 - local.get $28 - call $~lib/rt/pure/__retain - i32.store - local.get $29 - local.get $28 - i32.store offset=4 - local.get $29 - local.get $26 - i32.store offset=8 - local.get $29 - call $~lib/rt/pure/__retain - local.tee $1 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne - br_if $folding-inner3 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.ne - br_if $folding-inner4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 9 - f64.ne - br_if $folding-inner5 - local.get $0 - call $~lib/rt/pure/__release - local.get $1 - call $~lib/rt/pure/__release - call $std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32> - call $std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64> - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 46 - call $~lib/typedarray/Int8Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 47 - call $~lib/typedarray/Int8Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 48 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 49 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 50 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 51 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 52 - call $~lib/typedarray/Int16Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 53 - call $~lib/typedarray/Int16Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 54 - call $~lib/typedarray/Uint16Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 55 - call $~lib/typedarray/Uint16Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 56 - call $~lib/typedarray/Int32Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 57 - call $~lib/typedarray/Int32Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 58 - call $~lib/typedarray/Int32Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 59 - call $~lib/typedarray/Int32Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 60 - call $~lib/typedarray/Int64Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 61 - call $~lib/typedarray/Int64Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 62 - call $~lib/typedarray/Int64Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 63 - call $~lib/typedarray/Int64Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 64 - call $~lib/typedarray/Float32Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 65 - call $~lib/typedarray/Float32Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 66 - call $~lib/typedarray/Float64Array#some - i32.eqz - br_if $folding-inner6 - local.get $1 - i32.const 67 - call $~lib/typedarray/Float64Array#some - br_if $folding-inner7 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 68 - call $~lib/typedarray/Int8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 69 - call $~lib/typedarray/Int8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 70 - call $~lib/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 71 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 72 - call $~lib/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 73 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 74 - call $~lib/typedarray/Int16Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 75 - call $~lib/typedarray/Int16Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 76 - call $~lib/typedarray/Uint16Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 77 - call $~lib/typedarray/Uint16Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 78 - call $~lib/typedarray/Int32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 79 - call $~lib/typedarray/Int32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 80 - call $~lib/typedarray/Int32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 81 - call $~lib/typedarray/Int32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 82 - call $~lib/typedarray/Int64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 83 - call $~lib/typedarray/Int64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 84 - call $~lib/typedarray/Int64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 85 - call $~lib/typedarray/Int64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 86 - call $~lib/typedarray/Float32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 87 - call $~lib/typedarray/Float32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 88 - call $~lib/typedarray/Float64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - local.get $1 - i32.const 89 - call $~lib/typedarray/Float64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - local.get $1 - i32.const 90 - call $~lib/typedarray/Int8Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 91 - call $~lib/typedarray/Int8Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - local.get $1 - i32.const 92 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 93 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - local.get $1 - i32.const 94 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 95 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - local.get $1 - i32.const 96 - call $~lib/typedarray/Int16Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 97 - call $~lib/typedarray/Int16Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - local.get $1 - i32.const 98 - call $~lib/typedarray/Uint16Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 99 - call $~lib/typedarray/Uint16Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - local.get $1 - i32.const 100 - call $~lib/typedarray/Int32Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 101 - call $~lib/typedarray/Int32Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - local.get $1 - i32.const 102 - call $~lib/typedarray/Int32Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 103 - call $~lib/typedarray/Int32Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - local.get $1 - i32.const 104 - call $~lib/typedarray/Int64Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 105 - call $~lib/typedarray/Int64Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - local.get $1 - i32.const 106 - call $~lib/typedarray/Int64Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 107 - call $~lib/typedarray/Int64Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - local.get $1 - i32.const 108 - call $~lib/typedarray/Float32Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 109 - call $~lib/typedarray/Float32Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - local.get $1 - i32.const 110 - call $~lib/typedarray/Float64Array#every - i32.eqz - br_if $folding-inner10 - local.get $1 - i32.const 111 - call $~lib/typedarray/Float64Array#every - br_if $folding-inner11 - local.get $1 - call $~lib/rt/pure/__release - i32.const 0 - global.set $std/typedarray/forEachCallCount - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - global.set $std/typedarray/forEachSelf - local.get $0 - i32.const 0 - i32.const 2704 - i32.const 0 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 1 - i32.const 2704 - i32.const 1 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - local.get $0 - i32.const 2 - i32.const 2704 - i32.const 2 - call $~lib/array/Array#__get - i32.const 24 - i32.shl - i32.const 24 - i32.shr_s - call $~lib/typedarray/Int8Array#__set - i32.const 0 - local.set $1 - local.get $0 - i32.load offset=4 - local.set $29 - local.get $0 - i32.load offset=8 - local.set $28 - loop $for-loop|020 + i32.const 110 + call $~lib/typedarray/Float64Array#every + i32.eqz + br_if $folding-inner9 local.get $1 - local.get $28 - i32.lt_s - if - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $29 - i32.add - i32.load8_s - local.get $1 - local.get $0 - call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 + i32.const 111 + call $~lib/typedarray/Float64Array#every + br_if $folding-inner10 + local.get $1 + call $~lib/rt/pure/__release + i32.const 0 + global.set $std/typedarray/forEachCallCount + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + global.set $std/typedarray/forEachSelf + local.get $0 + i32.const 0 + i32.const 2704 + i32.const 0 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 1 + i32.const 2704 + i32.const 1 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + local.get $0 + i32.const 2 + i32.const 2704 + i32.const 2 + call $~lib/array/Array#__get + i32.const 24 + i32.shl + i32.const 24 + i32.shr_s + call $~lib/typedarray/Int8Array#__set + i32.const 0 + local.set $1 + local.get $0 + i32.load offset=4 + local.set $29 + local.get $0 + i32.load offset=8 + local.set $28 + loop $for-loop|020 local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|020 + local.get $28 + i32.lt_s + if + i32.const 3 + global.set $~argumentsLength + local.get $1 + local.get $29 + i32.add + i32.load8_s + local.get $1 + local.get $0 + call $std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|020 + end end - end - block $folding-inner0 global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $0 call $~lib/rt/pure/__release i32.const 0 @@ -30483,7 +30483,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $1 call $~lib/rt/pure/__release i32.const 0 @@ -30522,7 +30522,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $1 call $~lib/rt/pure/__release i32.const 0 @@ -30597,7 +30597,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $0 call $~lib/rt/pure/__release i32.const 0 @@ -30666,7 +30666,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $0 call $~lib/rt/pure/__release i32.const 0 @@ -30699,7 +30699,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $1 call $~lib/rt/pure/__release i32.const 0 @@ -30732,7 +30732,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $1 call $~lib/rt/pure/__release i32.const 0 @@ -30768,7 +30768,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $1 call $~lib/rt/pure/__release i32.const 0 @@ -30804,7 +30804,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $1 call $~lib/rt/pure/__release i32.const 0 @@ -30870,7 +30870,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $0 call $~lib/rt/pure/__release i32.const 0 @@ -30936,7 +30936,7 @@ global.get $std/typedarray/forEachCallCount i32.const 3 i32.ne - br_if $folding-inner0 + br_if $folding-inner11 local.get $0 call $~lib/rt/pure/__release call $std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8> @@ -31968,84 +31968,84 @@ end i32.const 0 i32.const 1312 - i32.const 495 + i32.const 323 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 323 + i32.const 344 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 344 + i32.const 365 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 365 + i32.const 366 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 366 + i32.const 367 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 367 + i32.const 415 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 415 + i32.const 417 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 417 + i32.const 438 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 438 + i32.const 440 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 440 + i32.const 461 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 461 + i32.const 463 i32.const 2 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1312 - i32.const 463 + i32.const 495 i32.const 2 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/wasi/abort.js b/tests/compiler/wasi/abort.js new file mode 100644 index 0000000000..739723b416 --- /dev/null +++ b/tests/compiler/wasi/abort.js @@ -0,0 +1,31 @@ +var memory; +var failed; + +exports.preInstantiate = function(imports, exports) { + imports["wasi_snapshot_preview1"] = { + fd_write: function(fd, iov, iov_len, nptr) { + if (fd != 2) failed = "unexpected fd: " + fd; + const messagePtr = new Uint32Array(memory.buffer)[ iov >>> 2 ]; + const messageLen = new Uint32Array(memory.buffer)[(iov >>> 2) + 1]; + const message = Array.from(new Uint8Array(memory.buffer, messagePtr, messageLen)).map(c => String.fromCharCode(c)).join(""); + if (message != "abort: the message in wasi/abort.ts(4:2)\n") failed = "unexpected message: " + message; + }, + proc_exit: function(code) { + if (code != 255) failed = "unexpected exit code: " + code; + } + }; + if (failed) throw Error(failed); +}; + +exports.postInstantiate = function(instance) { + const exports = instance.exports; + memory = exports.memory; + var thrown = false; + try { + exports.test(); + } catch (e) { + thrown = true; + } + if (!thrown) failed = "unexpected missing throw"; + if (failed) throw Error(failed); +} diff --git a/tests/compiler/wasi/abort.json b/tests/compiler/wasi/abort.json new file mode 100644 index 0000000000..453cb07770 --- /dev/null +++ b/tests/compiler/wasi/abort.json @@ -0,0 +1,5 @@ +{ + "asc_flags": [ + "--runtime none" + ] +} diff --git a/tests/compiler/wasi/abort.optimized.wat b/tests/compiler/wasi/abort.optimized.wat new file mode 100644 index 0000000000..c93dcefe34 --- /dev/null +++ b/tests/compiler/wasi/abort.optimized.wat @@ -0,0 +1,359 @@ +(module + (type $none_=>_none (func)) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (memory $0 1) + (data (i32.const 1024) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e") + (data (i32.const 1072) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00w\00a\00s\00i\00/\00a\00b\00o\00r\00t\00.\00t\00s") + (export "_start" (func $~start)) + (export "memory" (memory $0)) + (export "test" (func $wasi/abort/test)) + (func $~lib/string/String#get:length (; 2 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + ) + (func $~lib/string/String.UTF8.encodeUnsafe (; 3 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $2 + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_u + if + local.get $0 + i32.load16_u + local.tee $3 + i32.const 128 + i32.lt_u + if (result i32) + local.get $1 + local.get $3 + i32.store8 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $1 + local.get $3 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.get $3 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $1 + i32.const 2 + i32.add + else + local.get $0 + i32.const 2 + i32.add + local.get $4 + i32.lt_u + i32.const 0 + local.get $3 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + select + if + local.get $0 + i32.load16_u offset=2 + local.tee $5 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $1 + local.get $3 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.const 65536 + i32.add + local.get $5 + i32.const 1023 + i32.and + i32.or + local.tee $3 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 24 + i32.shl + local.get $3 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 16 + i32.shl + i32.or + local.get $3 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + local.get $3 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + i32.or + i32.store + local.get $1 + i32.const 4 + i32.add + local.set $1 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $1 + local.get $3 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.get $3 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $1 + local.get $3 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + local.get $1 + i32.const 3 + i32.add + end + end + local.set $1 + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $1 + local.get $2 + i32.sub + ) + (func $~lib/util/number/decimalCount32 (; 4 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + local.get $0 + i32.const 100 + i32.lt_u + select + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + local.get $0 + i32.const 10000000 + i32.lt_u + select + local.get $0 + i32.const 100000 + i32.lt_u + select + ) + (func $~lib/wasi/index/abort (; 5 ;) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 2 + local.set $1 + i32.const 4 + local.set $0 + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + i64.const 9071471065260641 + i64.store + i32.const 1040 + i32.const 1040 + call $~lib/string/String#get:length + i32.const 19 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 19 + i32.add + local.tee $3 + i32.const 544106784 + i32.store + local.get $3 + i32.const 4 + i32.add + local.tee $3 + i32.const 1088 + i32.const 1088 + call $~lib/string/String#get:length + local.get $3 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.tee $3 + i32.const 40 + i32.store8 + i32.const 4 + call $~lib/util/number/decimalCount32 + local.tee $4 + local.get $3 + i32.const 1 + i32.add + i32.add + local.set $3 + loop $do-continue|0 + local.get $0 + i32.const 10 + i32.div_u + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + local.get $0 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.tee $0 + br_if $do-continue|0 + end + local.get $3 + local.get $4 + i32.add + local.tee $0 + i32.const 58 + i32.store8 + i32.const 2 + call $~lib/util/number/decimalCount32 + local.tee $2 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $3 + loop $do-continue|1 + local.get $1 + i32.const 10 + i32.div_u + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + local.get $1 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.tee $1 + br_if $do-continue|1 + end + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 2601 + i32.store16 + i32.const 4 + local.get $1 + i32.const -10 + i32.add + i32.store + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $wasi/abort/test (; 6 ;) + call $~lib/wasi/index/abort + unreachable + ) + (func $~start (; 7 ;) + nop + ) +) diff --git a/tests/compiler/wasi/abort.ts b/tests/compiler/wasi/abort.ts new file mode 100644 index 0000000000..731925477b --- /dev/null +++ b/tests/compiler/wasi/abort.ts @@ -0,0 +1,5 @@ +import "wasi"; + +export function test(): void { + assert(false, "the message"); +} diff --git a/tests/compiler/wasi/abort.untouched.wat b/tests/compiler/wasi/abort.untouched.wat new file mode 100644 index 0000000000..2ef0c79d27 --- /dev/null +++ b/tests/compiler/wasi/abort.untouched.wat @@ -0,0 +1,482 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (memory $0 1) + (data (i32.const 16) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e\00") + (data (i32.const 64) "\1a\00\00\00\01\00\00\00\01\00\00\00\1a\00\00\00w\00a\00s\00i\00/\00a\00b\00o\00r\00t\00.\00t\00s\00") + (table $0 1 funcref) + (export "_start" (func $~start)) + (export "memory" (memory $0)) + (export "test" (func $wasi/abort/test)) + (func $~lib/rt/stub/__retain (; 2 ;) (param $0 i32) (result i32) + local.get $0 + ) + (func $~lib/string/String#get:length (; 3 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + ) + (func $~lib/string/String.UTF8.encodeUnsafe (; 4 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $2 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_u + local.set $6 + local.get $6 + if + local.get $0 + i32.load16_u + local.set $7 + local.get $7 + i32.const 128 + i32.lt_u + if + local.get $5 + local.get $7 + i32.store8 + local.get $5 + i32.const 1 + i32.add + local.set $5 + else + local.get $7 + i32.const 2048 + i32.lt_u + if + local.get $7 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.set $8 + local.get $7 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $9 + local.get $5 + local.get $9 + i32.const 8 + i32.shl + local.get $8 + i32.or + i32.store16 + local.get $5 + i32.const 2 + i32.add + local.set $5 + else + local.get $7 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + if (result i32) + local.get $0 + i32.const 2 + i32.add + local.get $4 + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + i32.load16_u offset=2 + local.set $9 + local.get $9 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + i32.const 65536 + local.get $7 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + local.get $9 + i32.const 1023 + i32.and + i32.or + local.set $7 + local.get $7 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.set $8 + local.get $7 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $10 + local.get $7 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $11 + local.get $7 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $5 + local.get $12 + i32.const 24 + i32.shl + local.get $11 + i32.const 16 + i32.shl + i32.or + local.get $10 + i32.const 8 + i32.shl + i32.or + local.get $8 + i32.or + i32.store + local.get $5 + i32.const 4 + i32.add + local.set $5 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $7 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.set $9 + local.get $7 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $7 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $11 + local.get $5 + local.get $12 + i32.const 8 + i32.shl + local.get $9 + i32.or + i32.store16 + local.get $5 + local.get $11 + i32.store8 offset=2 + local.get $5 + i32.const 3 + i32.add + local.set $5 + end + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $3 + if + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + i32.const 0 + i32.store8 + end + local.get $5 + local.get $2 + i32.sub + ) + (func $~lib/util/number/decimalCount32 (; 5 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/rt/stub/__release (; 6 ;) (param $0 i32) + nop + ) + (func $~lib/wasi/index/abort (; 7 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/stub/__retain + local.set $0 + local.get $1 + call $~lib/rt/stub/__retain + local.set $1 + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + local.set $7 + local.get $7 + br_if $do-continue|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + local.set $8 + local.get $8 + br_if $do-continue|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + i32.store offset=4 + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + ) + (func $wasi/abort/test (; 8 ;) + i32.const 0 + i32.eqz + if + i32.const 32 + i32.const 80 + i32.const 4 + i32.const 2 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~start (; 9 ;) + nop + ) +) diff --git a/tests/compiler/wasi/seed.js b/tests/compiler/wasi/seed.js new file mode 100644 index 0000000000..167da2f42e --- /dev/null +++ b/tests/compiler/wasi/seed.js @@ -0,0 +1,25 @@ +var memory; + +exports.preInstantiate = function(imports, exports) { + imports["wasi_snapshot_preview1"] = { + fd_write: function(fd, iov, iov_len, nptr) { + if (fd != 2) failed = "unexpected fd: " + fd; + const messagePtr = new Uint32Array(memory.buffer)[ iov >>> 2 ]; + const messageLen = new Uint32Array(memory.buffer)[(iov >>> 2) + 1]; + const message = Array.from(new Uint8Array(memory.buffer, messagePtr, messageLen)).map(c => String.fromCharCode(c)).join(""); + (fd == 1 ? process.stdout : process.stderr).write(message); + }, + proc_exit: function(code) { + console.log("exit: " + code); + }, + random_get: function(buf, len) { + new Uint8Array(memory.buffer, buf, len).set(require("crypto").randomBytes(len)); + } + }; +}; + +exports.postInstantiate = function(instance) { + const exports = instance.exports; + memory = exports.memory; + console.log("Math.random = " + exports.test()); +} diff --git a/tests/compiler/wasi/seed.json b/tests/compiler/wasi/seed.json new file mode 100644 index 0000000000..453cb07770 --- /dev/null +++ b/tests/compiler/wasi/seed.json @@ -0,0 +1,5 @@ +{ + "asc_flags": [ + "--runtime none" + ] +} diff --git a/tests/compiler/wasi/seed.optimized.wat b/tests/compiler/wasi/seed.optimized.wat new file mode 100644 index 0000000000..07dc208657 --- /dev/null +++ b/tests/compiler/wasi/seed.optimized.wat @@ -0,0 +1,499 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $none_=>_f64 (func (result f64))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (memory $0 1) + (data (i32.const 1024) "\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 "_start" (func $~start)) + (export "memory" (memory $0)) + (export "test" (func $wasi/seed/test)) + (func $~lib/math/murmurHash3 (; 3 ;) (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 (; 4 ;) (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/string/String.UTF8.encodeUnsafe (; 5 ;) (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 1040 + local.set $2 + local.get $0 + i32.const 1 + i32.shl + i32.const 1040 + i32.add + local.set $3 + i32.const 23 + local.set $0 + loop $while-continue|0 + local.get $2 + local.get $3 + i32.lt_u + if + local.get $2 + i32.load16_u + local.tee $1 + i32.const 128 + i32.lt_u + if (result i32) + local.get $0 + local.get $1 + i32.store8 + local.get $0 + i32.const 1 + i32.add + else + local.get $1 + i32.const 2048 + i32.lt_u + if (result i32) + local.get $0 + local.get $1 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.get $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $0 + i32.const 2 + i32.add + else + local.get $2 + i32.const 2 + i32.add + local.get $3 + i32.lt_u + i32.const 0 + local.get $1 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + select + if + local.get $2 + i32.load16_u offset=2 + local.tee $4 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + local.get $0 + local.get $1 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.const 65536 + i32.add + local.get $4 + i32.const 1023 + i32.and + i32.or + local.tee $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 24 + i32.shl + local.get $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 16 + i32.shl + i32.or + local.get $1 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + local.get $1 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + i32.or + i32.store + local.get $0 + i32.const 4 + i32.add + local.set $0 + local.get $2 + i32.const 4 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + local.get $1 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.get $1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.const 8 + i32.shl + i32.or + i32.store16 + local.get $0 + local.get $1 + i32.const 63 + i32.and + i32.const 128 + i32.or + i32.store8 offset=2 + local.get $0 + i32.const 3 + i32.add + end + end + local.set $0 + local.get $2 + i32.const 2 + i32.add + local.set $2 + br $while-continue|0 + end + end + local.get $0 + i32.const 23 + i32.sub + ) + (func $~lib/util/number/decimalCount32 (; 6 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + local.get $0 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + local.get $0 + i32.const 100 + i32.lt_u + select + local.get $0 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + local.get $0 + i32.const 10000000 + i32.lt_u + select + local.get $0 + i32.const 100000 + i32.lt_u + select + ) + (func $~lib/wasi/index/abort (; 7 ;) + (local $0 i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 4 + local.set $1 + i32.const 1406 + local.set $0 + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + i64.const 9071471065260641 + i64.store + i32.const 19 + i32.const 544106784 + i32.store + i32.const 1036 + i32.load + i32.const 1 + i32.shr_u + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 23 + i32.add + local.tee $2 + i32.const 40 + i32.store8 + i32.const 1406 + call $~lib/util/number/decimalCount32 + local.tee $4 + local.get $2 + i32.const 1 + i32.add + i32.add + local.set $3 + loop $do-continue|0 + local.get $0 + i32.const 10 + i32.div_u + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + local.get $0 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.tee $0 + br_if $do-continue|0 + end + local.get $3 + local.get $4 + i32.add + local.tee $0 + i32.const 58 + i32.store8 + i32.const 4 + call $~lib/util/number/decimalCount32 + local.tee $2 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $3 + loop $do-continue|1 + local.get $1 + i32.const 10 + i32.div_u + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + local.get $1 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.tee $1 + br_if $do-continue|1 + end + local.get $2 + local.get $3 + i32.add + local.tee $1 + i32.const 2601 + i32.store16 + i32.const 4 + local.get $1 + i32.const -10 + i32.add + i32.store + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $~lib/math/NativeMath.random (; 8 ;) (result f64) + (local $0 i64) + (local $1 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + i32.const 0 + i64.load + local.set $0 + loop $do-continue|0 + i32.const 0 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/random_get + drop + i32.const 0 + i64.load + local.tee $1 + i64.eqz + br_if $do-continue|0 + end + i32.const 0 + local.get $0 + i64.store + i32.const 1 + global.set $~lib/math/random_seeded + local.get $1 + f64.reinterpret_i64 + i64.reinterpret_f64 + local.tee $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 + call $~lib/wasi/index/abort + unreachable + end + end + global.get $~lib/math/random_state0_64 + local.set $1 + global.get $~lib/math/random_state1_64 + local.tee $0 + global.set $~lib/math/random_state0_64 + local.get $0 + local.get $1 + local.get $1 + i64.const 23 + i64.shl + i64.xor + local.tee $1 + local.get $1 + i64.const 17 + i64.shr_u + i64.xor + i64.xor + 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 $wasi/seed/test (; 9 ;) (result f64) + call $~lib/math/NativeMath.random + ) + (func $~start (; 10 ;) + nop + ) +) diff --git a/tests/compiler/wasi/seed.ts b/tests/compiler/wasi/seed.ts new file mode 100644 index 0000000000..a315eddef3 --- /dev/null +++ b/tests/compiler/wasi/seed.ts @@ -0,0 +1,5 @@ +import "wasi"; + +export function test(): f64 { + return Math.random(); +} diff --git a/tests/compiler/wasi/seed.untouched.wat b/tests/compiler/wasi/seed.untouched.wat new file mode 100644 index 0000000000..6152d6aecb --- /dev/null +++ b/tests/compiler/wasi/seed.untouched.wat @@ -0,0 +1,679 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_f64 (func (result f64))) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (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_=>_i32 (func (param i32 i32) (result i32))) + (type $i64_=>_i64 (func (param i64) (result i64))) + (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param 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 "_start" (func $~start)) + (export "memory" (memory $0)) + (export "test" (func $wasi/seed/test)) + (func $~lib/wasi/index/seed (; 3 ;) (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i32) + i32.const 0 + i64.load + local.set $0 + loop $do-continue|0 + i32.const 0 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/random_get + drop + i32.const 0 + i64.load + local.set $1 + local.get $1 + i64.const 0 + i64.ne + i32.eqz + local.set $2 + local.get $2 + br_if $do-continue|0 + end + i32.const 0 + local.get $0 + i64.store + local.get $1 + f64.reinterpret_i64 + ) + (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/rt/stub/__retain (; 6 ;) (param $0 i32) (result i32) + local.get $0 + ) + (func $~lib/string/String#get:length (; 7 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 16 + i32.sub + i32.load offset=12 + i32.const 1 + i32.shr_u + ) + (func $~lib/string/String.UTF8.encodeUnsafe (; 8 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + (local $12 i32) + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.set $4 + local.get $2 + local.set $5 + loop $while-continue|0 + local.get $0 + local.get $4 + i32.lt_u + local.set $6 + local.get $6 + if + local.get $0 + i32.load16_u + local.set $7 + local.get $7 + i32.const 128 + i32.lt_u + if + local.get $5 + local.get $7 + i32.store8 + local.get $5 + i32.const 1 + i32.add + local.set $5 + else + local.get $7 + i32.const 2048 + i32.lt_u + if + local.get $7 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.set $8 + local.get $7 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $9 + local.get $5 + local.get $9 + i32.const 8 + i32.shl + local.get $8 + i32.or + i32.store16 + local.get $5 + i32.const 2 + i32.add + local.set $5 + else + local.get $7 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + if (result i32) + local.get $0 + i32.const 2 + i32.add + local.get $4 + i32.lt_u + else + i32.const 0 + end + if + local.get $0 + i32.load16_u offset=2 + local.set $9 + local.get $9 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + if + i32.const 65536 + local.get $7 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + local.get $9 + i32.const 1023 + i32.and + i32.or + local.set $7 + local.get $7 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.set $8 + local.get $7 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $10 + local.get $7 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $11 + local.get $7 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $5 + local.get $12 + i32.const 24 + i32.shl + local.get $11 + i32.const 16 + i32.shl + i32.or + local.get $10 + i32.const 8 + i32.shl + i32.or + local.get $8 + i32.or + i32.store + local.get $5 + i32.const 4 + i32.add + local.set $5 + local.get $0 + i32.const 4 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $7 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.set $9 + local.get $7 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $12 + local.get $7 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $11 + local.get $5 + local.get $12 + i32.const 8 + i32.shl + local.get $9 + i32.or + i32.store16 + local.get $5 + local.get $11 + i32.store8 offset=2 + local.get $5 + i32.const 3 + i32.add + local.set $5 + end + end + local.get $0 + i32.const 2 + i32.add + local.set $0 + br $while-continue|0 + end + end + local.get $3 + if + local.get $5 + local.tee $6 + i32.const 1 + i32.add + local.set $5 + local.get $6 + i32.const 0 + i32.store8 + end + local.get $5 + local.get $2 + i32.sub + ) + (func $~lib/util/number/decimalCount32 (; 9 ;) (param $0 i32) (result i32) + local.get $0 + i32.const 100000 + i32.lt_u + if + local.get $0 + i32.const 100 + i32.lt_u + if + i32.const 1 + local.get $0 + i32.const 10 + i32.ge_u + i32.add + return + else + i32.const 3 + local.get $0 + i32.const 10000 + i32.ge_u + i32.add + local.get $0 + i32.const 1000 + i32.ge_u + i32.add + return + end + unreachable + else + local.get $0 + i32.const 10000000 + i32.lt_u + if + i32.const 6 + local.get $0 + i32.const 1000000 + i32.ge_u + i32.add + return + else + i32.const 8 + local.get $0 + i32.const 1000000000 + i32.ge_u + i32.add + local.get $0 + i32.const 100000000 + i32.ge_u + i32.add + return + end + unreachable + end + unreachable + ) + (func $~lib/rt/stub/__release (; 10 ;) (param $0 i32) + nop + ) + (func $~lib/wasi/index/abort (; 11 ;) (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + local.get $0 + call $~lib/rt/stub/__retain + local.set $0 + local.get $1 + call $~lib/rt/stub/__retain + local.set $1 + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + local.set $4 + local.get $4 + i64.const 9071471065260641 + i64.store + local.get $4 + i32.const 7 + i32.add + local.set $4 + local.get $0 + i32.const 0 + i32.ne + if + local.get $4 + local.get $0 + local.get $0 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + i32.const 544106784 + i32.store + local.get $4 + i32.const 4 + i32.add + local.set $4 + local.get $1 + i32.const 0 + i32.ne + if + local.get $4 + local.get $1 + local.get $1 + call $~lib/string/String#get:length + local.get $4 + i32.const 0 + call $~lib/string/String.UTF8.encodeUnsafe + i32.add + local.set $4 + end + local.get $4 + local.tee $5 + i32.const 1 + i32.add + local.set $4 + local.get $5 + i32.const 40 + i32.store8 + local.get $2 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|0 + local.get $2 + i32.const 10 + i32.div_u + local.set $5 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $2 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $5 + local.set $2 + local.get $2 + local.set $7 + local.get $7 + br_if $do-continue|0 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + local.tee $7 + i32.const 1 + i32.add + local.set $4 + local.get $7 + i32.const 58 + i32.store8 + local.get $3 + call $~lib/util/number/decimalCount32 + local.set $6 + local.get $4 + local.get $6 + i32.add + local.set $4 + loop $do-continue|1 + local.get $3 + i32.const 10 + i32.div_u + local.set $7 + local.get $4 + i32.const 1 + i32.sub + local.tee $4 + i32.const 48 + local.get $3 + i32.const 10 + i32.rem_u + i32.add + i32.store8 + local.get $7 + local.set $3 + local.get $3 + local.set $8 + local.get $8 + br_if $do-continue|1 + end + local.get $4 + local.get $6 + i32.add + local.set $4 + local.get $4 + i32.const 2601 + i32.store16 + local.get $4 + i32.const 2 + i32.add + local.set $4 + i32.const 0 + local.get $4 + i32.const 12 + i32.sub + i32.store offset=4 + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + local.get $0 + call $~lib/rt/stub/__release + local.get $1 + call $~lib/rt/stub/__release + ) + (func $~lib/math/NativeMath.seedRandom (; 12 ;) (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 1406 + i32.const 4 + call $~lib/wasi/index/abort + unreachable + end + ) + (func $~lib/math/NativeMath.random (; 13 ;) (result f64) + (local $0 i64) + (local $1 i64) + (local $2 i64) + global.get $~lib/math/random_seeded + i32.eqz + if + call $~lib/wasi/index/seed + i64.reinterpret_f64 + 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 $wasi/seed/test (; 14 ;) (result f64) + call $~lib/math/NativeMath.random + ) + (func $~start (; 15 ;) + nop + ) +) diff --git a/tests/compiler/wasi-snapshot-preview1.json b/tests/compiler/wasi/snapshot_preview1.json similarity index 100% rename from tests/compiler/wasi-snapshot-preview1.json rename to tests/compiler/wasi/snapshot_preview1.json diff --git a/tests/compiler/wasi-snapshot-preview1.optimized.wat b/tests/compiler/wasi/snapshot_preview1.optimized.wat similarity index 57% rename from tests/compiler/wasi-snapshot-preview1.optimized.wat rename to tests/compiler/wasi/snapshot_preview1.optimized.wat index c41eb9e526..e1ab832a7d 100644 --- a/tests/compiler/wasi-snapshot-preview1.optimized.wat +++ b/tests/compiler/wasi/snapshot_preview1.optimized.wat @@ -1,11 +1,11 @@ (module (type $none_=>_none (func)) (memory $0 0) - (global $wasi-snapshot-preview1/sig (mut i32) (i32.const 1)) + (global $wasi/snapshot_preview1/sig (mut i32) (i32.const 1)) (export "memory" (memory $0)) (start $~start) (func $~start (; 0 ;) i32.const 9 - global.set $wasi-snapshot-preview1/sig + global.set $wasi/snapshot_preview1/sig ) ) diff --git a/tests/compiler/wasi-snapshot-preview1.ts b/tests/compiler/wasi/snapshot_preview1.ts similarity index 100% rename from tests/compiler/wasi-snapshot-preview1.ts rename to tests/compiler/wasi/snapshot_preview1.ts diff --git a/tests/compiler/wasi-snapshot-preview1.untouched.wat b/tests/compiler/wasi/snapshot_preview1.untouched.wat similarity index 68% rename from tests/compiler/wasi-snapshot-preview1.untouched.wat rename to tests/compiler/wasi/snapshot_preview1.untouched.wat index 48a75b27eb..a9494f74b6 100644 --- a/tests/compiler/wasi-snapshot-preview1.untouched.wat +++ b/tests/compiler/wasi/snapshot_preview1.untouched.wat @@ -6,14 +6,14 @@ (global $~lib/shared/target/Target.WASM64 i32 (i32.const 1)) (global $~lib/shared/target/Target.JS i32 (i32.const 2)) (global $~lib/ASC_TARGET i32 (i32.const 0)) - (global $wasi-snapshot-preview1/sig (mut i32) (i32.const 1)) + (global $wasi/snapshot_preview1/sig (mut i32) (i32.const 1)) (export "memory" (memory $0)) (start $~start) - (func $start:wasi-snapshot-preview1 (; 0 ;) + (func $start:wasi/snapshot_preview1 (; 0 ;) i32.const 9 - global.set $wasi-snapshot-preview1/sig + global.set $wasi/snapshot_preview1/sig ) (func $~start (; 1 ;) - call $start:wasi-snapshot-preview1 + call $start:wasi/snapshot_preview1 ) ) diff --git a/tests/compiler/wasi/trace.js b/tests/compiler/wasi/trace.js new file mode 100644 index 0000000000..c4c6cc303c --- /dev/null +++ b/tests/compiler/wasi/trace.js @@ -0,0 +1,21 @@ +var memory; + +exports.preInstantiate = function(imports, exports) { + imports["wasi_snapshot_preview1"] = { + fd_write: function(fd, iov, iov_len, nptr) { + if (fd != 1) failed = "unexpected fd: " + fd; + const messagePtr = new Uint32Array(memory.buffer)[ iov >>> 2 ]; + const messageLen = new Uint32Array(memory.buffer)[(iov >>> 2) + 1]; + const message = Array.from(new Uint8Array(memory.buffer, messagePtr, messageLen)).map(c => String.fromCharCode(c)).join(""); + process.stdout.write(message); + }, + proc_exit: function(code) { + console.log("exit: " + code); + } + }; +}; + +exports.postInstantiate = function(instance) { + const exports = instance.exports; + memory = exports.memory; +} diff --git a/tests/compiler/wasi/trace.json b/tests/compiler/wasi/trace.json new file mode 100644 index 0000000000..453cb07770 --- /dev/null +++ b/tests/compiler/wasi/trace.json @@ -0,0 +1,5 @@ +{ + "asc_flags": [ + "--runtime none" + ] +} diff --git a/tests/compiler/wasi/trace.optimized.wat b/tests/compiler/wasi/trace.optimized.wat new file mode 100644 index 0000000000..d5130021d4 --- /dev/null +++ b/tests/compiler/wasi/trace.optimized.wat @@ -0,0 +1,1962 @@ +(module + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) + (type $none_=>_none (func)) + (type $i32_=>_none (func (param i32))) + (type $i32_i32_=>_none (func (param i32 i32))) + (type $i32_f64_f64_f64_f64_f64_=>_none (func (param i32 f64 f64 f64 f64 f64))) + (type $none_=>_i32 (func (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (type $i32_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (memory $0 1) + (data (i32.const 1024) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e") + (data (i32.const 1072) "\b8\02\00\00\01\00\00\00\03\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 (; 9 ;) (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + loop $do-continue|0 + local.get $1 + i32.const 10 + i32.rem_u + local.set $3 + local.get $1 + i32.const 10 + i32.div_u + local.set $1 + local.get $0 + local.get $2 + i32.const 1 + i32.sub + local.tee $2 + i32.const 1 + i32.shl + i32.add + local.get $3 + i32.const 48 + i32.add + i32.store16 + local.get $1 + br_if $do-continue|0 + end + ) + (func $~lib/util/number/prettify (; 10 ;) (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + local.get $2 + i32.eqz + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $1 + i32.const 2 + i32.add + return + end + local.get $1 + local.get $1 + local.get $2 + i32.add + local.tee $3 + i32.le_s + if (result i32) + local.get $3 + i32.const 21 + i32.le_s + else + i32.const 0 + end + if (result i32) + loop $for-loop|0 + local.get $1 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.const 3145774 + i32.store + local.get $3 + i32.const 2 + i32.add + else + local.get $3 + i32.const 21 + i32.le_s + i32.const 0 + local.get $3 + i32.const 0 + i32.gt_s + select + if (result i32) + local.get $0 + local.get $3 + i32.const 1 + i32.shl + i32.add + local.tee $0 + i32.const 2 + i32.add + local.get $0 + i32.const 0 + local.get $2 + i32.sub + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 + local.get $1 + i32.const 1 + i32.add + else + local.get $3 + i32.const 0 + i32.le_s + i32.const 0 + i32.const -6 + local.get $3 + i32.lt_s + select + if (result i32) + local.get $0 + i32.const 2 + local.get $3 + i32.sub + local.tee $3 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $1 + i32.const 1 + i32.shl + call $~lib/memory/memory.copy + local.get $0 + i32.const 3014704 + i32.store + i32.const 2 + local.set $2 + loop $for-loop|1 + local.get $2 + local.get $3 + i32.lt_s + if + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.const 48 + i32.store16 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + local.get $1 + local.get $3 + i32.add + else + local.get $1 + i32.const 1 + i32.eq + if (result i32) + local.get $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $1 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $2 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa_simple + local.get $1 + i32.const 45 + i32.const 43 + local.get $2 + select + i32.store16 + local.get $0 + i32.const 2 + i32.add + else + local.get $0 + i32.const 4 + i32.add + local.get $0 + i32.const 2 + i32.add + local.get $1 + i32.const 1 + i32.shl + local.tee $2 + i32.const 2 + i32.sub + call $~lib/memory/memory.copy + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + local.get $2 + i32.add + local.tee $0 + i32.const 101 + i32.store16 offset=2 + local.get $0 + i32.const 4 + i32.add + local.tee $2 + local.get $3 + i32.const 1 + i32.sub + local.tee $0 + i32.const 0 + i32.lt_s + local.tee $3 + if + i32.const 0 + local.get $0 + i32.sub + local.set $0 + end + local.get $0 + local.get $0 + call $~lib/util/number/decimalCount32 + i32.const 1 + i32.add + local.tee $0 + call $~lib/util/number/utoa_simple + local.get $2 + i32.const 45 + i32.const 43 + local.get $3 + select + i32.store16 + local.get $0 + local.get $1 + i32.add + i32.const 2 + i32.add + end + end + end + end + ) + (func $~lib/util/number/dtoa_core (; 11 ;) (param $0 i32) (param $1 f64) (result i32) + (local $2 i64) + (local $3 i64) + (local $4 i32) + (local $5 i64) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i64) + local.get $1 + f64.const 0 + f64.lt + local.tee $7 + if (result f64) + local.get $0 + i32.const 45 + i32.store16 + local.get $1 + f64.neg + else + local.get $1 + end + i64.reinterpret_f64 + local.tee $3 + i64.const 9218868437227405312 + i64.and + i64.const 52 + i64.shr_u + i32.wrap_i64 + local.tee $4 + i32.const 1 + local.get $4 + select + i32.const 1075 + i32.sub + local.set $8 + local.get $3 + i64.const 4503599627370495 + i64.and + local.get $4 + i32.const 0 + i32.ne + i64.extend_i32_u + i64.const 52 + i64.shl + i64.add + local.tee $2 + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.tee $3 + i64.clz + i32.wrap_i64 + local.set $4 + local.get $3 + local.get $4 + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_plus + local.get $2 + local.get $2 + i64.const 4503599627370496 + i64.eq + i32.const 1 + i32.add + local.tee $9 + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $8 + local.get $9 + i32.sub + local.get $8 + i32.const 1 + i32.sub + local.get $4 + i32.sub + local.tee $4 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $4 + global.set $~lib/util/number/_exp + i32.const 348 + i32.const -61 + global.get $~lib/util/number/_exp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.tee $1 + i32.trunc_f64_s + local.tee $4 + local.get $4 + f64.convert_i32_s + local.get $1 + f64.ne + i32.add + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.tee $4 + i32.const 3 + i32.shl + local.tee $9 + i32.sub + global.set $~lib/util/number/_K + local.get $9 + i32.const 1088 + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + local.get $4 + i32.const 1 + i32.shl + i32.const 1808 + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $3 + i64.const 4294967295 + i64.and + local.set $6 + local.get $0 + local.get $7 + i32.const 1 + i32.shl + i32.add + local.get $0 + local.get $2 + local.get $2 + i64.clz + i32.wrap_i64 + local.tee $0 + i64.extend_i32_s + i64.shl + local.tee $2 + i64.const 32 + i64.shr_u + local.tee $5 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $10 + i64.mul + local.get $5 + local.get $3 + i64.const 4294967295 + i64.and + local.tee $5 + i64.mul + local.get $2 + i64.const 4294967295 + i64.and + local.tee $2 + local.get $5 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $5 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $10 + i64.mul + local.get $5 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + global.get $~lib/util/number/_exp_pow + local.tee $4 + local.get $8 + local.get $0 + i32.sub + i32.add + i32.const -64 + i32.sub + global.get $~lib/util/number/_frc_plus + local.tee $2 + i64.const 32 + i64.shr_u + local.tee $5 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $10 + i64.mul + local.get $5 + local.get $6 + i64.mul + local.get $2 + i64.const 4294967295 + i64.and + local.tee $2 + local.get $6 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $6 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $10 + i64.mul + local.get $6 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $2 + local.get $4 + global.get $~lib/util/number/_exp + i32.add + i32.const -64 + i32.sub + local.get $2 + global.get $~lib/util/number/_frc_minus + local.tee $2 + i64.const 32 + i64.shr_u + local.tee $6 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $5 + i64.mul + local.get $6 + local.get $3 + i64.const 4294967295 + i64.and + local.tee $3 + i64.mul + local.get $2 + i64.const 4294967295 + i64.and + local.tee $2 + local.get $3 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $3 + i64.const 32 + i64.shr_u + i64.add + local.get $2 + local.get $5 + i64.mul + local.get $3 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + local.get $7 + call $~lib/util/number/genDigits + local.get $7 + i32.sub + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + local.get $7 + i32.add + ) + (func $~lib/util/number/dtoa_stream (; 12 ;) (param $0 i32) (param $1 f64) (result i32) + (local $2 i32) + local.get $1 + f64.const 0 + f64.eq + if + local.get $0 + i32.const 48 + i32.store16 + local.get $0 + i32.const 46 + i32.store16 offset=2 + local.get $0 + i32.const 48 + i32.store16 offset=4 + i32.const 3 + return + end + local.get $1 + local.get $1 + f64.sub + f64.const 0 + f64.ne + if + local.get $1 + local.get $1 + f64.ne + if + local.get $0 + i32.const 78 + i32.store16 + local.get $0 + i32.const 97 + i32.store16 offset=2 + local.get $0 + i32.const 78 + i32.store16 offset=4 + i32.const 3 + return + else + local.get $1 + f64.const 0 + f64.lt + local.tee $2 + if + local.get $0 + i32.const 45 + i32.store16 + local.get $0 + i32.const 2 + i32.add + local.set $0 + end + local.get $0 + i64.const 29555310648492105 + i64.store + local.get $0 + i64.const 34058970405077102 + i64.store offset=8 + local.get $2 + i32.const 8 + i32.add + return + end + unreachable + end + local.get $0 + local.get $1 + call $~lib/util/number/dtoa_core + ) + (func $~lib/wasi/index/abort (; 13 ;) (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + i32.const 0 + i32.const 12 + i32.store + i32.const 12 + i64.const 9071471065260641 + i64.store + i32.const 19 + i32.const 544106784 + i32.store + i32.const 2064 + i32.const 2064 + call $~lib/string/String#get:length + i32.const 23 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 23 + i32.add + local.tee $3 + i32.const 40 + i32.store8 + local.get $0 + call $~lib/util/number/decimalCount32 + local.tee $4 + local.get $3 + i32.const 1 + i32.add + i32.add + local.set $3 + loop $do-continue|0 + local.get $0 + i32.const 10 + i32.div_u + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + local.get $0 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.tee $0 + br_if $do-continue|0 + end + local.get $3 + local.get $4 + i32.add + local.tee $0 + i32.const 58 + i32.store8 + local.get $1 + call $~lib/util/number/decimalCount32 + local.tee $2 + local.get $0 + i32.const 1 + i32.add + i32.add + local.set $3 + loop $do-continue|1 + local.get $1 + i32.const 10 + i32.div_u + local.get $3 + i32.const 1 + i32.sub + local.tee $3 + local.get $1 + i32.const 10 + i32.rem_u + i32.const 48 + i32.add + i32.store8 + local.tee $1 + br_if $do-continue|1 + end + local.get $2 + local.get $3 + i32.add + local.tee $0 + i32.const 2601 + i32.store16 + i32.const 4 + local.get $0 + i32.const -10 + i32.add + i32.store + i32.const 2 + i32.const 0 + i32.const 1 + i32.const 8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + i32.const 255 + call $~lib/bindings/wasi_snapshot_preview1/proc_exit + ) + (func $~lib/wasi/index/trace (; 14 ;) (param $0 i32) (param $1 f64) (param $2 f64) (param $3 f64) (param $4 f64) (param $5 f64) + (local $6 i32) + (local $7 i32) + (local $8 i32) + call $~lib/string/String.UTF8.byteLength + local.tee $6 + i32.const 56 + local.get $6 + i32.const 56 + i32.gt_s + select + i32.const 13 + i32.add + call $~lib/rt/stub/__alloc + local.tee $6 + i32.const 8 + i32.add + local.tee $8 + i32.const 4 + i32.add + local.set $7 + local.get $6 + local.get $7 + i32.store + local.get $7 + i64.const 9071406388179572 + i64.store + local.get $6 + i32.const 7 + i32.store offset=4 + i32.const 2 + local.get $6 + i32.const 1 + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + local.get $6 + i32.const 1040 + i32.const 1040 + call $~lib/string/String#get:length + local.get $7 + call $~lib/string/String.UTF8.encodeUnsafe + i32.store offset=4 + i32.const 2 + local.get $6 + i32.const 1 + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + local.get $0 + if (result i32) + local.get $7 + i32.const 32 + i32.store8 + local.get $6 + local.get $7 + i32.const 1 + i32.add + local.tee $7 + local.get $7 + local.get $1 + call $~lib/util/number/dtoa_stream + local.get $7 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 1 + i32.add + i32.store offset=4 + i32.const 2 + local.get $6 + i32.const 1 + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + local.get $0 + i32.const 1 + i32.gt_s + if + local.get $6 + local.get $7 + local.get $7 + local.get $2 + call $~lib/util/number/dtoa_stream + local.get $7 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 1 + i32.add + i32.store offset=4 + i32.const 2 + local.get $6 + i32.const 1 + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + local.get $0 + i32.const 2 + i32.gt_s + if + local.get $6 + local.get $7 + local.get $7 + local.get $3 + call $~lib/util/number/dtoa_stream + local.get $7 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 1 + i32.add + i32.store offset=4 + i32.const 2 + local.get $6 + i32.const 1 + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + local.get $0 + i32.const 3 + i32.gt_s + if + local.get $6 + local.get $7 + local.get $7 + local.get $4 + call $~lib/util/number/dtoa_stream + local.get $7 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 1 + i32.add + i32.store offset=4 + i32.const 2 + local.get $6 + i32.const 1 + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + local.get $0 + i32.const 4 + i32.gt_s + if + local.get $6 + local.get $7 + local.get $7 + local.get $5 + call $~lib/util/number/dtoa_stream + local.get $7 + call $~lib/string/String.UTF8.encodeUnsafe + i32.const 1 + i32.add + i32.store offset=4 + i32.const 2 + local.get $6 + i32.const 1 + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + end + end + end + end + local.get $7 + i32.const 1 + i32.sub + else + local.get $7 + end + i32.const 10 + i32.store8 + local.get $6 + i32.const 1 + i32.store offset=4 + i32.const 2 + local.get $6 + i32.const 1 + local.get $8 + call $~lib/bindings/wasi_snapshot_preview1/fd_write + drop + local.get $6 + i32.const 15 + i32.and + i32.eqz + i32.const 0 + local.get $6 + select + i32.eqz + if + i32.const 70 + i32.const 2 + call $~lib/wasi/index/abort + unreachable + end + local.get $6 + i32.const 16 + i32.sub + local.tee $0 + i32.load offset=4 + i32.const 1 + i32.ne + if + i32.const 72 + i32.const 13 + call $~lib/wasi/index/abort + unreachable + end + global.get $~lib/rt/stub/offset + local.get $6 + local.get $0 + i32.load + i32.add + i32.eq + if + local.get $0 + global.set $~lib/rt/stub/offset + end + ) + (func $~start (; 15 ;) + global.get $~started + if + return + else + i32.const 1 + global.set $~started + end + i32.const 2096 + global.set $~lib/rt/stub/startOffset + i32.const 2096 + global.set $~lib/rt/stub/offset + i32.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/wasi/index/trace + i32.const 1 + f64.const 1.5 + f64.const 0 + f64.const 0 + f64.const 0 + f64.const 0 + call $~lib/wasi/index/trace + i32.const 5 + f64.const -2.00001 + f64.const 3 + f64.const nan:0x8000000000000 + f64.const inf + f64.const -inf + call $~lib/wasi/index/trace + ) +) diff --git a/tests/compiler/wasi/trace.ts b/tests/compiler/wasi/trace.ts new file mode 100644 index 0000000000..82eb28d680 --- /dev/null +++ b/tests/compiler/wasi/trace.ts @@ -0,0 +1,5 @@ +import "wasi"; + +trace("the message"); +trace("the message", 1, 1.5); +trace("the message", 5, -2.00001, 3, NaN, Infinity, -Infinity); diff --git a/tests/compiler/wasi/trace.untouched.wat b/tests/compiler/wasi/trace.untouched.wat new file mode 100644 index 0000000000..cb9d76a2eb --- /dev/null +++ b/tests/compiler/wasi/trace.untouched.wat @@ -0,0 +1,3720 @@ +(module + (type $i32_=>_none (func (param i32))) + (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) + (type $i32_=>_i32 (func (param i32) (result i32))) + (type $none_=>_none (func)) + (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) + (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) + (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_i32_=>_i32 (func (param i32 i32 i32) (result i32))) + (type $i32_i32_f64_=>_i32 (func (param i32 i32 f64) (result i32))) + (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))) + (import "wasi_snapshot_preview1" "fd_write" (func $~lib/bindings/wasi_snapshot_preview1/fd_write (param i32 i32 i32 i32) (result i32))) + (import "wasi_snapshot_preview1" "proc_exit" (func $~lib/bindings/wasi_snapshot_preview1/proc_exit (param i32))) + (memory $0 1) + (data (i32.const 16) "\16\00\00\00\01\00\00\00\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e\00") + (data (i32.const 64) "\b8\02\00\00\01\00\00\00\03\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