From 6d6caf2be87b74503e40cd8266dce3fe45aed0fc Mon Sep 17 00:00:00 2001 From: dcode Date: Wed, 17 Aug 2022 03:23:46 +0200 Subject: [PATCH 1/7] Remove support for WASI --- package-lock.json | 1 - package.json | 2 +- src/builtins.ts | 5 - src/program.ts | 18 +- std/assembly/bindings/wasi.ts | 6 - .../bindings/wasi_snapshot_preview1.ts | 1648 ---- std/assembly/bindings/wasi_unstable.ts | 1538 ---- std/assembly/crypto.ts | 12 +- std/assembly/performance.ts | 15 +- std/assembly/process.ts | 184 +- std/assembly/wasi/index.ts | 120 - tests/compiler.js | 18 +- tests/compiler/std-wasi/console.debug.wat | 6318 -------------- tests/compiler/std-wasi/console.json | 10 - tests/compiler/std-wasi/console.release.wat | 4669 ---------- tests/compiler/std-wasi/console.ts | 27 - tests/compiler/std-wasi/crypto.debug.wat | 5736 ------------- tests/compiler/std-wasi/crypto.json | 10 - tests/compiler/std-wasi/crypto.release.wat | 4012 --------- tests/compiler/std-wasi/crypto.ts | 21 - tests/compiler/std-wasi/process.debug.wat | 7515 ----------------- tests/compiler/std-wasi/process.json | 18 - tests/compiler/std-wasi/process.release.wat | 5610 ------------ tests/compiler/std-wasi/process.ts | 35 - tests/compiler/wasi/abort.debug.wat | 702 -- tests/compiler/wasi/abort.js | 31 - tests/compiler/wasi/abort.json | 4 - tests/compiler/wasi/abort.release.wat | 327 - tests/compiler/wasi/abort.ts | 5 - tests/compiler/wasi/seed.debug.wat | 192 - tests/compiler/wasi/seed.js | 29 - tests/compiler/wasi/seed.json | 4 - tests/compiler/wasi/seed.release.wat | 115 - tests/compiler/wasi/seed.ts | 5 - .../compiler/wasi/snapshot_preview1.debug.wat | 211 - tests/compiler/wasi/snapshot_preview1.json | 4 - .../wasi/snapshot_preview1.release.wat | 4 - tests/compiler/wasi/snapshot_preview1.ts | 90 - tests/compiler/wasi/trace.debug.wat | 3994 --------- tests/compiler/wasi/trace.js | 23 - tests/compiler/wasi/trace.json | 4 - tests/compiler/wasi/trace.release.wat | 2952 ------- tests/compiler/wasi/trace.ts | 5 - 43 files changed, 20 insertions(+), 46229 deletions(-) delete mode 100644 std/assembly/bindings/wasi.ts delete mode 100644 std/assembly/bindings/wasi_snapshot_preview1.ts delete mode 100644 std/assembly/bindings/wasi_unstable.ts delete mode 100644 std/assembly/wasi/index.ts delete mode 100644 tests/compiler/std-wasi/console.debug.wat delete mode 100644 tests/compiler/std-wasi/console.json delete mode 100644 tests/compiler/std-wasi/console.release.wat delete mode 100644 tests/compiler/std-wasi/console.ts delete mode 100644 tests/compiler/std-wasi/crypto.debug.wat delete mode 100644 tests/compiler/std-wasi/crypto.json delete mode 100644 tests/compiler/std-wasi/crypto.release.wat delete mode 100644 tests/compiler/std-wasi/crypto.ts delete mode 100644 tests/compiler/std-wasi/process.debug.wat delete mode 100644 tests/compiler/std-wasi/process.json delete mode 100644 tests/compiler/std-wasi/process.release.wat delete mode 100644 tests/compiler/std-wasi/process.ts delete mode 100644 tests/compiler/wasi/abort.debug.wat delete mode 100644 tests/compiler/wasi/abort.js delete mode 100644 tests/compiler/wasi/abort.json delete mode 100644 tests/compiler/wasi/abort.release.wat delete mode 100644 tests/compiler/wasi/abort.ts delete mode 100644 tests/compiler/wasi/seed.debug.wat delete mode 100644 tests/compiler/wasi/seed.js delete mode 100644 tests/compiler/wasi/seed.json delete mode 100644 tests/compiler/wasi/seed.release.wat delete mode 100644 tests/compiler/wasi/seed.ts delete mode 100644 tests/compiler/wasi/snapshot_preview1.debug.wat delete mode 100644 tests/compiler/wasi/snapshot_preview1.json delete mode 100644 tests/compiler/wasi/snapshot_preview1.release.wat delete mode 100644 tests/compiler/wasi/snapshot_preview1.ts delete mode 100644 tests/compiler/wasi/trace.debug.wat delete mode 100644 tests/compiler/wasi/trace.js delete mode 100644 tests/compiler/wasi/trace.json delete mode 100644 tests/compiler/wasi/trace.release.wat delete mode 100644 tests/compiler/wasi/trace.ts diff --git a/package-lock.json b/package-lock.json index ec47c0f469..262a1b3d53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,7 +5,6 @@ "requires": true, "packages": { "": { - "name": "assemblyscript", "version": "0.0.0", "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 7830005c10..6943fd73d3 100644 --- a/package.json +++ b/package.json @@ -72,7 +72,7 @@ "watch": "node scripts/build --watch", "test": "npm run test:parser && npm run test:compiler -- --parallel && npm run test:browser && npm run test:asconfig && npm run test:transform", "test:parser": "node --enable-source-maps tests/parser", - "test:compiler": "node --enable-source-maps --experimental-wasi-unstable-preview1 --no-warnings tests/compiler", + "test:compiler": "node --enable-source-maps --no-warnings tests/compiler", "test:browser": "node --enable-source-maps tests/browser", "test:asconfig": "cd tests/asconfig && npm run test", "test:transform": "npm run test:transform:esm && npm run test:transform:cjs", diff --git a/src/builtins.ts b/src/builtins.ts index 3aaf8da430..f08f789f48 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -734,11 +734,6 @@ export namespace BuiltinNames { export const String_eq = "~lib/string/String.__eq"; export const String_ne = "~lib/string/String.__ne"; export const String_not = "~lib/string/String.__not"; - - // 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/program.ts b/src/program.ts index 5d47d44b88..f2169560f6 100644 --- a/src/program.ts +++ b/src/program.ts @@ -1403,25 +1403,13 @@ export class Program extends DiagnosticEmitter { if (!globalAliases) globalAliases = new Map(); let isWasi = this.isWasi; if (!globalAliases.has(CommonNames.abort)) { - globalAliases.set(CommonNames.abort, - isWasi - ? BuiltinNames.wasiAbort - : BuiltinNames.abort - ); + globalAliases.set(CommonNames.abort, BuiltinNames.abort); } if (!globalAliases.has(CommonNames.trace)) { - globalAliases.set(CommonNames.trace, - isWasi - ? BuiltinNames.wasiTrace - : BuiltinNames.trace - ); + globalAliases.set(CommonNames.trace, BuiltinNames.trace); } if (!globalAliases.has(CommonNames.seed)) { - globalAliases.set(CommonNames.seed, - isWasi - ? BuiltinNames.wasiSeed - : BuiltinNames.seed - ); + globalAliases.set(CommonNames.seed, BuiltinNames.seed); } if (!globalAliases.has(CommonNames.Math)) { globalAliases.set(CommonNames.Math, CommonNames.NativeMath); diff --git a/std/assembly/bindings/wasi.ts b/std/assembly/bindings/wasi.ts deleted file mode 100644 index 4f8e13a0fc..0000000000 --- a/std/assembly/bindings/wasi.ts +++ /dev/null @@ -1,6 +0,0 @@ -export * from "./wasi_snapshot_preview1"; - -// A WASI-wide reusable temporary buffer to store and work with out values. Must -// be large enough to fit any operation it is used in, i.e. process/writeString. -// @ts-ignore: decorator -@lazy export const tempbuf = memory.data(4 * sizeof()); diff --git a/std/assembly/bindings/wasi_snapshot_preview1.ts b/std/assembly/bindings/wasi_snapshot_preview1.ts deleted file mode 100644 index 1a8f3095bd..0000000000 --- a/std/assembly/bindings/wasi_snapshot_preview1.ts +++ /dev/null @@ -1,1648 +0,0 @@ -// Phase: wasi_snapshot_preview1 -// See: https://github.com/WebAssembly/WASI/tree/main/phases/snapshot/witx - -// helper types to be more explicit -type char = u8; -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>, - /** Input: Pointer to a buffer to write the argument string data. */ - argv_buf: ptr -): errno; - -/** Return command-line argument data sizes. */ -// @ts-ignore: decorator -@unsafe -export declare function args_sizes_get( - /** Output: Number of arguments. */ - argc: ptr, - /** Output: Size of the argument string data. */ - argv_buf_size: ptr -): 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, - /** Output: The resolution of the clock. */ - resolution: ptr -): 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, - /** Input: Maximum lag (exclusive) that the returned time value may have, compared to its actual value. */ - precision: timestamp, - /** Output: Time value of the clock. */ - time: ptr -): 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, - /** Input: Pointer to a buffer to write the environment variable string data. */ - environ_buf: usize -): 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, - /** Output: The size of the environment variable string data. */ - environ_buf_size: ptr -): 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, - /** Input: The offset within the file to which the advisory applies. */ - offset: filesize, - /** Input: The length of the region to which the advisory applies. */ - len: filesize, - /** Input: The advice. */ - advice: advice -): 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, - /** Input: The offset at which to start the allocation. */ - offset: filesize, - /** Input: The length of the area that is allocated. */ - len: filesize -): 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, - /** Input: The buffer where the file descriptor's attributes are stored. */ - buf: struct -): 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, - /** Input: The desired values of the file descriptor flags. */ - flags: fdflags -): 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, - /** Input: The desired rights of the file descriptor. */ - fs_rights_base: rights, - /** Input: The desired rights of the file descriptor. */ - fs_rights_inheriting: 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, - /** Input: The buffer where the file's attributes are stored. */ - buf: struct -): 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, - /** Input: The desired file size. */ - size: filesize -): 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, - /** Input: The desired values of the data access timestamp. */ - st_atim: timestamp, - /** Input: The desired values of the data modification timestamp. */ - st_mtim: timestamp, - /** Input: A bitmask indicating which timestamps to adjust. */ - fstflags: fstflags -): 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, - /** Input: List of scatter/gather vectors in which to store data. */ - iovs: ptr>, - /** Input: Length of the list of scatter/gather vectors in which to store data. */ - iovs_len: usize, - /** Input: The offset within the file at which to read. */ - offset: filesize, - /** Output: The number of bytes read. */ - nread: ptr -): 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, - /** Input: The buffer where the description is stored. */ - buf: struct -): 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, - /** Input: Buffer into which to write the preopened directory name. */ - path: ptr, - /** Input: Length of the buffer into which to write the preopened directory name. */ - path_len: usize -): 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, - /** Input: List of scatter/gather vectors from which to retrieve data. */ - iovs: ptr>, - /** Input: Length of the list of scatter/gather vectors from which to retrieve data. */ - iovs_len: usize, - /** Input: The offset within the file at which to write. */ - offset: filesize, - /** Output: The number of bytes written. */ - nwritten: ptr -): 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, - /** Input: List of scatter/gather vectors to which to store data. */ - iovs: ptr>, - /** Input: Length of the list of scatter/gather vectors to which to store data. */ - iovs_len: usize, - /** Output: The number of bytes read. */ - nread: ptr -): 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, - /** Input: Buffer where directory entries are stored. */ - buf: ptr>, - /** Input: Length of the buffer where directory entries are stored. */ - buf_len: usize, - /** Input: Location within the directory to start reading. */ - cookie: dircookie, - /** Output: Number of bytes stored in the read buffer. If less than the size of the read buffer, the end of the directory has been reached. */ - buf_used: ptr -): 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, - /** Input: The file descriptor to overwrite. */ - to: fd -): 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, - /** Input: The number of bytes to move. */ - offset: filedelta, - /** Input: The base from which the offset is relative. */ - whence: whence, - /** Output: The new offset of the file descriptor, relative to the start of the file. */ - newoffset: ptr -): 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, - /** Output: The current offset of the file descriptor, relative to the start of the file. */ - newoffset: ptr -): 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, - /** Input: List of scatter/gather vectors from which to retrieve data. */ - iovs: ptr>, - /** Input: List of scatter/gather vectors from which to retrieve data. */ - iovs_len: usize, - /** Output: The number of bytes written. */ - nwritten: ptr -): 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, - /** Input: The path at which to create the directory. */ - path: ptr, - /** Input: The path at which to create the directory. */ - path_len: usize -): 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, - /** Input: Flags determining the method of how the path is resolved. */ - flags: lookupflags, - /** Input: The path of the file or directory to inspect. */ - path: ptr, - /** Input: The path of the file or directory to inspect. */ - path_len: usize, - /** Input: The buffer where the file's attributes are stored. */ - buf: struct -): 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, - /** Input: Flags determining the method of how the path is resolved. */ - flags: lookupflags, - /** Input: The path of the file or directory to operate on. */ - path: ptr, - /** Input: The path of the file or directory to operate on. */ - path_len: usize, - /** Input: The desired values of the data access timestamp. */ - st_atim: timestamp, - /** Input: The desired values of the data modification timestamp. */ - st_mtim: timestamp, - /** Input: A bitmask indicating which timestamps to adjust. */ - fstflags: fstflags -): 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, - /** Input: Flags determining the method of how the path is resolved. */ - old_flags: lookupflags, - /** Input: The source path from which to link. */ - old_path: ptr, - /** Input: The source path from which to link. */ - old_path_len: usize, - /** Input: The working directory at which the resolution of the new path starts. */ - new_fd: fd, - /** Input: The destination path at which to create the hard link. */ - new_path: ptr, - /** Input: The length of the destination path at which to create the hard link. */ - new_path_len: usize -): 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, - /** Input: Flags determining the method of how the path is resolved. */ - dirflags: lookupflags, - /** Input: The path of the file or directory to open. */ - path: ptr, - /** Input: The length of the path of the file or directory to open. */ - path_len: usize, - /** Input: The method by which to open the file. */ - oflags: oflags, - /** Input: The initial base rights that apply to operations using the file descriptor itself. */ - fs_rights_base: rights, - /** Input: The initial inheriting rights that apply to file descriptors derived from it. */ - fs_rights_inheriting: rights, - /** Input: The initial flags of the file descriptor. */ - fs_flags: fdflags, - /** Output: The file descriptor of the file that has been opened. */ - fd: ptr -): 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, - /** Input: The path of the symbolic link from which to read. */ - path: ptr, - /** Input: The length of the path of the symbolic link from which to read. */ - path_len: usize, - /** Input: The buffer to which to write the contents of the symbolic link. */ - buf: ptr, - /** Input: The length of the buffer to which to write the contents of the symbolic link. */ - buf_len: usize, - /** Output: The number of bytes placed in the buffer. */ - buf_used: ptr -): 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, - /** Input: The path to a directory to remove. */ - path: ptr, - /** Input: The length of the path to a directory to remove. */ - path_len: usize -): 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, - /** Input: The source path of the file or directory to rename. */ - old_path: ptr, - /** Input: The length of the source path of the file or directory to rename. */ - old_path_len: usize, - /** Input: The working directory at which the resolution of the new path starts. */ - new_fd: fd, - /** Input: The destination path to which to rename the file or directory. */ - new_path: ptr, - /** Input: The length of the destination path to which to rename the file or directory. */ - new_path_len: usize -): errno; - -/** Create a symbolic link. */ -// @ts-ignore: decorator -@unsafe -export declare function path_symlink( - /** Input: The contents of the symbolic link. */ - old_path: ptr, - /** Input: The length of the contents of the symbolic link. */ - old_path_len: usize, - /** Input: The working directory at which the resolution of the path starts. */ - fd: fd, - /** Input: The destination path at which to create the symbolic link. */ - new_path: ptr, - /** Input: The length of the destination path at which to create the symbolic link. */ - new_path_len: usize -): 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, - /** Input: The path to a file to unlink. */ - path: ptr, - /** Input: The length of the path to a file to unlink. */ - path_len: usize -): 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>, - /** Input: The events that have occurred. */ - out: ptr>, - /** Input: Both the number of subscriptions and events. */ - nsubscriptions: usize, - /** Output: The number of events stored. */ - nevents: ptr -): 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, - /** Input: The length of the buffer to fill with random data. */ - buf_len: usize -): 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, - /** Input: List of scatter/gather vectors to which to store data. */ - ri_data: ptr>, - /** Input: The length of the list of scatter/gather vectors to which to store data. */ - ri_data_len: usize, - /** Input: Message flags. */ - ri_flags: riflags, - /** Output: Number of bytes stored in `ri_data`. */ - ro_datalen: ptr, - /** Output: Message flags. */ - ro_flags: ptr -): 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, - /** Input: List of scatter/gather vectors to which to retrieve data */ - si_data: ptr>, - /** Input: The length of the list of scatter/gather vectors to which to retrieve data */ - si_data_len: usize, - /** Input: Message flags. */ - si_flags: siflags, - /** Output: Number of bytes transmitted. */ - so_datalen: ptr -): 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, - /** Input: Which channels on the socket to shut down. */ - how: sdflags -): errno; - -// === Types ====================================================================================== - -/** File or memory access pattern advisory information. */ -export namespace advice { - /** The application has no advice to give on its behavior with respect to the specified data. */ - // @ts-ignore: decorator - @inline - export const NORMAL: advice = 0; - /** The application expects to access the specified data sequentially from lower offsets to higher offsets. */ - // @ts-ignore: decorator - @inline - export const SEQUENTIAL : advice = 1; - /** The application expects to access the specified data in a random order. */ - // @ts-ignore: decorator - @inline - export const RANDOM: advice = 2; - /** The application expects to access the specified data in the near future. */ - // @ts-ignore: decorator - @inline - export const WILLNEED: advice = 3; - /** The application expects that it will not access the specified data in the near future. */ - // @ts-ignore: decorator - @inline - export const DONTNEED: advice = 4; - /** The application expects to access the specified data once and then not reuse it thereafter. */ - // @ts-ignore: decorator - @inline - export const NOREUSE: advice = 5; -} -export type advice = u8; - -/** Identifiers for clocks. */ -export namespace clockid { - /** The clock measuring real time. Time value zero corresponds with 1970-01-01T00:00:00Z. */ - // @ts-ignore: decorator - @inline - export const REALTIME: clockid = 0; - /** The store-wide monotonic clock. Absolute value has no meaning. */ - // @ts-ignore: decorator - @inline - export const MONOTONIC: clockid = 1; - /** The CPU-time clock associated with the current process. */ - // @ts-ignore: decorator - @inline - export const PROCESS_CPUTIME_ID: clockid = 2; - /** The CPU-time clock associated with the current thread. */ - // @ts-ignore: decorator - @inline - export const THREAD_CPUTIME_ID: clockid = 3; -} -export type clockid = u32; - -/** Identifier for a device containing a file system. Can be used in combination with `inode` to uniquely identify a file or directory in the filesystem. */ -export type device = u64; - -/** A reference to the offset of a directory entry. The value 0 signifies the start of the directory. */ -export type dircookie = u64; - -/** A directory entry. */ -@unmanaged export class dirent { - /** The offset of the next directory entry stored in this directory. */ - next: dircookie; - /** The serial number of the file referred to by this directory entry. */ - ino: inode; - /** The length of the name of the directory entry. */ - namlen: u32; - /** The type of the file referred to by this directory entry. */ - type: filetype; - private __padding0: u16; -} - -/** Error codes returned by functions. */ -export namespace errno { - /** No error occurred. System call completed successfully. */ - // @ts-ignore: decorator - @inline - export const SUCCESS: errno = 0; - /** Argument list too long. */ - // @ts-ignore: decorator - @inline - export const TOOBIG: errno = 1; - /** Permission denied. */ - // @ts-ignore: decorator - @inline - export const ACCES: errno = 2; - /** Address in use. */ - // @ts-ignore: decorator - @inline - export const ADDRINUSE: errno = 3; - /** Address not available. */ - // @ts-ignore: decorator - @inline - export const ADDRNOTAVAIL: errno = 4; - /** Address family not supported. */ - // @ts-ignore: decorator - @inline - export const AFNOSUPPORT: errno = 5; - /** Resource unavailable, or operation would block. */ - // @ts-ignore: decorator - @inline - export const AGAIN: errno = 6; - /** Connection already in progress. */ - // @ts-ignore: decorator - @inline - export const ALREADY: errno = 7; - /** Bad file descriptor. */ - // @ts-ignore: decorator - @inline - export const BADF: errno = 8; - /** Bad message. */ - // @ts-ignore: decorator - @inline - export const BADMSG: errno = 9; - /** Device or resource busy. */ - // @ts-ignore: decorator - @inline - export const BUSY: errno = 10; - /** Operation canceled. */ - // @ts-ignore: decorator - @inline - export const CANCELED: errno = 11; - /** No child processes. */ - // @ts-ignore: decorator - @inline - export const CHILD: errno = 12; - /** Connection aborted. */ - // @ts-ignore: decorator - @inline - export const CONNABORTED: errno = 13; - /** Connection refused. */ - // @ts-ignore: decorator - @inline - export const CONNREFUSED: errno = 14; - /** Connection reset. */ - // @ts-ignore: decorator - @inline - export const CONNRESET: errno = 15; - /** Resource deadlock would occur. */ - // @ts-ignore: decorator - @inline - export const DEADLK: errno = 16; - /** Destination address required. */ - // @ts-ignore: decorator - @inline - export const DESTADDRREQ: errno = 17; - /** Mathematics argument out of domain of function. */ - // @ts-ignore: decorator - @inline - export const DOM: errno = 18; - /** Reserved. */ - // @ts-ignore: decorator - @inline - export const DQUOT: errno = 19; - /** File exists. */ - // @ts-ignore: decorator - @inline - export const EXIST: errno = 20; - /** Bad address. */ - // @ts-ignore: decorator - @inline - export const FAULT: errno = 21; - /** File too large. */ - // @ts-ignore: decorator - @inline - export const FBIG: errno = 22; - /** Host is unreachable. */ - // @ts-ignore: decorator - @inline - export const HOSTUNREACH: errno = 23; - /** Identifier removed. */ - // @ts-ignore: decorator - @inline - export const IDRM: errno = 24; - /** Illegal byte sequence. */ - // @ts-ignore: decorator - @inline - export const ILSEQ: errno = 25; - /** Operation in progress. */ - // @ts-ignore: decorator - @inline - export const INPROGRESS: errno = 26; - /** Interrupted function. */ - // @ts-ignore: decorator - @inline - export const INTR: errno = 27; - /** Invalid argument. */ - // @ts-ignore: decorator - @inline - export const INVAL: errno = 28; - /** I/O error. */ - // @ts-ignore: decorator - @inline - export const IO: errno = 29; - /** Socket is connected. */ - // @ts-ignore: decorator - @inline - export const ISCONN: errno = 30; - /** Is a directory. */ - // @ts-ignore: decorator - @inline - export const ISDIR: errno = 31; - /** Too many levels of symbolic links. */ - // @ts-ignore: decorator - @inline - export const LOOP: errno = 32; - /** File descriptor value too large. */ - // @ts-ignore: decorator - @inline - export const MFILE: errno = 33; - /** Too many links. */ - // @ts-ignore: decorator - @inline - export const MLINK: errno = 34; - /** Message too large. */ - // @ts-ignore: decorator - @inline - export const MSGSIZE: errno = 35; - /** Reserved. */ - // @ts-ignore: decorator - @inline - export const MULTIHOP: errno = 36; - /** Filename too long. */ - // @ts-ignore: decorator - @inline - export const NAMETOOLONG: errno = 37; - /** Network is down. */ - // @ts-ignore: decorator - @inline - export const NETDOWN: errno = 38; - /** Connection aborted by network. */ - // @ts-ignore: decorator - @inline - export const NETRESET: errno = 39; - /** Network unreachable. */ - // @ts-ignore: decorator - @inline - export const NETUNREACH: errno = 40; - /** Too many files open in system. */ - // @ts-ignore: decorator - @inline - export const NFILE: errno = 41; - /** No buffer space available. */ - // @ts-ignore: decorator - @inline - export const NOBUFS: errno = 42; - /** No such device. */ - // @ts-ignore: decorator - @inline - export const NODEV: errno = 43; - /** No such file or directory. */ - // @ts-ignore: decorator - @inline - export const NOENT: errno = 44; - /** Executable file format error. */ - // @ts-ignore: decorator - @inline - export const NOEXEC: errno = 45; - /** No locks available. */ - // @ts-ignore: decorator - @inline - export const NOLCK: errno = 46; - /** Reserved. */ - // @ts-ignore: decorator - @inline - export const NOLINK: errno = 47; - /** Not enough space. */ - // @ts-ignore: decorator - @inline - export const NOMEM: errno = 48; - /** No message of the desired type. */ - // @ts-ignore: decorator - @inline - export const NOMSG: errno = 49; - /** Protocol not available. */ - // @ts-ignore: decorator - @inline - export const NOPROTOOPT: errno = 50; - /** No space left on device. */ - // @ts-ignore: decorator - @inline - export const NOSPC: errno = 51; - /** Function not supported. */ - // @ts-ignore: decorator - @inline - export const NOSYS: errno = 52; - /** The socket is not connected. */ - // @ts-ignore: decorator - @inline - export const NOTCONN: errno = 53; - /** Not a directory or a symbolic link to a directory. */ - // @ts-ignore: decorator - @inline - export const NOTDIR: errno = 54; - /** Directory not empty. */ - // @ts-ignore: decorator - @inline - export const NOTEMPTY: errno = 55; - /** State not recoverable. */ - // @ts-ignore: decorator - @inline - export const NOTRECOVERABLE: errno = 56; - /** Not a socket. */ - // @ts-ignore: decorator - @inline - export const NOTSOCK: errno = 57; - /** Not supported, or operation not supported on socket. */ - // @ts-ignore: decorator - @inline - export const NOTSUP: errno = 58; - /** Inappropriate I/O control operation. */ - // @ts-ignore: decorator - @inline - export const NOTTY: errno = 59; - /** No such device or address. */ - // @ts-ignore: decorator - @inline - export const NXIO: errno = 60; - /** Value too large to be stored in data type. */ - // @ts-ignore: decorator - @inline - export const OVERFLOW: errno = 61; - /** Previous owner died. */ - // @ts-ignore: decorator - @inline - export const OWNERDEAD: errno = 62; - /** Operation not permitted. */ - // @ts-ignore: decorator - @inline - export const PERM: errno = 63; - /** Broken pipe. */ - // @ts-ignore: decorator - @inline - export const PIPE: errno = 64; - /** Protocol error. */ - // @ts-ignore: decorator - @inline - export const PROTO: errno = 65; - /** Protocol not supported. */ - // @ts-ignore: decorator - @inline - export const PROTONOSUPPORT: errno = 66; - /** Protocol wrong type for socket. */ - // @ts-ignore: decorator - @inline - export const PROTOTYPE: errno = 67; - /** Result too large. */ - // @ts-ignore: decorator - @inline - export const RANGE: errno = 68; - /** Read-only file system. */ - // @ts-ignore: decorator - @inline - export const ROFS: errno = 69; - /** Invalid seek. */ - // @ts-ignore: decorator - @inline - export const SPIPE: errno = 70; - /** No such process. */ - // @ts-ignore: decorator - @inline - export const SRCH: errno = 71; - /** Reserved. */ - // @ts-ignore: decorator - @inline - export const STALE: errno = 72; - /** Connection timed out. */ - // @ts-ignore: decorator - @inline - export const TIMEDOUT: errno = 73; - /** Text file busy. */ - // @ts-ignore: decorator - @inline - export const TXTBSY: errno = 74; - /** Cross-device link. */ - // @ts-ignore: decorator - @inline - export const XDEV: errno = 75; - /** Extension: Capabilities insufficient. */ - // @ts-ignore: decorator - @inline - export const NOTCAPABLE: errno = 76; -} -export type errno = u16; - -/** Translates an error code to a string. */ -export function errnoToString(err: errno): string { - switch (err) { - case errno.SUCCESS: return "SUCCESS"; - case errno.TOOBIG: return "TOOBIG"; - case errno.ACCES: return "ACCES"; - case errno.ADDRINUSE: return "ADDRINUSE"; - case errno.ADDRNOTAVAIL: return "ADDRNOTAVAIL"; - case errno.AFNOSUPPORT: return "AFNOSUPPORT"; - case errno.AGAIN: return "AGAIN"; - case errno.ALREADY: return "ALREADY"; - case errno.BADF: return "BADF"; - case errno.BADMSG: return "BADMSG"; - case errno.BUSY: return "BUSY"; - case errno.CANCELED: return "CANCELED"; - case errno.CHILD: return "CHILD"; - case errno.CONNABORTED: return "CONNABORTED"; - case errno.CONNREFUSED: return "CONNREFUSED"; - case errno.CONNRESET: return "CONNRESET"; - case errno.DEADLK: return "DEADLK"; - case errno.DESTADDRREQ: return "DESTADDRREQ"; - case errno.DOM: return "DOM"; - case errno.DQUOT: return "DQUOT"; - case errno.EXIST: return "EXIST"; - case errno.FAULT: return "FAULT"; - case errno.FBIG: return "FBIG"; - case errno.HOSTUNREACH: return "HOSTUNREACH"; - case errno.IDRM: return "IDRM"; - case errno.ILSEQ: return "ILSEQ"; - case errno.INPROGRESS: return "INPROGRESS"; - case errno.INTR: return "INTR"; - case errno.INVAL: return "INVAL"; - case errno.IO: return "IO"; - case errno.ISCONN: return "ISCONN"; - case errno.ISDIR: return "ISDIR"; - case errno.LOOP: return "LOOP"; - case errno.MFILE: return "MFILE"; - case errno.MLINK: return "MLINK"; - case errno.MSGSIZE: return "MSGSIZE"; - case errno.MULTIHOP: return "MULTIHOP"; - case errno.NAMETOOLONG: return "NAMETOOLONG"; - case errno.NETDOWN: return "NETDOWN"; - case errno.NETRESET: return "NETRESET"; - case errno.NETUNREACH: return "NETUNREACH"; - case errno.NFILE: return "NFILE"; - case errno.NOBUFS: return "NOBUFS"; - case errno.NODEV: return "NODEV"; - case errno.NOENT: return "NOENT"; - case errno.NOEXEC: return "NOEXEC"; - case errno.NOLCK: return "NOLCK"; - case errno.NOLINK: return "NOLINK"; - case errno.NOMEM: return "NOMEM"; - case errno.NOMSG: return "NOMSG"; - case errno.NOPROTOOPT: return "NOPROTOOPT"; - case errno.NOSPC: return "NOSPC"; - case errno.NOSYS: return "NOSYS"; - case errno.NOTCONN: return "NOTCONN"; - case errno.NOTDIR: return "NOTDIR"; - case errno.NOTEMPTY: return "NOTEMPTY"; - case errno.NOTRECOVERABLE: return "NOTRECOVERABLE"; - case errno.NOTSOCK: return "NOTSOCK"; - case errno.NOTSUP: return "NOTSUP"; - case errno.NOTTY: return "NOTTY"; - case errno.NXIO: return "NXIO"; - case errno.OVERFLOW: return "OVERFLOW"; - case errno.OWNERDEAD: return "OWNERDEAD"; - case errno.PERM: return "PERM"; - case errno.PIPE: return "PIPE"; - case errno.PROTO: return "PROTO"; - case errno.PROTONOSUPPORT: return "PROTONOSUPPORT"; - case errno.PROTOTYPE: return "PROTOTYPE"; - case errno.RANGE: return "RANGE"; - case errno.ROFS: return "ROFS"; - case errno.SPIPE: return "SPIPE"; - case errno.SRCH: return "SRCH"; - case errno.STALE: return "STALE"; - case errno.TIMEDOUT: return "TIMEDOUT"; - case errno.TXTBSY: return "TXTBSY"; - case errno.XDEV: return "XDEV"; - case errno.NOTCAPABLE: return "NOTCAPABLE"; - } - return "UNKNOWN"; -} - -@unmanaged abstract class $event { // size=16/32 - /** User-provided value that got attached to `subscription#userdata`. */ - userdata: userdata; - /** If non-zero, an error that occurred while processing the subscription request. */ - error: errno; - /** The type of the event that occurred. */ - type: eventtype; - - private __padding0: u16; -} - -/** An event that occurred. */ -@unmanaged export abstract class event extends $event { - private __padding1: u64; - private __padding2: u64; -} - -/** An event that occurred when type is `eventtype.FD_READ` or `eventtype.FD_WRITE`. */ -@unmanaged export class event_fd_readwrite extends $event { - /* The number of bytes available for reading or writing. */ - nbytes: filesize; - /* The state of the file descriptor. */ - flags: eventrwflags; - - private __padding1: u32; -} - -/** The state of the file descriptor subscribed to with `eventtype.FD_READ` or `eventtype.FD_WRITE`. */ -export namespace eventrwflags { - /** The peer of this socket has closed or disconnected. */ - // @ts-ignore: decorator - @inline - export const HANGUP: eventrwflags = 1; -} -export type eventrwflags = u16; - -/** Type of a subscription to an event or its occurrence. */ -export namespace eventtype { - /** The time value of clock has reached the timestamp. */ - // @ts-ignore: decorator - @inline - export const CLOCK: eventtype = 0; - /** File descriptor has data available for reading. */ - // @ts-ignore: decorator - @inline - export const FD_READ: eventtype = 1; - /** File descriptor has capacity available for writing */ - // @ts-ignore: decorator - @inline - export const FD_WRITE: eventtype = 2; -} -export type eventtype = u8; - -/** Exit code generated by a process when exiting. */ -export type exitcode = u32; - -/** A file descriptor number. */ -export type fd = u32; - -/** File descriptor flags. */ -export namespace fdflags { - /** Append mode: Data written to the file is always appended to the file's end. */ - // @ts-ignore: decorator - @inline - export const APPEND: fdflags = 1; - /** Write according to synchronized I/O data integrity completion. Only the data stored in the file is synchronized. */ - // @ts-ignore: decorator - @inline - export const DSYNC: fdflags = 2; - /** Non-blocking mode. */ - // @ts-ignore: decorator - @inline - export const NONBLOCK: fdflags = 4; - /** Synchronized read I/O operations. */ - // @ts-ignore: decorator - @inline - export const RSYNC: fdflags = 8; - /** Write according to synchronized I/O file integrity completion. */ - // @ts-ignore: decorator - @inline - export const SYNC: fdflags = 16; -} -export type fdflags = u16; - -/** File descriptor attributes. */ -@unmanaged export class fdstat { - /** File type. */ - filetype: filetype; - /** File descriptor flags. */ - flags: fdflags; - /** Rights that apply to this file descriptor. */ - rights_base: rights; - /** Maximum set of rights that may be installed on new file descriptors that are created through this file descriptor, e.g., through `path_open`. */ - rights_inheriting: rights; -} - -/** Relative offset within a file. */ -export type filedelta = i64; - -/** Non-negative file size or length of a region within a file. */ -export type filesize = u64; - -/** File attributes. */ -@unmanaged export class filestat { - /** Device ID of device containing the file. */ - dev: device; - /** File serial number. */ - ino: inode; - /** File type. */ - filetype: filetype; - /** Number of hard links to the file. */ - nlink: linkcount; - /** For regular files, the file size in bytes. For symbolic links, the length in bytes of the pathname contained in the symbolic link. */ - size: filesize; - /** Last data access timestamp. */ - atim: timestamp; - /** Last data modification timestamp. */ - mtim: timestamp; - /** Last file status change timestamp. */ - ctim: timestamp; -} - -/** The type of a file descriptor or file. */ -export namespace filetype { - /** The type of the file descriptor or file is unknown or is different from any of the other types specified. */ - // @ts-ignore: decorator - @inline - export const UNKNOWN: filetype = 0; - /** The file descriptor or file refers to a block device inode. */ - // @ts-ignore: decorator - @inline - export const BLOCK_DEVICE: filetype = 1; - /** The file descriptor or file refers to a character device inode. */ - // @ts-ignore: decorator - @inline - export const CHARACTER_DEVICE: filetype = 2; - /** The file descriptor or file refers to a directory inode. */ - // @ts-ignore: decorator - @inline - export const DIRECTORY: filetype = 3; - /** The file descriptor or file refers to a regular file inode. */ - // @ts-ignore: decorator - @inline - export const REGULAR_FILE: filetype = 4; - /** The file descriptor or file refers to a datagram socket. */ - // @ts-ignore: decorator - @inline - export const SOCKET_DGRAM: filetype = 5; - /** The file descriptor or file refers to a byte-stream socket. */ - // @ts-ignore: decorator - @inline - export const SOCKET_STREAM: filetype = 6; - /** The file refers to a symbolic link inode. */ - // @ts-ignore: decorator - @inline - export const SYMBOLIC_LINK: filetype = 7; -} -export type filetype = u8; - -/** Which file time attributes to adjust. */ -export namespace fstflags { - /** Adjust the last data access timestamp to the value stored in `filestat#st_atim`. */ - // @ts-ignore: decorator - @inline - export const SET_ATIM: fstflags = 1; - /** Adjust the last data access timestamp to the time of clock `clockid.REALTIME`. */ - // @ts-ignore: decorator - @inline - export const SET_ATIM_NOW: fstflags = 2; - /** Adjust the last data modification timestamp to the value stored in `filestat#st_mtim`. */ - // @ts-ignore: decorator - @inline - export const SET_MTIM: fstflags = 4; - /** Adjust the last data modification timestamp to the time of clock `clockid.REALTIME`. */ - // @ts-ignore: decorator - @inline - export const SET_MTIM_NOW: fstflags = 8; -} -export type fstflags = u16; - -/** File serial number that is unique within its file system. */ -export type inode = u64; - -/** A region of memory for scatter/gather reads. */ -@unmanaged export class iovec { - /** The address of the buffer to be filled. */ - buf: usize; - /** The length of the buffer to be filled. */ - buf_len: usize; -} - -/** Number of hard links to an inode. */ -export type linkcount = u64; - -/** Flags determining the method of how paths are resolved. */ -export namespace lookupflags { - /** As long as the resolved path corresponds to a symbolic link, it is expanded. */ - // @ts-ignore: decorator - @inline - export const SYMLINK_FOLLOW: lookupflags = 1; -} -export type lookupflags = u32; - -/** Open flags. */ -export namespace oflags { - /** Create file if it does not exist. */ - // @ts-ignore: decorator - @inline - export const CREAT: oflags = 1; - /** Fail if not a directory. */ - // @ts-ignore: decorator - @inline - export const DIRECTORY: oflags = 2; - /** Fail if file already exists. */ - // @ts-ignore: decorator - @inline - export const EXCL: oflags = 4; - /** Truncate file to size 0. */ - // @ts-ignore: decorator - @inline - export const TRUNC: oflags = 8; -} -export type oflags = u16; - -/** Identifiers for preopened capabilities. */ -export namespace preopentype { - /** A pre-opened directory. */ - // @ts-ignore: decorator - @inline - export const DIR: preopentype = 0; -} -export type preopentype = u8; - -@unmanaged abstract class $prestat { // WASM32: size=1/8, WASM64: size=1/16 - /* The type of the pre-opened capability. */ - type: preopentype; -} - -/* Information about a pre-opened capability. */ -@unmanaged export abstract class prestat extends $prestat { - private __padding0: usize; -} - -/** The contents of a $prestat when type is `preopentype.DIR`. */ -@unmanaged export class prestat_dir extends $prestat { - /** The length of the directory name for use with `fd_prestat_dir_name`. */ - name_len: usize; -} - -/** Flags provided to `sock_recv`. */ -export namespace riflags { - /** Returns the message without removing it from the socket's receive queue. */ - // @ts-ignore: decorator - @inline - export const PEEK: riflags = 1; - /** On byte-stream sockets, block until the full amount of data can be returned. */ - // @ts-ignore: decorator - @inline - export const WAITALL: riflags = 2; -} -export type riflags = u16; - -/** File descriptor rights, determining which actions may be performed. */ -export namespace rights { - /** The right to invoke `fd_datasync`. */ - // @ts-ignore: decorator - @inline - export const FD_DATASYNC: rights = 1; - /** The right to invoke `fd_read` and `sock_recv`. */ - // @ts-ignore: decorator - @inline - export const FD_READ: rights = 2; - /** The right to invoke `fd_seek`. This flag implies `rights.FD_TELL`. */ - // @ts-ignore: decorator - @inline - export const FD_SEEK: rights = 4; - /** The right to invoke `fd_fdstat_set_flags`. */ - // @ts-ignore: decorator - @inline - export const FD_FDSTAT_SET_FLAGS: rights = 8; - /** The right to invoke `fd_sync`. */ - // @ts-ignore: decorator - @inline - export const FD_SYNC: rights = 16; - /** The right to invoke `fd_seek` in such a way that the file offset remains unaltered (i.e., `whence.CUR` with offset zero), or to invoke `fd_tell`). */ - // @ts-ignore: decorator - @inline - export const FD_TELL: rights = 32; - /** The right to invoke `fd_write` and `sock_send`. If `rights.FD_SEEK` is set, includes the right to invoke `fd_pwrite`. */ - // @ts-ignore: decorator - @inline - export const FD_WRITE: rights = 64; - /** The right to invoke `fd_advise`. */ - // @ts-ignore: decorator - @inline - export const FD_ADVISE: rights = 128; - /** The right to invoke `fd_allocate`. */ - // @ts-ignore: decorator - @inline - export const FD_ALLOCATE: rights = 256; - /** The right to invoke `path_create_directory`. */ - // @ts-ignore: decorator - @inline - export const PATH_CREATE_DIRECTORY: rights = 512; - /** If `rights.PATH_OPEN` is set, the right to invoke `path_open` with `oflags.CREAT`. */ - // @ts-ignore: decorator - @inline - export const PATH_CREATE_FILE: rights = 1024; - /** The right to invoke `path_link` with the file descriptor as the source directory. */ - // @ts-ignore: decorator - @inline - export const PATH_LINK_SOURCE: rights = 2048; - /** The right to invoke `path_link` with the file descriptor as the target directory. */ - // @ts-ignore: decorator - @inline - export const PATH_LINK_TARGET: rights = 4096; - /** The right to invoke `path_open`. */ - // @ts-ignore: decorator - @inline - export const PATH_OPEN: rights = 8192; - /** The right to invoke `fd_readdir`. */ - // @ts-ignore: decorator - @inline - export const FD_READDIR: rights = 16384; - /** The right to invoke `path_readlink`. */ - // @ts-ignore: decorator - @inline - export const PATH_READLINK: rights = 32768; - /** The right to invoke `path_rename` with the file descriptor as the source directory. */ - // @ts-ignore: decorator - @inline - export const PATH_RENAME_SOURCE: rights = 65536; - /** The right to invoke `path_rename` with the file descriptor as the target directory. */ - // @ts-ignore: decorator - @inline - export const PATH_RENAME_TARGET: rights = 131072; - /** The right to invoke `path_filestat_get`. */ - // @ts-ignore: decorator - @inline - export const PATH_FILESTAT_GET: rights = 262144; - /** The right to change a file's size (there is no `path_filestat_set_size`). If `rights.PATH_OPEN` is set, includes the right to invoke `path_open` with `oflags.TRUNC`. */ - // @ts-ignore: decorator - @inline - export const PATH_FILESTAT_SET_SIZE: rights = 524288; - /** The right to invoke `path_filestat_set_times`. */ - // @ts-ignore: decorator - @inline - export const PATH_FILESTAT_SET_TIMES: rights = 1048576; - /** The right to invoke `fd_filestat_get`. */ - // @ts-ignore: decorator - @inline - export const FD_FILESTAT_GET: rights = 2097152; - /** The right to invoke `fd_filestat_set_size`. */ - // @ts-ignore: decorator - @inline - export const FD_FILESTAT_SET_SIZE: rights = 4194304; - /** The right to invoke `fd_filestat_set_times`. */ - // @ts-ignore: decorator - @inline - export const FD_FILESTAT_SET_TIMES: rights = 8388608; - /** The right to invoke `path_symlink`. */ - // @ts-ignore: decorator - @inline - export const RIGHT_PATH_SYMLINK: rights = 16777216; - /** The right to invoke `path_remove_directory`. */ - // @ts-ignore: decorator - @inline - export const PATH_REMOVE_DIRECTORY: rights = 33554432; - /** The right to invoke `path_unlink_file`. */ - // @ts-ignore: decorator - @inline - export const PATH_UNLINK_FILE: rights = 67108864; - /** If `rights.FD_READ` is set, includes the right to invoke `poll_oneoff` to subscribe to `eventtype.FD_READ`. If `rights.FD_WRITE` is set, includes the right to invoke `poll_oneoff` to subscribe to `eventtype.FD_WRITE`. */ - // @ts-ignore: decorator - @inline - export const POLL_FD_READWRITE: rights = 134217728; - /** The right to invoke `sock_shutdown`. */ - // @ts-ignore: decorator - @inline - export const SOCK_SHUTDOWN: rights = 268435456; -} -export type rights = u64; - -/** Flags returned by `sock_recv`. */ -export namespace roflags { - /** Message data has been truncated. */ - // @ts-ignore: decorator - @inline - export const DATA_TRUNCATED: roflags = 1; -} -export type roflags = u16; - -/** Which channels on a socket to shut down. */ -export namespace sdflags { - /** Disables further receive operations. */ - // @ts-ignore: decorator - @inline - export const RD: sdflags = 1; - /** Disables further send operations. */ - // @ts-ignore: decorator - @inline - export const WR: sdflags = 2; -} -export type sdflags = u8; - -/** Flags provided to `sock_send`. */ -export namespace siflags { - // As there are currently no flags defined, it must be set to zero. -} -export type siflags = u16; - -/** Signal condition. */ -export namespace signal { - /** Hangup. */ - // @ts-ignore: decorator - @inline - export const HUP: signal = 1; - /** Terminate interrupt signal. */ - // @ts-ignore: decorator - @inline - export const INT: signal = 2; - /** Terminal quit signal. */ - // @ts-ignore: decorator - @inline - export const QUIT: signal = 3; - /** Illegal instruction. */ - // @ts-ignore: decorator - @inline - export const ILL: signal = 4; - /** Trace/breakpoint trap. */ - // @ts-ignore: decorator - @inline - export const TRAP: signal = 5; - /** Process abort signal. */ - // @ts-ignore: decorator - @inline - export const ABRT: signal = 6; - /** Access to an undefined portion of a memory object. */ - // @ts-ignore: decorator - @inline - export const BUS: signal = 7; - /** Erroneous arithmetic operation. */ - // @ts-ignore: decorator - @inline - export const FPE: signal = 8; - /** Kill. */ - // @ts-ignore: decorator - @inline - export const KILL: signal = 9; - /** User-defined signal 1. */ - // @ts-ignore: decorator - @inline - export const USR1: signal = 10; - /** Invalid memory reference. */ - // @ts-ignore: decorator - @inline - export const SEGV: signal = 11; - /** User-defined signal 2. */ - // @ts-ignore: decorator - @inline - export const USR2: signal = 12; - /** Write on a pipe with no one to read it. */ - // @ts-ignore: decorator - @inline - export const PIPE: signal = 13; - /** Alarm clock. */ - // @ts-ignore: decorator - @inline - export const ALRM: signal = 14; - /** Termination signal. */ - // @ts-ignore: decorator - @inline - export const TERM: signal = 15; - /** Child process terminated, stopped, or continued. */ - // @ts-ignore: decorator - @inline - export const CHLD: signal = 16; - /** Continue executing, if stopped. */ - // @ts-ignore: decorator - @inline - export const CONT: signal = 17; - /** Stop executing. */ - // @ts-ignore: decorator - @inline - export const STOP: signal = 18; - /** Terminal stop signal. */ - // @ts-ignore: decorator - @inline - export const TSTP: signal = 19; - /** Background process attempting read. */ - // @ts-ignore: decorator - @inline - export const TTIN: signal = 20; - /** Background process attempting write. */ - // @ts-ignore: decorator - @inline - export const TTOU: signal = 21; - /** High bandwidth data is available at a socket. */ - // @ts-ignore: decorator - @inline - export const URG: signal = 22; - /** CPU time limit exceeded. */ - // @ts-ignore: decorator - @inline - export const XCPU: signal = 23; - /** File size limit exceeded. */ - // @ts-ignore: decorator - @inline - export const XFSZ: signal = 24; - /** Virtual timer expired. */ - // @ts-ignore: decorator - @inline - export const VTALRM: signal = 25; - // @ts-ignore: decorator - @inline - export const PROF: signal = 26; - // @ts-ignore: decorator - @inline - export const WINCH: signal = 27; - // @ts-ignore: decorator - @inline - export const POLL: signal = 28; - // @ts-ignore: decorator - @inline - export const PWR: signal = 29; - /** Bad system call. */ - // @ts-ignore: decorator - @inline - export const SYS: signal = 30; -} -export type signal = u8; - -/** Flags determining how to interpret the timestamp provided in `subscription_t::u.clock.timeout. */ -export namespace subclockflags { - /** If set, treat the timestamp provided in `clocksubscription` as an absolute timestamp. */ - // @ts-ignore: decorator - @inline - export const ABSTIME: subclockflags = 1; -} -export type subclockflags = u16; - -@unmanaged abstract class $subscription { // size=16/48 - /** User-provided value that is attached to the subscription. */ - userdata: userdata; - /** The type of the event to which to subscribe. */ - type: eventtype; - - private __padding0: u32; -} - -/** Subscription to an event. */ -@unmanaged export abstract class subscription extends $subscription { - private __padding1: u64; - private __padding2: u64; - private __padding3: u64; - private __padding4: u64; -} - -/* Subscription to an event of type `eventtype.CLOCK`.**/ -@unmanaged export class subscription_clock extends $subscription { - /** The clock against which to compare the timestamp. */ - clock_id: clockid; - /** The absolute or relative timestamp. */ - timeout: timestamp; - /** The amount of time that the implementation may wait additionally to coalesce with other events. */ - precision: timestamp; - /** Flags specifying whether the timeout is absolute or relative. */ - flags: subclockflags; - - private __padding1: u32; -} - -/* Subscription to an event of type `eventtype.FD_READ` or `eventtype.FD_WRITE`.**/ -@unmanaged export class subscription_fd_readwrite extends $subscription { - /** The file descriptor on which to wait for it to become ready for reading or writing. */ - file_descriptor: fd; - - private __padding1: u64; - private __padding2: u64; - private __padding3: u64; -} - -/** Timestamp in nanoseconds. */ -export type timestamp = u64; - -/** User-provided value that may be attached to objects that is retained when extracted from the implementation. */ -export type userdata = u64; - -/** The position relative to which to set the offset of the file descriptor. */ -export namespace whence { - /** Seek relative to start-of-file. */ - // @ts-ignore: decorator - @inline - export const SET: whence = 0; - /** Seek relative to current position. */ - // @ts-ignore: decorator - @inline - export const CUR: whence = 1; - /** Seek relative to end-of-file. */ - // @ts-ignore: decorator - @inline - export const END: whence = 2; -} - -export type whence = u8; diff --git a/std/assembly/bindings/wasi_unstable.ts b/std/assembly/bindings/wasi_unstable.ts deleted file mode 100644 index 27926e8fa1..0000000000 --- a/std/assembly/bindings/wasi_unstable.ts +++ /dev/null @@ -1,1538 +0,0 @@ -// Phase: wasi_unstable / wasi_snapshot_preview0 -// See: https://github.com/WebAssembly/WASI/tree/main/phases/old/snapshot_0/witx - -// helper types to be more explicit -type char = u8; -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>, - /** Input: Pointer to a buffer to write the argument string data. */ - argv_buf: ptr -): errno; - -/** Return command-line argument data sizes. */ -// @ts-ignore: decorator -@unsafe -export declare function args_sizes_get( - /** Output: Number of arguments. */ - argc: ptr, - /** Output: Size of the argument string data. */ - argv_buf_size: ptr -): 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, - /** Output: The resolution of the clock. */ - resolution: ptr -): 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, - /** Input: Maximum lag (exclusive) that the returned time value may have, compared to its actual value. */ - precision: timestamp, - /** Output: Time value of the clock. */ - time: ptr -): 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, - /** Input: Pointer to a buffer to write the environment variable string data. */ - environ_buf: usize -): 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, - /** Output: The size of the environment variable string data. */ - environ_buf_size: ptr -): 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, - /** Input: The offset within the file to which the advisory applies. */ - offset: filesize, - /** Input: The length of the region to which the advisory applies. */ - len: filesize, - /** Input: The advice. */ - advice: advice -): 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, - /** Input: The offset at which to start the allocation. */ - offset: filesize, - /** Input: The length of the area that is allocated. */ - len: filesize -): 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, - /** Input: The buffer where the file descriptor's attributes are stored. */ - buf: struct -): 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, - /** Input: The desired values of the file descriptor flags. */ - flags: fdflags -): 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, - /** Input: The desired rights of the file descriptor. */ - fs_rights_base: rights, - /** Input: The desired rights of the file descriptor. */ - fs_rights_inheriting: 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, - /** Input: The buffer where the file's attributes are stored. */ - buf: struct -): 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, - /** Input: The desired file size. */ - size: filesize -): 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, - /** Input: The desired values of the data access timestamp. */ - st_atim: timestamp, - /** Input: The desired values of the data modification timestamp. */ - st_mtim: timestamp, - /** Input: A bitmask indicating which timestamps to adjust. */ - fstflags: fstflags -): 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, - /** Input: List of scatter/gather vectors in which to store data. */ - iovs: ptr>, - /** Input: Length of the list of scatter/gather vectors in which to store data. */ - iovs_len: usize, - /** Input: The offset within the file at which to read. */ - offset: filesize, - /** Output: The number of bytes read. */ - nread: ptr -): 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, - /** Input: The buffer where the description is stored. */ - buf: struct -): 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, - /** Input: Buffer into which to write the preopened directory name. */ - path: ptr, - /** Input: Length of the buffer into which to write the preopened directory name. */ - path_len: usize -): 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, - /** Input: List of scatter/gather vectors from which to retrieve data. */ - iovs: ptr>, - /** Input: Length of the list of scatter/gather vectors from which to retrieve data. */ - iovs_len: usize, - /** Input: The offset within the file at which to write. */ - offset: filesize, - /** Output: The number of bytes written. */ - nwritten: ptr -): 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, - /** Input: List of scatter/gather vectors to which to store data. */ - iovs: ptr>, - /** Input: Length of the list of scatter/gather vectors to which to store data. */ - iovs_len: usize, - /** Output: The number of bytes read. */ - nread: ptr -): 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, - /** Input: Buffer where directory entries are stored. */ - buf: ptr>, - /** Input: Length of the buffer where directory entries are stored. */ - buf_len: usize, - /** Input: Location within the directory to start reading. */ - cookie: dircookie, - /** Output: Number of bytes stored in the read buffer. If less than the size of the read buffer, the end of the directory has been reached. */ - buf_used: ptr -): 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, - /** Input: The file descriptor to overwrite. */ - to: fd -): 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, - /** Input: The number of bytes to move. */ - offset: filedelta, - /** Input: The base from which the offset is relative. */ - whence: whence, - /** Output: The new offset of the file descriptor, relative to the start of the file. */ - newoffset: ptr -): 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, - /** Output: The current offset of the file descriptor, relative to the start of the file. */ - newoffset: ptr -): 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, - /** Input: List of scatter/gather vectors from which to retrieve data. */ - iovs: ptr>, - /** Input: List of scatter/gather vectors from which to retrieve data. */ - iovs_len: usize, - /** Output: The number of bytes written. */ - nwritten: ptr -): 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, - /** Input: The path at which to create the directory. */ - path: ptr, - /** Input: The path at which to create the directory. */ - path_len: usize -): 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, - /** Input: Flags determining the method of how the path is resolved. */ - flags: lookupflags, - /** Input: The path of the file or directory to inspect. */ - path: ptr, - /** Input: The path of the file or directory to inspect. */ - path_len: usize, - /** Input: The buffer where the file's attributes are stored. */ - buf: struct -): 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, - /** Input: Flags determining the method of how the path is resolved. */ - flags: lookupflags, - /** Input: The path of the file or directory to operate on. */ - path: ptr, - /** Input: The path of the file or directory to operate on. */ - path_len: usize, - /** Input: The desired values of the data access timestamp. */ - st_atim: timestamp, - /** Input: The desired values of the data modification timestamp. */ - st_mtim: timestamp, - /** Input: A bitmask indicating which timestamps to adjust. */ - fstflags: fstflags -): 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, - /** Input: Flags determining the method of how the path is resolved. */ - old_flags: lookupflags, - /** Input: The source path from which to link. */ - old_path: ptr, - /** Input: The source path from which to link. */ - old_path_len: usize, - /** Input: The working directory at which the resolution of the new path starts. */ - new_fd: fd, - /** Input: The destination path at which to create the hard link. */ - new_path: ptr, - /** Input: The length of the destination path at which to create the hard link. */ - new_path_len: usize -): 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, - /** Input: Flags determining the method of how the path is resolved. */ - dirflags: lookupflags, - /** Input: The path of the file or directory to open. */ - path: ptr, - /** Input: The length of the path of the file or directory to open. */ - path_len: usize, - /** Input: The method by which to open the file. */ - oflags: oflags, - /** Input: The initial base rights that apply to operations using the file descriptor itself. */ - fs_rights_base: rights, - /** Input: The initial inheriting rights that apply to file descriptors derived from it. */ - fs_rights_inheriting: rights, - /** Input: The initial flags of the file descriptor. */ - fs_flags: fdflags, - /** Output: The file descriptor of the file that has been opened. */ - fd: ptr -): 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, - /** Input: The path of the symbolic link from which to read. */ - path: ptr, - /** Input: The length of the path of the symbolic link from which to read. */ - path_len: usize, - /** Input: The buffer to which to write the contents of the symbolic link. */ - buf: ptr, - /** Input: The length of the buffer to which to write the contents of the symbolic link. */ - buf_len: usize, - /** Output: The number of bytes placed in the buffer. */ - buf_used: ptr -): 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, - /** Input: The path to a directory to remove. */ - path: ptr, - /** Input: The length of the path to a directory to remove. */ - path_len: usize -): 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, - /** Input: The source path of the file or directory to rename. */ - old_path: ptr, - /** Input: The length of the source path of the file or directory to rename. */ - old_path_len: usize, - /** Input: The working directory at which the resolution of the new path starts. */ - new_fd: fd, - /** Input: The destination path to which to rename the file or directory. */ - new_path: ptr, - /** Input: The length of the destination path to which to rename the file or directory. */ - new_path_len: usize -): errno; - -/** Create a symbolic link. */ -// @ts-ignore: decorator -@unsafe -export declare function path_symlink( - /** Input: The contents of the symbolic link. */ - old_path: ptr, - /** Input: The length of the contents of the symbolic link. */ - old_path_len: usize, - /** Input: The working directory at which the resolution of the path starts. */ - fd: fd, - /** Input: The destination path at which to create the symbolic link. */ - new_path: ptr, - /** Input: The length of the destination path at which to create the symbolic link. */ - new_path_len: usize -): 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, - /** Input: The path to a file to unlink. */ - path: ptr, - /** Input: The length of the path to a file to unlink. */ - path_len: usize -): 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>, - /** Input: The events that have occurred. */ - out: ptr>, - /** Input: Both the number of subscriptions and events. */ - nsubscriptions: usize, - /** Output: The number of events stored. */ - nevents: ptr -): 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, - /** Input: The length of the buffer to fill with random data. */ - buf_len: usize -): 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, - /** Input: List of scatter/gather vectors to which to store data. */ - ri_data: ptr>, - /** Input: The length of the list of scatter/gather vectors to which to store data. */ - ri_data_len: usize, - /** Input: Message flags. */ - ri_flags: riflags, - /** Output: Number of bytes stored in `ri_data`. */ - ro_datalen: ptr, - /** Output: Message flags. */ - ro_flags: ptr -): 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, - /** Input: List of scatter/gather vectors to which to retrieve data */ - si_data: ptr>, - /** Input: The length of the list of scatter/gather vectors to which to retrieve data */ - si_data_len: usize, - /** Input: Message flags. */ - si_flags: siflags, - /** Output: Number of bytes transmitted. */ - so_datalen: ptr -): 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, - /** Input: Which channels on the socket to shut down. */ - how: sdflags -): errno; - -// === Types ====================================================================================== - -/** File or memory access pattern advisory information. */ -export namespace advice { - /** The application has no advice to give on its behavior with respect to the specified data. */ - // @ts-ignore: decorator - @inline - export const NORMAL: advice = 0; - /** The application expects to access the specified data sequentially from lower offsets to higher offsets. */ - // @ts-ignore: decorator - @inline - export const SEQUENTIAL : advice = 1; - /** The application expects to access the specified data in a random order. */ - // @ts-ignore: decorator - @inline - export const RANDOM: advice = 2; - /** The application expects to access the specified data in the near future. */ - // @ts-ignore: decorator - @inline - export const WILLNEED: advice = 3; - /** The application expects that it will not access the specified data in the near future. */ - // @ts-ignore: decorator - @inline - export const DONTNEED: advice = 4; - /** The application expects to access the specified data once and then not reuse it thereafter. */ - // @ts-ignore: decorator - @inline - export const NOREUSE: advice = 5; -} -export type advice = u8; - -/** Identifiers for clocks. */ -export namespace clockid { - /** The clock measuring real time. Time value zero corresponds with 1970-01-01T00:00:00Z. */ - // @ts-ignore: decorator - @inline - export const REALTIME: clockid = 0; - /** The store-wide monotonic clock. Absolute value has no meaning. */ - // @ts-ignore: decorator - @inline - export const MONOTONIC: clockid = 1; - /** The CPU-time clock associated with the current process. */ - // @ts-ignore: decorator - @inline - export const PROCESS_CPUTIME_ID: clockid = 2; - /** The CPU-time clock associated with the current thread. */ - // @ts-ignore: decorator - @inline - export const THREAD_CPUTIME_ID: clockid = 3; -} -export type clockid = u32; - -/** Identifier for a device containing a file system. Can be used in combination with `inode` to uniquely identify a file or directory in the filesystem. */ -export type device = u64; - -/** A reference to the offset of a directory entry. */ -export type dircookie = u64; - -/** A directory entry. */ -@unmanaged export class dirent { - /** The offset of the next directory entry stored in this directory. */ - next: dircookie; - /** The serial number of the file referred to by this directory entry. */ - ino: inode; - /** The length of the name of the directory entry. */ - namlen: u32; - /** The type of the file referred to by this directory entry. */ - type: filetype; - private __padding0: u16; -} - -/** Error codes returned by functions. */ -export namespace errno { - /** No error occurred. System call completed successfully. */ - // @ts-ignore: decorator - @inline - export const SUCCESS: errno = 0; - /** Argument list too long. */ - // @ts-ignore: decorator - @inline - export const TOOBIG: errno = 1; - /** Permission denied. */ - // @ts-ignore: decorator - @inline - export const ACCES: errno = 2; - /** Address in use. */ - // @ts-ignore: decorator - @inline - export const ADDRINUSE: errno = 3; - /** Address not available. */ - // @ts-ignore: decorator - @inline - export const ADDRNOTAVAIL: errno = 4; - /** Address family not supported. */ - // @ts-ignore: decorator - @inline - export const AFNOSUPPORT: errno = 5; - /** Resource unavailable, or operation would block. */ - // @ts-ignore: decorator - @inline - export const AGAIN: errno = 6; - /** Connection already in progress. */ - // @ts-ignore: decorator - @inline - export const ALREADY: errno = 7; - /** Bad file descriptor. */ - // @ts-ignore: decorator - @inline - export const BADF: errno = 8; - /** Bad message. */ - // @ts-ignore: decorator - @inline - export const BADMSG: errno = 9; - /** Device or resource busy. */ - // @ts-ignore: decorator - @inline - export const BUSY: errno = 10; - /** Operation canceled. */ - // @ts-ignore: decorator - @inline - export const CANCELED: errno = 11; - /** No child processes. */ - // @ts-ignore: decorator - @inline - export const CHILD: errno = 12; - /** Connection aborted. */ - // @ts-ignore: decorator - @inline - export const CONNABORTED: errno = 13; - /** Connection refused. */ - // @ts-ignore: decorator - @inline - export const CONNREFUSED: errno = 14; - /** Connection reset. */ - // @ts-ignore: decorator - @inline - export const CONNRESET: errno = 15; - /** Resource deadlock would occur. */ - // @ts-ignore: decorator - @inline - export const DEADLK: errno = 16; - /** Destination address required. */ - // @ts-ignore: decorator - @inline - export const DESTADDRREQ: errno = 17; - /** Mathematics argument out of domain of function. */ - // @ts-ignore: decorator - @inline - export const DOM: errno = 18; - /** Reserved. */ - // @ts-ignore: decorator - @inline - export const DQUOT: errno = 19; - /** File exists. */ - // @ts-ignore: decorator - @inline - export const EXIST: errno = 20; - /** Bad address. */ - // @ts-ignore: decorator - @inline - export const FAULT: errno = 21; - /** File too large. */ - // @ts-ignore: decorator - @inline - export const FBIG: errno = 22; - /** Host is unreachable. */ - // @ts-ignore: decorator - @inline - export const HOSTUNREACH: errno = 23; - /** Identifier removed. */ - // @ts-ignore: decorator - @inline - export const IDRM: errno = 24; - /** Illegal byte sequence. */ - // @ts-ignore: decorator - @inline - export const ILSEQ: errno = 25; - /** Operation in progress. */ - // @ts-ignore: decorator - @inline - export const INPROGRESS: errno = 26; - /** Interrupted function. */ - // @ts-ignore: decorator - @inline - export const INTR: errno = 27; - /** Invalid argument. */ - // @ts-ignore: decorator - @inline - export const INVAL: errno = 28; - /** I/O error. */ - // @ts-ignore: decorator - @inline - export const IO: errno = 29; - /** Socket is connected. */ - // @ts-ignore: decorator - @inline - export const ISCONN: errno = 30; - /** Is a directory. */ - // @ts-ignore: decorator - @inline - export const ISDIR: errno = 31; - /** Too many levels of symbolic links. */ - // @ts-ignore: decorator - @inline - export const LOOP: errno = 32; - /** File descriptor value too large. */ - // @ts-ignore: decorator - @inline - export const MFILE: errno = 33; - /** Too many links. */ - // @ts-ignore: decorator - @inline - export const MLINK: errno = 34; - /** Message too large. */ - // @ts-ignore: decorator - @inline - export const MSGSIZE: errno = 35; - /** Reserved. */ - // @ts-ignore: decorator - @inline - export const MULTIHOP: errno = 36; - /** Filename too long. */ - // @ts-ignore: decorator - @inline - export const NAMETOOLONG: errno = 37; - /** Network is down. */ - // @ts-ignore: decorator - @inline - export const NETDOWN: errno = 38; - /** Connection aborted by network. */ - // @ts-ignore: decorator - @inline - export const NETRESET: errno = 39; - /** Network unreachable. */ - // @ts-ignore: decorator - @inline - export const NETUNREACH: errno = 40; - /** Too many files open in system. */ - // @ts-ignore: decorator - @inline - export const NFILE: errno = 41; - /** No buffer space available. */ - // @ts-ignore: decorator - @inline - export const NOBUFS: errno = 42; - /** No such device. */ - // @ts-ignore: decorator - @inline - export const NODEV: errno = 43; - /** No such file or directory. */ - // @ts-ignore: decorator - @inline - export const NOENT: errno = 44; - /** Executable file format error. */ - // @ts-ignore: decorator - @inline - export const NOEXEC: errno = 45; - /** No locks available. */ - // @ts-ignore: decorator - @inline - export const NOLCK: errno = 46; - /** Reserved. */ - // @ts-ignore: decorator - @inline - export const NOLINK: errno = 47; - /** Not enough space. */ - // @ts-ignore: decorator - @inline - export const NOMEM: errno = 48; - /** No message of the desired type. */ - // @ts-ignore: decorator - @inline - export const NOMSG: errno = 49; - /** Protocol not available. */ - // @ts-ignore: decorator - @inline - export const NOPROTOOPT: errno = 50; - /** No space left on device. */ - // @ts-ignore: decorator - @inline - export const NOSPC: errno = 51; - /** Function not supported. */ - // @ts-ignore: decorator - @inline - export const NOSYS: errno = 52; - /** The socket is not connected. */ - // @ts-ignore: decorator - @inline - export const NOTCONN: errno = 53; - /** Not a directory or a symbolic link to a directory. */ - // @ts-ignore: decorator - @inline - export const NOTDIR: errno = 54; - /** Directory not empty. */ - // @ts-ignore: decorator - @inline - export const NOTEMPTY: errno = 55; - /** State not recoverable. */ - // @ts-ignore: decorator - @inline - export const NOTRECOVERABLE: errno = 56; - /** Not a socket. */ - // @ts-ignore: decorator - @inline - export const NOTSOCK: errno = 57; - /** Not supported, or operation not supported on socket. */ - // @ts-ignore: decorator - @inline - export const NOTSUP: errno = 58; - /** Inappropriate I/O control operation. */ - // @ts-ignore: decorator - @inline - export const NOTTY: errno = 59; - /** No such device or address. */ - // @ts-ignore: decorator - @inline - export const NXIO: errno = 60; - /** Value too large to be stored in data type. */ - // @ts-ignore: decorator - @inline - export const OVERFLOW: errno = 61; - /** Previous owner died. */ - // @ts-ignore: decorator - @inline - export const OWNERDEAD: errno = 62; - /** Operation not permitted. */ - // @ts-ignore: decorator - @inline - export const PERM: errno = 63; - /** Broken pipe. */ - // @ts-ignore: decorator - @inline - export const PIPE: errno = 64; - /** Protocol error. */ - // @ts-ignore: decorator - @inline - export const PROTO: errno = 65; - /** Protocol not supported. */ - // @ts-ignore: decorator - @inline - export const PROTONOSUPPORT: errno = 66; - /** Protocol wrong type for socket. */ - // @ts-ignore: decorator - @inline - export const PROTOTYPE: errno = 67; - /** Result too large. */ - // @ts-ignore: decorator - @inline - export const RANGE: errno = 68; - /** Read-only file system. */ - // @ts-ignore: decorator - @inline - export const ROFS: errno = 69; - /** Invalid seek. */ - // @ts-ignore: decorator - @inline - export const SPIPE: errno = 70; - /** No such process. */ - // @ts-ignore: decorator - @inline - export const SRCH: errno = 71; - /** Reserved. */ - // @ts-ignore: decorator - @inline - export const STALE: errno = 72; - /** Connection timed out. */ - // @ts-ignore: decorator - @inline - export const TIMEDOUT: errno = 73; - /** Text file busy. */ - // @ts-ignore: decorator - @inline - export const TXTBSY: errno = 74; - /** Cross-device link. */ - // @ts-ignore: decorator - @inline - export const XDEV: errno = 75; - /** Extension: Capabilities insufficient. */ - // @ts-ignore: decorator - @inline - export const NOTCAPABLE: errno = 76; -} -export type errno = u16; - -/** An event that occurred. */ -@unmanaged export abstract class event { - /** User-provided value that got attached to `subscription#userdata`. */ - userdata: userdata; - /** If non-zero, an error that occurred while processing the subscription request. */ - error: errno; - /* The type of the event that occurred. */ - type: eventtype; - private __padding0: u16; -} - -/** An event that occurred when type is `eventtype.FD_READ` or `eventtype.FD_WRITE`. */ -@unmanaged export class rwevent extends event { - /* The number of bytes available for reading or writing. */ - nbytes: filesize; - /* The state of the file descriptor. */ - flags: eventrwflags; - private __padding1: u32; -} - -/** The state of the file descriptor subscribed to with `eventtype.FD_READ` or `eventtype.FD_WRITE`. */ -export namespace eventrwflags { - /** The peer of this socket has closed or disconnected. */ - // @ts-ignore: decorator - @inline - export const HANGUP: eventrwflags = 1; -} -export type eventrwflags = u16; - -/** Type of a subscription to an event or its occurrence. */ -export namespace eventtype { - /** The time value of clock has reached the timestamp. */ - // @ts-ignore: decorator - @inline - export const CLOCK: eventtype = 0; - /** File descriptor has data available for reading. */ - // @ts-ignore: decorator - @inline - export const FD_READ: eventtype = 1; - /** File descriptor has capacity available for writing */ - // @ts-ignore: decorator - @inline - export const FD_WRITE: eventtype = 2; -} -export type eventtype = u8; - -/** Exit code generated by a process when exiting. */ -export type exitcode = u32; - -/** A file descriptor number. */ -export type fd = u32; - -/** File descriptor flags. */ -export namespace fdflags { - /** Append mode: Data written to the file is always appended to the file's end. */ - // @ts-ignore: decorator - @inline - export const APPEND: fdflags = 1; - /** Write according to synchronized I/O data integrity completion. Only the data stored in the file is synchronized. */ - // @ts-ignore: decorator - @inline - export const DSYNC: fdflags = 2; - /** Non-blocking mode. */ - // @ts-ignore: decorator - @inline - export const NONBLOCK: fdflags = 4; - /** Synchronized read I/O operations. */ - // @ts-ignore: decorator - @inline - export const RSYNC: fdflags = 8; - /** Write according to synchronized I/O file integrity completion. */ - // @ts-ignore: decorator - @inline - export const SYNC: fdflags = 16; -} -export type fdflags = u16; - -/** File descriptor attributes. */ -@unmanaged export class fdstat { - /** File type. */ - filetype: filetype; - /** File descriptor flags. */ - flags: fdflags; - /** Rights that apply to this file descriptor. */ - rights_base: rights; - /** Maximum set of rights that may be installed on new file descriptors that are created through this file descriptor, e.g., through `path_open`. */ - rights_inheriting: rights; -} - -/** Relative offset within a file. */ -export type filedelta = i64; - -/** Non-negative file size or length of a region within a file. */ -export type filesize = u64; - -/** File attributes. */ -@unmanaged export class filestat { - /** Device ID of device containing the file. */ - dev: device; - /** File serial number. */ - ino: inode; - /** File type. */ - filetype: filetype; - /** Number of hard links to the file. */ - nlink: linkcount; - /** For regular files, the file size in bytes. For symbolic links, the length in bytes of the pathname contained in the symbolic link. */ - size: filesize; - /** Last data access timestamp. */ - atim: timestamp; - /** Last data modification timestamp. */ - mtim: timestamp; - /** Last file status change timestamp. */ - ctim: timestamp; -} - -/** The type of a file descriptor or file. */ -export namespace filetype { - /** The type of the file descriptor or file is unknown or is different from any of the other types specified. */ - // @ts-ignore: decorator - @inline - export const UNKNOWN: filetype = 0; - /** The file descriptor or file refers to a block device inode. */ - // @ts-ignore: decorator - @inline - export const BLOCK_DEVICE: filetype = 1; - /** The file descriptor or file refers to a character device inode. */ - // @ts-ignore: decorator - @inline - export const CHARACTER_DEVICE: filetype = 2; - /** The file descriptor or file refers to a directory inode. */ - // @ts-ignore: decorator - @inline - export const DIRECTORY: filetype = 3; - /** The file descriptor or file refers to a regular file inode. */ - // @ts-ignore: decorator - @inline - export const REGULAR_FILE: filetype = 4; - /** The file descriptor or file refers to a datagram socket. */ - // @ts-ignore: decorator - @inline - export const SOCKET_DGRAM: filetype = 5; - /** The file descriptor or file refers to a byte-stream socket. */ - // @ts-ignore: decorator - @inline - export const SOCKET_STREAM: filetype = 6; - /** The file refers to a symbolic link inode. */ - // @ts-ignore: decorator - @inline - export const SYMBOLIC_LINK: filetype = 7; -} -export type filetype = u8; - -/** Which file time attributes to adjust. */ -export namespace fstflags { - /** Adjust the last data access timestamp to the value stored in `filestat#st_atim`. */ - // @ts-ignore: decorator - @inline - export const SET_ATIM: fstflags = 1; - /** Adjust the last data access timestamp to the time of clock `clockid.REALTIME`. */ - // @ts-ignore: decorator - @inline - export const SET_ATIM_NOW: fstflags = 2; - /** Adjust the last data modification timestamp to the value stored in `filestat#st_mtim`. */ - // @ts-ignore: decorator - @inline - export const SET_MTIM: fstflags = 4; - /** Adjust the last data modification timestamp to the time of clock `clockid.REALTIME`. */ - // @ts-ignore: decorator - @inline - export const SET_MTIM_NOW: fstflags = 8; -} -export type fstflags = u16; - -/** File serial number that is unique within its file system. */ -export type inode = u64; - -/** A region of memory for scatter/gather reads. */ -@unmanaged export class iovec { - /** The address of the buffer to be filled. */ - buf: usize; - /** The length of the buffer to be filled. */ - buf_len: usize; -} - -/** Number of hard links to an inode. */ -export type linkcount = u32; - -/** Flags determining the method of how paths are resolved. */ -export namespace lookupflags { - /** As long as the resolved path corresponds to a symbolic link, it is expanded. */ - // @ts-ignore: decorator - @inline - export const SYMLINK_FOLLOW: lookupflags = 1; -} -export type lookupflags = u32; - -/** Open flags. */ -export namespace oflags { - /** Create file if it does not exist. */ - // @ts-ignore: decorator - @inline - export const CREAT: oflags = 1; - /** Fail if not a directory. */ - // @ts-ignore: decorator - @inline - export const DIRECTORY: oflags = 2; - /** Fail if file already exists. */ - // @ts-ignore: decorator - @inline - export const EXCL: oflags = 4; - /** Truncate file to size 0. */ - // @ts-ignore: decorator - @inline - export const TRUNC: oflags = 8; -} -export type oflags = u16; - -// TODO: undocumented -export namespace preopentype { - // @ts-ignore: decorator - @inline - export const DIR: preopentype = 0; -} -export type preopentype = u8; - -// TODO: undocumented -export abstract class prestat { - type: preopentype; -} - -// TODO: undocumented -export class dirprestat extends prestat { - name_len: usize; -} - -/** Flags provided to `sock_recv`. */ -export namespace riflags { - /** Returns the message without removing it from the socket's receive queue. */ - // @ts-ignore: decorator - @inline - export const PEEK: riflags = 1; - /** On byte-stream sockets, block until the full amount of data can be returned. */ - // @ts-ignore: decorator - @inline - export const WAITALL: riflags = 2; -} -export type riflags = u16; - -/** File descriptor rights, determining which actions may be performed. */ -export namespace rights { - /** The right to invoke `fd_datasync`. */ - // @ts-ignore: decorator - @inline - export const FD_DATASYNC: rights = 1; - /** The right to invoke `fd_read` and `sock_recv`. */ - // @ts-ignore: decorator - @inline - export const FD_READ: rights = 2; - /** The right to invoke `fd_seek`. This flag implies `rights.FD_TELL`. */ - // @ts-ignore: decorator - @inline - export const FD_SEEK: rights = 4; - /** The right to invoke `fd_fdstat_set_flags`. */ - // @ts-ignore: decorator - @inline - export const FD_FDSTAT_SET_FLAGS: rights = 8; - /** The right to invoke `fd_sync`. */ - // @ts-ignore: decorator - @inline - export const FD_SYNC: rights = 16; - /** The right to invoke `fd_seek` in such a way that the file offset remains unaltered (i.e., `whence.CUR` with offset zero), or to invoke `fd_tell`). */ - // @ts-ignore: decorator - @inline - export const FD_TELL: rights = 32; - /** The right to invoke `fd_write` and `sock_send`. If `rights.FD_SEEK` is set, includes the right to invoke `fd_pwrite`. */ - // @ts-ignore: decorator - @inline - export const FD_WRITE: rights = 64; - /** The right to invoke `fd_advise`. */ - // @ts-ignore: decorator - @inline - export const FD_ADVISE: rights = 128; - /** The right to invoke `fd_allocate`. */ - // @ts-ignore: decorator - @inline - export const FD_ALLOCATE: rights = 256; - /** The right to invoke `path_create_directory`. */ - // @ts-ignore: decorator - @inline - export const PATH_CREATE_DIRECTORY: rights = 512; - /** If `rights.PATH_OPEN` is set, the right to invoke `path_open` with `oflags.CREAT`. */ - // @ts-ignore: decorator - @inline - export const PATH_CREATE_FILE: rights = 1024; - /** The right to invoke `path_link` with the file descriptor as the source directory. */ - // @ts-ignore: decorator - @inline - export const PATH_LINK_SOURCE: rights = 2048; - /** The right to invoke `path_link` with the file descriptor as the target directory. */ - // @ts-ignore: decorator - @inline - export const PATH_LINK_TARGET: rights = 4096; - /** The right to invoke `path_open`. */ - // @ts-ignore: decorator - @inline - export const PATH_OPEN: rights = 8192; - /** The right to invoke `fd_readdir`. */ - // @ts-ignore: decorator - @inline - export const FD_READDIR: rights = 16384; - /** The right to invoke `path_readlink`. */ - // @ts-ignore: decorator - @inline - export const PATH_READLINK: rights = 32768; - /** The right to invoke `path_rename` with the file descriptor as the source directory. */ - // @ts-ignore: decorator - @inline - export const PATH_RENAME_SOURCE: rights = 65536; - /** The right to invoke `path_rename` with the file descriptor as the target directory. */ - // @ts-ignore: decorator - @inline - export const PATH_RENAME_TARGET: rights = 131072; - /** The right to invoke `path_filestat_get`. */ - // @ts-ignore: decorator - @inline - export const PATH_FILESTAT_GET: rights = 262144; - /** The right to change a file's size (there is no `path_filestat_set_size`). If `rights.PATH_OPEN` is set, includes the right to invoke `path_open` with `oflags.TRUNC`. */ - // @ts-ignore: decorator - @inline - export const PATH_FILESTAT_SET_SIZE: rights = 524288; - /** The right to invoke `path_filestat_set_times`. */ - // @ts-ignore: decorator - @inline - export const PATH_FILESTAT_SET_TIMES: rights = 1048576; - /** The right to invoke `fd_filestat_get`. */ - // @ts-ignore: decorator - @inline - export const FD_FILESTAT_GET: rights = 2097152; - /** The right to invoke `fd_filestat_set_size`. */ - // @ts-ignore: decorator - @inline - export const FD_FILESTAT_SET_SIZE: rights = 4194304; - /** The right to invoke `fd_filestat_set_times`. */ - // @ts-ignore: decorator - @inline - export const FD_FILESTAT_SET_TIMES: rights = 8388608; - /** The right to invoke `path_symlink`. */ - // @ts-ignore: decorator - @inline - export const RIGHT_PATH_SYMLINK: rights = 16777216; - /** The right to invoke `path_remove_directory`. */ - // @ts-ignore: decorator - @inline - export const PATH_REMOVE_DIRECTORY: rights = 33554432; - /** The right to invoke `path_unlink_file`. */ - // @ts-ignore: decorator - @inline - export const PATH_UNLINK_FILE: rights = 67108864; - /** If `rights.FD_READ` is set, includes the right to invoke `poll_oneoff` to subscribe to `eventtype.FD_READ`. If `rights.FD_WRITE` is set, includes the right to invoke `poll_oneoff` to subscribe to `eventtype.FD_WRITE`. */ - // @ts-ignore: decorator - @inline - export const POLL_FD_READWRITE: rights = 134217728; - /** The right to invoke `sock_shutdown`. */ - // @ts-ignore: decorator - @inline - export const SOCK_SHUTDOWN: rights = 268435456; -} -export type rights = u64; - -/** Flags returned by `sock_recv`. */ -export namespace roflags { - /** Message data has been truncated. */ - // @ts-ignore: decorator - @inline - export const DATA_TRUNCATED: roflags = 1; -} -export type roflags = u16; - -/** Which channels on a socket to shut down. */ -export namespace sdflags { - /** Disables further receive operations. */ - // @ts-ignore: decorator - @inline - export const RD: sdflags = 1; - /** Disables further send operations. */ - // @ts-ignore: decorator - @inline - export const WR: sdflags = 2; -} -export type sdflags = u8; - -/** Flags provided to `sock_send`. */ -export namespace siflags { - // As there are currently no flags defined, it must be set to zero. -} -export type siflags = u16; - -/** Signal condition. */ -export namespace signal { - /** Hangup. */ - // @ts-ignore: decorator - @inline - export const HUP: signal = 1; - /** Terminate interrupt signal. */ - // @ts-ignore: decorator - @inline - export const INT: signal = 2; - /** Terminal quit signal. */ - // @ts-ignore: decorator - @inline - export const QUIT: signal = 3; - /** Illegal instruction. */ - // @ts-ignore: decorator - @inline - export const ILL: signal = 4; - /** Trace/breakpoint trap. */ - // @ts-ignore: decorator - @inline - export const TRAP: signal = 5; - /** Process abort signal. */ - // @ts-ignore: decorator - @inline - export const ABRT: signal = 6; - /** Access to an undefined portion of a memory object. */ - // @ts-ignore: decorator - @inline - export const BUS: signal = 7; - /** Erroneous arithmetic operation. */ - // @ts-ignore: decorator - @inline - export const FPE: signal = 8; - /** Kill. */ - // @ts-ignore: decorator - @inline - export const KILL: signal = 9; - /** User-defined signal 1. */ - // @ts-ignore: decorator - @inline - export const USR1: signal = 10; - /** Invalid memory reference. */ - // @ts-ignore: decorator - @inline - export const SEGV: signal = 11; - /** User-defined signal 2. */ - // @ts-ignore: decorator - @inline - export const USR2: signal = 12; - /** Write on a pipe with no one to read it. */ - // @ts-ignore: decorator - @inline - export const PIPE: signal = 13; - /** Alarm clock. */ - // @ts-ignore: decorator - @inline - export const ALRM: signal = 14; - /** Termination signal. */ - // @ts-ignore: decorator - @inline - export const TERM: signal = 15; - /** Child process terminated, stopped, or continued. */ - // @ts-ignore: decorator - @inline - export const CHLD: signal = 16; - /** Continue executing, if stopped. */ - // @ts-ignore: decorator - @inline - export const CONT: signal = 17; - /** Stop executing. */ - // @ts-ignore: decorator - @inline - export const STOP: signal = 18; - /** Terminal stop signal. */ - // @ts-ignore: decorator - @inline - export const TSTP: signal = 19; - /** Background process attempting read. */ - // @ts-ignore: decorator - @inline - export const TTIN: signal = 20; - /** Background process attempting write. */ - // @ts-ignore: decorator - @inline - export const TTOU: signal = 21; - /** High bandwidth data is available at a socket. */ - // @ts-ignore: decorator - @inline - export const URG: signal = 22; - /** CPU time limit exceeded. */ - // @ts-ignore: decorator - @inline - export const XCPU: signal = 23; - /** File size limit exceeded. */ - // @ts-ignore: decorator - @inline - export const XFSZ: signal = 24; - /** Virtual timer expired. */ - // @ts-ignore: decorator - @inline - export const VTALRM: signal = 25; - // @ts-ignore: decorator - @inline - export const PROF: signal = 26; - // @ts-ignore: decorator - @inline - export const WINCH: signal = 27; - // @ts-ignore: decorator - @inline - export const POLL: signal = 28; - // @ts-ignore: decorator - @inline - export const PWR: signal = 29; - /** Bad system call. */ - // @ts-ignore: decorator - @inline - export const SYS: signal = 30; -} -export type signal = u8; - -/** Flags determining how to interpret the timestamp provided in `subscription_t::u.clock.timeout. */ -export namespace subclockflags { - /** If set, treat the timestamp provided in `clocksubscription` as an absolute timestamp. */ - // @ts-ignore: decorator - @inline - export const ABSTIME: subclockflags = 1; -} -export type subclockflags = u16; - -/** Subscription to an event. */ -@unmanaged export abstract class subscription { - /** User-provided value that is attached to the subscription. */ - userdata: userdata; - /** The type of the event to which to subscribe. */ - type: eventtype; - private __padding0: u32; -} - -/* Subscription to an event of type `eventtype.CLOCK`.**/ -@unmanaged export class clocksubscription extends subscription { - /** The user-defined unique identifier of the clock. */ - identifier: userdata; - /** The clock against which to compare the timestamp. */ - clock_id: clockid; - /** The absolute or relative timestamp. */ - timeout: timestamp; - /** The amount of time that the implementation may wait additionally to coalesce with other events. */ - precision: timestamp; - /** Flags specifying whether the timeout is absolute or relative. */ - flags: subclockflags; - private __padding1: u32; -} - -/* Subscription to an event of type `eventtype.FD_READ` or `eventtype.FD_WRITE`.**/ -@unmanaged export class fdsubscription extends subscription { - /** The file descriptor on which to wait for it to become ready for reading or writing. */ - fd: fd; -} - -/** Timestamp in nanoseconds. */ -export type timestamp = u64; - -/** User-provided value that may be attached to objects that is retained when extracted from the implementation. */ -export type userdata = u64; - -/** The position relative to which to set the offset of the file descriptor. */ -export namespace whence { - /** Seek relative to current position. */ - // @ts-ignore: decorator - @inline - export const CUR: whence = 0; - /** Seek relative to end-of-file. */ - // @ts-ignore: decorator - @inline - export const END: whence = 1; - /** Seek relative to start-of-file. */ - // @ts-ignore: decorator - @inline - export const SET: whence = 2; -} -export type whence = u8; \ No newline at end of file diff --git a/std/assembly/crypto.ts b/std/assembly/crypto.ts index d49301bed4..6a57cbac59 100644 --- a/std/assembly/crypto.ts +++ b/std/assembly/crypto.ts @@ -1,19 +1,9 @@ -import { - errnoToString, - random_get -} from "bindings/wasi_snapshot_preview1"; - import { crypto as crypto_binding } from "bindings/dom"; export namespace crypto { export function getRandomValues(array: Uint8Array): void { - if (isDefined(ASC_WASI)) { - let err = random_get(changetype(array.buffer) + array.byteOffset, array.byteLength); - if (err) throw new Error(errnoToString(err)); - } else { - crypto_binding.getRandomValues(array); - } + crypto_binding.getRandomValues(array); } } diff --git a/std/assembly/performance.ts b/std/assembly/performance.ts index b53ddb5ae5..201f4ad210 100644 --- a/std/assembly/performance.ts +++ b/std/assembly/performance.ts @@ -1,22 +1,9 @@ -import { - clock_time_get, - clockid, - errnoToString, - tempbuf -} from "bindings/wasi"; - import { performance as performance_binding } from "bindings/dom"; export namespace performance { export function now(): f64 { - if (isDefined(ASC_WASI)) { - let err = clock_time_get(clockid.MONOTONIC, 1000, tempbuf); // TODO: more precision? - if (err) throw new Error(errnoToString(err)); - return load(tempbuf) / 1000000; - } else { - return performance_binding.now(); - } + return performance_binding.now(); } } diff --git a/std/assembly/process.ts b/std/assembly/process.ts index e728e44061..61cba8d06a 100644 --- a/std/assembly/process.ts +++ b/std/assembly/process.ts @@ -1,19 +1,3 @@ -import { - args_get, - args_sizes_get, - environ_get, - environ_sizes_get, - proc_exit, - fd_write, - fd_close, - fd_read, - clock_time_get, - clockid, - errnoToString, - fd, - tempbuf -} from "bindings/wasi"; - import { Date as Date_binding, performance as performance_binding @@ -23,10 +7,6 @@ import { process as process_binding } from "bindings/node"; -import { - E_INDEXOUTOFRANGE -} from "util/error"; - export namespace process { // @ts-ignore: decorator @@ -45,11 +25,7 @@ export namespace process { @lazy export var exitCode = 0; export function exit(code: i32 = exitCode): void { - if (isDefined(ASC_WASI)) { - proc_exit(code); - } else { - process_binding.exit(code); - } + process_binding.exit(code); } // @ts-ignore: decorator @@ -60,164 +36,22 @@ export namespace process { @lazy export const stderr = changetype(2); export function time(): i64 { - if (isDefined(ASC_WASI)) { - let err = clock_time_get(clockid.REALTIME, 1000000, tempbuf); - if (err) throw new Error(errnoToString(err)); - return load(tempbuf) / 1000000; - } else { - return Date_binding.now(); - } + return Date_binding.now(); } export function hrtime(): u64 { - if (isDefined(ASC_WASI)) { - let err = clock_time_get(clockid.MONOTONIC, 0, tempbuf); - if (err) throw new Error(errnoToString(err)); - return load(tempbuf); - } else { - let now = performance_binding.now(); - let millis = now; - let fraction = now - millis; - return millis * 1000000 + (fraction * 1000000); - } + let now = performance_binding.now(); + let millis = now; + let fraction = now - millis; + return millis * 1000000 + (fraction * 1000000); } } function lazyArgv(): string[] { - if (isDefined(ASC_WASI)) { - let err = args_sizes_get(tempbuf, tempbuf + sizeof()); - if (err) throw new Error(errnoToString(err)); - let count = load(tempbuf); - let ptrsSize = count * sizeof(); - let dataSize = load(tempbuf, sizeof()); - let bufSize = ptrsSize + dataSize; - let buf = __alloc(bufSize); - err = args_get(buf, buf + ptrsSize); - if (err) throw new Error(errnoToString(err)); - let count32 = count; - let argv = new Array(count32); - for (let i = 0; i < count32; ++i) { - let ptr = load(buf + i * sizeof()); - let str = String.UTF8.decodeUnsafe(ptr, ptr + bufSize - buf, true); - argv[i] = str; - } - __free(buf); - return argv; - } else { - return process_binding.argv; - } + return process_binding.argv; } function lazyEnv(): Map { - if (isDefined(ASC_WASI)) { - let err = environ_sizes_get(tempbuf, tempbuf + 4); - if (err) throw new Error(errnoToString(err)); - let count = load(tempbuf); - let ptrsSize = count * sizeof(); - let dataSize = load(tempbuf, sizeof()); - let bufSize = ptrsSize + dataSize; - let buf = __alloc(bufSize); - err = environ_get(buf, buf + ptrsSize); - if (err) throw new Error(errnoToString(err)); - let env = new Map(); - for (let i: usize = 0; i < count; ++i) { - let ptr = load(buf + i * sizeof()); - let str = String.UTF8.decodeUnsafe(ptr, ptr + bufSize - buf, true); - let pos = str.indexOf("="); - if (~pos) { - env.set(str.substring(0, pos), str.substring(pos + 1)); - // __dispose(changetype(str)); - } else { - env.set(str, ""); - } - } - __free(buf); - return env; - } else { - // TODO: What about Node? - return new Map(); - } -} - -@unmanaged -abstract class Stream { - close(): void { - var err = fd_close(changetype(this)); - if (err) throw new Error(errnoToString(err)); - } -} - -@unmanaged -abstract class WritableStream extends Stream { - write(data: T): void { - if (isString()) { - writeString(changetype(this), changetype(data)); - } else if (data instanceof ArrayBuffer) { - writeBuffer(changetype(this), data); - } else { - ERROR("String or ArrayBuffer expected"); - } - } -} - -@unmanaged -abstract class ReadableStream extends Stream { - read(buffer: ArrayBuffer, offset: isize = 0): i32 { - var end = buffer.byteLength; - if (offset < 0 || offset > end) { - throw new Error(E_INDEXOUTOFRANGE); - } - store(tempbuf, changetype(buffer) + offset); - store(tempbuf, end - offset, sizeof()); - var err = fd_read(changetype(this), tempbuf, 1, tempbuf + 2 * sizeof()); - if (err) throw new Error(errnoToString(err)); - return load(tempbuf, 2 * sizeof()); - } -} - -function writeBuffer(fd: fd, data: ArrayBuffer): void { - store(tempbuf, changetype(data)); - store(tempbuf, data.byteLength, sizeof()); - var err = fd_write(fd, tempbuf, 1, tempbuf + 2 * sizeof()); - if (err) throw new Error(errnoToString(err)); -} - -function writeString(fd: fd, data: string): void { - var len = data.length; - var - char2: u32 = 0, - char3: u32 = 0, - char4: u32 = 0; - switch (len) { - case 4: { // "null" - char4 = load(changetype(data), 6); - if (char4 >= 0x80) break; - } - case 3: { // "ms\n" - char3 = load(changetype(data), 4); - if (char3 >= 0x80) break; - } - case 2: { // "\r\n" - char2 = load(changetype(data), 2); - if (char2 >= 0x80) break; - } - case 1: { // "\n" - let char1 = load(changetype(data)); - if (char1 >= 0x80) break; - store(tempbuf, tempbuf + 2 * sizeof()); - store(tempbuf, len, sizeof()); - store(tempbuf, char1 | char2 << 8 | char3 << 16 | char4 << 24, 2 * sizeof()); - let err = fd_write(fd, tempbuf, 1, tempbuf + 3 * sizeof()); - if (err) throw new Error(errnoToString(err)); - } - case 0: return; - } - var utf8len = String.UTF8.byteLength(data); - var utf8buf = __alloc(utf8len); - assert(String.UTF8.encodeUnsafe(changetype(data), len, utf8buf) == utf8len); - store(tempbuf, utf8buf); - store(tempbuf, utf8len, sizeof()); - var err = fd_write(fd, tempbuf, 1, tempbuf + 2 * sizeof()); - __free(utf8buf); - if (err) throw new Error(errnoToString(err)); + // TODO: What about Node? + return new Map(); } diff --git a/std/assembly/wasi/index.ts b/std/assembly/wasi/index.ts deleted file mode 100644 index d84fedbef5..0000000000 --- a/std/assembly/wasi/index.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { - proc_exit, - fd_write, - iovec, - random_get, - tempbuf -} from "bindings/wasi"; - -import { - MAX_DOUBLE_LENGTH, - decimalCount32, - dtoa_buffered -} from "util/number"; - -// @ts-ignore: decorator -@global @inline const ASC_WASI = true; // eslint-disable-line @typescript-eslint/no-unused-vars - -function abort( // eslint-disable-line @typescript-eslint/no-unused-vars - 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( // eslint-disable-line @typescript-eslint/no-unused-vars - 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))); - 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_buffered(bufPtr, a0), bufPtr); - fd_write(2, iovPtr, 1, lenPtr); - if (n > 1) { - changetype(iovPtr).buf_len = 1 + String.UTF8.encodeUnsafe(bufPtr, dtoa_buffered(bufPtr, a1), bufPtr); - fd_write(2, iovPtr, 1, lenPtr); - if (n > 2) { - changetype(iovPtr).buf_len = 1 + String.UTF8.encodeUnsafe(bufPtr, dtoa_buffered(bufPtr, a2), bufPtr); - fd_write(2, iovPtr, 1, lenPtr); - if (n > 3) { - changetype(iovPtr).buf_len = 1 + String.UTF8.encodeUnsafe(bufPtr, dtoa_buffered(bufPtr, a3), bufPtr); - fd_write(2, iovPtr, 1, lenPtr); - if (n > 4) { - changetype(iovPtr).buf_len = 1 + String.UTF8.encodeUnsafe(bufPtr, dtoa_buffered(bufPtr, 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 { // eslint-disable-line @typescript-eslint/no-unused-vars - var rand: u64; - do { - random_get(tempbuf, 8); - rand = load(tempbuf); - } while (!rand); - return reinterpret(rand); -} - -export * from "bindings/wasi"; diff --git a/tests/compiler.js b/tests/compiler.js index 510b788a63..84cf0928f7 100644 --- a/tests/compiler.js +++ b/tests/compiler.js @@ -5,7 +5,6 @@ import v8 from "v8"; import cluster from "cluster"; import { createRequire } from "module"; import { fileURLToPath, pathToFileURL } from "url"; -import { WASI } from "wasi"; import glob from "glob"; import { stderrColors, stdoutColors } from "../util/terminal.js"; import * as optionsUtil from "../util/options.js"; @@ -292,13 +291,13 @@ async function runTest(basename) { instantiateDebug.end(SKIPPED); } else { - if (!await testInstantiate(debugBuffer, glue, stderr, config.asc_wasi)) { + if (!await testInstantiate(debugBuffer, glue, stderr)) { instantiateDebug.end(FAILURE); return prepareResult(FAILURE, "instantiate error (debug)"); } instantiateDebug.end(SUCCESS); const instantiateRelease = section("instantiate release"); - if (!await testInstantiate(releaseBuffer, glue, stderr, config.asc_wasi)) { + if (!await testInstantiate(releaseBuffer, glue, stderr)) { instantiateRelease.end(FAILURE); return prepareResult(FAILURE, "instantiate error (release)"); } @@ -335,7 +334,7 @@ async function runTest(basename) { const rtracedBuffer = stdout.toBuffer(); const instantiateRtrace = section("instantiate rtrace"); - if (!await testInstantiate(rtracedBuffer, glue, stderr, config.asc_wasi)) { + if (!await testInstantiate(rtracedBuffer, glue, stderr)) { instantiateRtrace.end(FAILURE); return prepareResult(FAILURE, "rtrace error"); } @@ -346,7 +345,7 @@ async function runTest(basename) { } // Tests if instantiation of a module succeeds -async function testInstantiate(binaryBuffer, glue, stderr, wasiOptions) { +async function testInstantiate(binaryBuffer, glue, stderr) { var failed = false; try { const memory = new WebAssembly.Memory({ initial: 10 }); @@ -421,8 +420,6 @@ async function testInstantiate(binaryBuffer, glue, stderr, wasiOptions) { await glue.preInstantiate(imports, exports); console.log(" [return glue.preInstantiate] " + measureEnd(start)); } - const wasi = wasiOptions ? new WASI(wasiOptions) : null; - if (wasi) imports.wasi_snapshot_preview1 = wasi.wasiImport; const { instance } = await WebAssembly.instantiate(binaryBuffer, imports); Object.setPrototypeOf(exports, instance.exports); if (glue.postInstantiate) { @@ -431,12 +428,7 @@ async function testInstantiate(binaryBuffer, glue, stderr, wasiOptions) { await glue.postInstantiate(instance); console.log(" [return glue.postInstantiate] " + measureEnd(start)); } - if (wasi) { - console.log(" [invoke wasi.start]"); - const start = measureStart(); - const code = wasi.start(instance); - console.log(" [return wasi.start] code=" + code + ", " + measureEnd(start)); - } else if (exports._start) { + if (exports._start) { console.log(" [invoke exports._start]"); const start = measureStart(); exports._start(); diff --git a/tests/compiler/std-wasi/console.debug.wat b/tests/compiler/std-wasi/console.debug.wat deleted file mode 100644 index 77615d0d66..0000000000 --- a/tests/compiler/std-wasi/console.debug.wat +++ /dev/null @@ -1,6318 +0,0 @@ -(module - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_none (func (param i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_none (func)) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_i64_i32_=>_none (func (param i32 i64 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 $none_=>_i32 (func (result i32))) - (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) - (type $none_=>_i64 (func (result i64))) - (type $i32_i64_=>_none (func (param i32 i64))) - (type $i32_i32_=>_i64 (func (param i32 i32) (result i64))) - (type $i64_=>_i32 (func (param i64) (result i32))) - (type $i32_i64_i32_i32_=>_none (func (param i32 i64 i32 i32))) - (type $i32_i32_i64_=>_i32 (func (param i32 i32 i64) (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))) - (import "wasi_snapshot_preview1" "clock_time_get" (func $~lib/bindings/wasi_snapshot_preview1/clock_time_get (param i32 i64 i32) (result i32))) - (global $~lib/process/process.stderr i32 (i32.const 2)) - (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) - (global $~lib/bindings/wasi/tempbuf i32 (i32.const 112)) - (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/process/process.stdout i32 (i32.const 1)) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/console/timers (mut i32) (i32.const 0)) - (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) - (global $~lib/rt/__rtti_base i32 (i32.const 6912)) - (global $~lib/memory/__data_end i32 (i32.const 6948)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23332)) - (global $~lib/memory/__heap_base i32 (i32.const 23332)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 12) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00w\00h\00o\00o\00p\00s\00") - (data (i32.const 44) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00 \00f\00a\00i\00l\00e\00d\00:\00 \00\00\00\00\00\00\00\00\00") - (data (i32.const 112) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 140) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data (i32.const 252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G\00") - (data (i32.const 332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00C\00C\00E\00S\00\00\00") - (data (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L\00\00\00\00\00") - (data (i32.const 460) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T\00\00\00\00\00\00\00") - (data (i32.const 508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00G\00A\00I\00N\00\00\00") - (data (i32.const 540) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 588) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00A\00D\00F\00\00\00\00\00") - (data (i32.const 620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G\00") - (data (i32.const 652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00U\00S\00Y\00\00\00\00\00") - (data (i32.const 684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00C\00H\00I\00L\00D\00\00\00") - (data (i32.const 764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D\00\00\00\00\00\00\00") - (data (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D\00\00\00\00\00\00\00") - (data (i32.const 860) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K\00") - (data (i32.const 940) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q\00\00\00\00\00\00\00") - (data (i32.const 988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00D\00O\00M\00\00\00\00\00\00\00") - (data (i32.const 1020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T\00\00\00") - (data (i32.const 1052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00E\00X\00I\00S\00T\00\00\00") - (data (i32.const 1084) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00F\00A\00U\00L\00T\00\00\00") - (data (i32.const 1116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00F\00B\00I\00G\00\00\00\00\00") - (data (i32.const 1148) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00") - (data (i32.const 1196) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00D\00R\00M\00\00\00\00\00") - (data (i32.const 1228) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q\00\00\00") - (data (i32.const 1260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S\00\00\00\00\00\00\00\00\00") - (data (i32.const 1308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00N\00T\00R\00\00\00\00\00") - (data (i32.const 1340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00N\00V\00A\00L\00\00\00") - (data (i32.const 1372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00I\00O\00\00\00\00\00\00\00\00\00") - (data (i32.const 1404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N\00") - (data (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00S\00D\00I\00R\00\00\00") - (data (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00L\00O\00O\00P\00\00\00\00\00") - (data (i32.const 1500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00F\00I\00L\00E\00\00\00") - (data (i32.const 1532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00L\00I\00N\00K\00\00\00") - (data (i32.const 1564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1612) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1660) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G\00\00\00\00\00\00\00") - (data (i32.const 1708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00\00\00") - (data (i32.const 1852) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00F\00I\00L\00E\00\00\00") - (data (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S\00") - (data (i32.const 1916) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00D\00E\00V\00\00\00") - (data (i32.const 1948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00E\00N\00T\00\00\00") - (data (i32.const 1980) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C\00") - (data (i32.const 2012) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00L\00C\00K\00\00\00") - (data (i32.const 2044) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K\00") - (data (i32.const 2076) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00E\00M\00\00\00") - (data (i32.const 2108) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00S\00G\00\00\00") - (data (i32.const 2140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T\00\00\00\00\00\00\00\00\00") - (data (i32.const 2188) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00P\00C\00\00\00") - (data (i32.const 2220) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S\00\00\00") - (data (i32.const 2252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R\00") - (data (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E\00") - (data (i32.const 2428) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2476) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P\00") - (data (i32.const 2508) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y\00\00\00") - (data (i32.const 2540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00N\00X\00I\00O\00\00\00\00\00") - (data (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2620) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00E\00R\00M\00\00\00\00\00") - (data (i32.const 2700) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00I\00P\00E\00\00\00\00\00") - (data (i32.const 2732) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00P\00R\00O\00T\00O\00\00\00") - (data (i32.const 2764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T\00") - (data (i32.const 2812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00R\00A\00N\00G\00E\00\00\00") - (data (i32.const 2892) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00R\00O\00F\00S\00\00\00\00\00") - (data (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00P\00I\00P\00E\00\00\00") - (data (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00S\00R\00C\00H\00\00\00\00\00") - (data (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00T\00A\00L\00E\00\00\00") - (data (i32.const 3020) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y\00") - (data (i32.const 3100) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00X\00D\00E\00V\00\00\00\00\00") - (data (i32.const 3132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E\00\00\00\00\00\00\00\00\00") - (data (i32.const 3180) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3228) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3292) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3356) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 3420) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00p\00h\00e\00w\00\00\00\00\00") - (data (i32.const 3484) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00h\00e\00l\00l\00o\00 \00l\00o\00g\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3532) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00d\00e\00b\00u\00g\00\00\00\00\00\00\00") - (data (i32.const 3580) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00D\00e\00b\00u\00g\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00i\00n\00f\00o\00\00\00\00\00\00\00\00\00") - (data (i32.const 3676) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00n\00f\00o\00:\00 \00") - (data (i32.const 3708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00w\00a\00r\00n\00\00\00\00\00\00\00\00\00") - (data (i32.const 3756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00e\00r\00r\00o\00r\00\00\00\00\00\00\00") - (data (i32.const 3852) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00E\00r\00r\00o\00r\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3900) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00s\00o\00m\00e\00L\00a\00b\00e\00l\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3948) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4016) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4048) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4076) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 4140) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 4192) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4220) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 4268) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4332) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00L\00a\00b\00e\00l\00 \00\'\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4396) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\00\'\00 \00a\00l\00r\00e\00a\00d\00y\00 \00e\00x\00i\00s\00t\00s\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00(\00)\00\n\00\00\00\00\00") - (data (i32.const 4492) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00N\00o\00 \00s\00u\00c\00h\00 \00l\00a\00b\00e\00l\00 \00\'\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4572) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00L\00o\00g\00(\00)\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4652) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") - (data (i32.const 4716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4764) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") - (data (i32.const 4892) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4988) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 5388) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6444) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") - (data (i32.const 6540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00:\00 \00\00\00\00\00\00\00\00\00") - (data (i32.const 6572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00m\00s\00\n\00\00\00\00\00\00\00") - (data (i32.const 6604) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00E\00n\00d\00(\00)\00\n\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6684) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00w\00r\00o\00n\00g\00L\00a\00b\00e\00l\00\00\00\00\00\00\00\00\00") - (data (i32.const 6732) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00L\00a\00b\00e\00l\00") - (data (i32.const 6780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\001\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\001\002\00\00\00\00\00\00\00\00\00") - (data (i32.const 6844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\001\002\003\00\00\00\00\00\00\00") - (data (i32.const 6876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\001\002\003\004\00\00\00\00\00") - (data (i32.const 6912) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\10\02\82\00\00\00\00\00") - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "memory" (memory $0)) - (export "_start" (func $~start)) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - ) - (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/util/string/compareImpl (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) - (local $8 i32) - (local $9 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - i32.const 0 - i32.const 2 - i32.lt_s - drop - local.get $4 - i32.const 4 - i32.ge_u - if (result i32) - local.get $5 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.or - i32.eqz - else - i32.const 0 - end - if - block $do-break|0 - loop $do-loop|0 - local.get $5 - i64.load - local.get $6 - i64.load - i64.ne - if - br $do-break|0 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $6 - i32.const 8 - i32.add - local.set $6 - local.get $4 - i32.const 4 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 - local.get $4 - local.tee $7 - i32.const 1 - i32.sub - local.set $4 - local.get $7 - local.set $7 - local.get $7 - if - local.get $5 - i32.load16_u - local.set $8 - local.get $6 - i32.load16_u - local.set $9 - local.get $8 - local.get $9 - i32.ne - if - local.get $8 - local.get $9 - i32.sub - return - end - local.get $5 - i32.const 2 - i32.add - local.set $5 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $while-continue|1 - end - end - i32.const 0 - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end - if - i32.const 0 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - return - end - local.get $0 - i32.const 0 - local.get $1 - i32.const 0 - local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - ) - (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - ) - (func $~lib/string/String.UTF8.encodeUnsafe (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) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.set $6 - loop $while-continue|0 - local.get $0 - local.get $5 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $0 - i32.load16_u - local.set $8 - local.get $8 - i32.const 128 - i32.lt_u - if - local.get $6 - local.get $8 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - local.get $3 - local.get $8 - i32.eqz - i32.and - if - local.get $6 - local.get $2 - i32.sub - return - end - else - local.get $8 - i32.const 2048 - i32.lt_u - if - local.get $8 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.set $9 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $10 - local.get $6 - local.get $10 - i32.const 8 - i32.shl - local.get $9 - i32.or - i32.store16 - local.get $6 - i32.const 2 - i32.add - local.set $6 - else - local.get $8 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - if - local.get $8 - i32.const 56320 - i32.lt_u - if (result i32) - local.get $0 - i32.const 2 - i32.add - local.get $5 - i32.lt_u - else - i32.const 0 - end - if - local.get $0 - i32.load16_u offset=2 - local.set $10 - local.get $10 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - i32.const 65536 - local.get $8 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.add - local.get $10 - i32.const 1023 - i32.and - i32.or - local.set $8 - local.get $8 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.set $9 - local.get $8 - i32.const 12 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $11 - local.get $8 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $12 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $13 - local.get $6 - local.get $13 - i32.const 24 - i32.shl - local.get $12 - i32.const 16 - i32.shl - i32.or - local.get $11 - i32.const 8 - i32.shl - i32.or - local.get $9 - i32.or - i32.store - local.get $6 - i32.const 4 - i32.add - local.set $6 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $4 - i32.const 0 - i32.ne - if - local.get $4 - i32.const 2 - i32.eq - if - i32.const 160 - i32.const 224 - i32.const 742 - i32.const 49 - call $~lib/wasi/index/abort - unreachable - end - i32.const 65533 - local.set $8 - end - end - local.get $8 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.set $10 - local.get $8 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $13 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $12 - local.get $6 - local.get $13 - i32.const 8 - i32.shl - local.get $10 - i32.or - i32.store16 - local.get $6 - local.get $12 - i32.store8 offset=2 - local.get $6 - i32.const 3 - i32.add - local.set $6 - 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 $6 - local.tee $7 - i32.const 1 - i32.add - local.set $6 - local.get $7 - i32.const 0 - i32.store8 - end - local.get $6 - local.get $2 - i32.sub - ) - (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 3 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $3 - end - i32.const 0 - local.set $4 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - ) - (func $~lib/util/number/decimalCount32 (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/bindings/wasi_snapshot_preview1/iovec#set:buf_len (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 0 - i32.const 12 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf - 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 - call $~lib/string/String.__ne - if - local.get $4 - local.get $0 - local.get $0 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - 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 - call $~lib/string/String.__ne - if - local.get $4 - local.get $1 - local.get $1 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - 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-loop|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 - br_if $do-loop|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-loop|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 - br_if $do-loop|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 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len - 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/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) - (local $1 i32) - block $break|0 - block $case76|0 - block $case75|0 - block $case74|0 - block $case73|0 - block $case72|0 - block $case71|0 - block $case70|0 - block $case69|0 - block $case68|0 - block $case67|0 - block $case66|0 - block $case65|0 - block $case64|0 - block $case63|0 - block $case62|0 - block $case61|0 - block $case60|0 - block $case59|0 - block $case58|0 - block $case57|0 - block $case56|0 - block $case55|0 - block $case54|0 - block $case53|0 - block $case52|0 - block $case51|0 - block $case50|0 - block $case49|0 - block $case48|0 - block $case47|0 - block $case46|0 - block $case45|0 - block $case44|0 - block $case43|0 - block $case42|0 - block $case41|0 - block $case40|0 - block $case39|0 - block $case38|0 - block $case37|0 - block $case36|0 - block $case35|0 - block $case34|0 - block $case33|0 - block $case32|0 - block $case31|0 - block $case30|0 - block $case29|0 - block $case28|0 - block $case27|0 - block $case26|0 - block $case25|0 - block $case24|0 - block $case23|0 - block $case22|0 - block $case21|0 - block $case20|0 - block $case19|0 - block $case18|0 - block $case17|0 - block $case16|0 - block $case15|0 - block $case14|0 - block $case13|0 - block $case12|0 - block $case11|0 - block $case10|0 - block $case9|0 - block $case8|0 - block $case7|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 65535 - i32.and - local.set $1 - local.get $1 - i32.const 0 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $1 - i32.const 3 - i32.eq - br_if $case3|0 - local.get $1 - i32.const 4 - i32.eq - br_if $case4|0 - local.get $1 - i32.const 5 - i32.eq - br_if $case5|0 - local.get $1 - i32.const 6 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 7 - i32.eq - br_if $case7|0 - local.get $1 - i32.const 8 - i32.eq - br_if $case8|0 - local.get $1 - i32.const 9 - i32.eq - br_if $case9|0 - local.get $1 - i32.const 10 - i32.eq - br_if $case10|0 - local.get $1 - i32.const 11 - i32.eq - br_if $case11|0 - local.get $1 - i32.const 12 - i32.eq - br_if $case12|0 - local.get $1 - i32.const 13 - i32.eq - br_if $case13|0 - local.get $1 - i32.const 14 - i32.eq - br_if $case14|0 - local.get $1 - i32.const 15 - i32.eq - br_if $case15|0 - local.get $1 - i32.const 16 - i32.eq - br_if $case16|0 - local.get $1 - i32.const 17 - i32.eq - br_if $case17|0 - local.get $1 - i32.const 18 - i32.eq - br_if $case18|0 - local.get $1 - i32.const 19 - i32.eq - br_if $case19|0 - local.get $1 - i32.const 20 - i32.eq - br_if $case20|0 - local.get $1 - i32.const 21 - i32.eq - br_if $case21|0 - local.get $1 - i32.const 22 - i32.eq - br_if $case22|0 - local.get $1 - i32.const 23 - i32.eq - br_if $case23|0 - local.get $1 - i32.const 24 - i32.eq - br_if $case24|0 - local.get $1 - i32.const 25 - i32.eq - br_if $case25|0 - local.get $1 - i32.const 26 - i32.eq - br_if $case26|0 - local.get $1 - i32.const 27 - i32.eq - br_if $case27|0 - local.get $1 - i32.const 28 - i32.eq - br_if $case28|0 - local.get $1 - i32.const 29 - i32.eq - br_if $case29|0 - local.get $1 - i32.const 30 - i32.eq - br_if $case30|0 - local.get $1 - i32.const 31 - i32.eq - br_if $case31|0 - local.get $1 - i32.const 32 - i32.eq - br_if $case32|0 - local.get $1 - i32.const 33 - i32.eq - br_if $case33|0 - local.get $1 - i32.const 34 - i32.eq - br_if $case34|0 - local.get $1 - i32.const 35 - i32.eq - br_if $case35|0 - local.get $1 - i32.const 36 - i32.eq - br_if $case36|0 - local.get $1 - i32.const 37 - i32.eq - br_if $case37|0 - local.get $1 - i32.const 38 - i32.eq - br_if $case38|0 - local.get $1 - i32.const 39 - i32.eq - br_if $case39|0 - local.get $1 - i32.const 40 - i32.eq - br_if $case40|0 - local.get $1 - i32.const 41 - i32.eq - br_if $case41|0 - local.get $1 - i32.const 42 - i32.eq - br_if $case42|0 - local.get $1 - i32.const 43 - i32.eq - br_if $case43|0 - local.get $1 - i32.const 44 - i32.eq - br_if $case44|0 - local.get $1 - i32.const 45 - i32.eq - br_if $case45|0 - local.get $1 - i32.const 46 - i32.eq - br_if $case46|0 - local.get $1 - i32.const 47 - i32.eq - br_if $case47|0 - local.get $1 - i32.const 48 - i32.eq - br_if $case48|0 - local.get $1 - i32.const 49 - i32.eq - br_if $case49|0 - local.get $1 - i32.const 50 - i32.eq - br_if $case50|0 - local.get $1 - i32.const 51 - i32.eq - br_if $case51|0 - local.get $1 - i32.const 52 - i32.eq - br_if $case52|0 - local.get $1 - i32.const 53 - i32.eq - br_if $case53|0 - local.get $1 - i32.const 54 - i32.eq - br_if $case54|0 - local.get $1 - i32.const 55 - i32.eq - br_if $case55|0 - local.get $1 - i32.const 56 - i32.eq - br_if $case56|0 - local.get $1 - i32.const 57 - i32.eq - br_if $case57|0 - local.get $1 - i32.const 58 - i32.eq - br_if $case58|0 - local.get $1 - i32.const 59 - i32.eq - br_if $case59|0 - local.get $1 - i32.const 60 - i32.eq - br_if $case60|0 - local.get $1 - i32.const 61 - i32.eq - br_if $case61|0 - local.get $1 - i32.const 62 - i32.eq - br_if $case62|0 - local.get $1 - i32.const 63 - i32.eq - br_if $case63|0 - local.get $1 - i32.const 64 - i32.eq - br_if $case64|0 - local.get $1 - i32.const 65 - i32.eq - br_if $case65|0 - local.get $1 - i32.const 66 - i32.eq - br_if $case66|0 - local.get $1 - i32.const 67 - i32.eq - br_if $case67|0 - local.get $1 - i32.const 68 - i32.eq - br_if $case68|0 - local.get $1 - i32.const 69 - i32.eq - br_if $case69|0 - local.get $1 - i32.const 70 - i32.eq - br_if $case70|0 - local.get $1 - i32.const 71 - i32.eq - br_if $case71|0 - local.get $1 - i32.const 72 - i32.eq - br_if $case72|0 - local.get $1 - i32.const 73 - i32.eq - br_if $case73|0 - local.get $1 - i32.const 74 - i32.eq - br_if $case74|0 - local.get $1 - i32.const 75 - i32.eq - br_if $case75|0 - local.get $1 - i32.const 76 - i32.eq - br_if $case76|0 - br $break|0 - end - i32.const 272 - return - end - i32.const 320 - return - end - i32.const 352 - return - end - i32.const 384 - return - end - i32.const 432 - return - end - i32.const 480 - return - end - i32.const 528 - return - end - i32.const 560 - return - end - i32.const 608 - return - end - i32.const 640 - return - end - i32.const 672 - return - end - i32.const 704 - return - end - i32.const 752 - return - end - i32.const 784 - return - end - i32.const 832 - return - end - i32.const 880 - return - end - i32.const 928 - return - end - i32.const 960 - return - end - i32.const 1008 - return - end - i32.const 1040 - return - end - i32.const 1072 - return - end - i32.const 1104 - return - end - i32.const 1136 - return - end - i32.const 1168 - return - end - i32.const 1216 - return - end - i32.const 1248 - return - end - i32.const 1280 - return - end - i32.const 1328 - return - end - i32.const 1360 - return - end - i32.const 1392 - return - end - i32.const 1424 - return - end - i32.const 1456 - return - end - i32.const 1488 - return - end - i32.const 1520 - return - end - i32.const 1552 - return - end - i32.const 1584 - return - end - i32.const 1632 - return - end - i32.const 1680 - return - end - i32.const 1728 - return - end - i32.const 1776 - return - end - i32.const 1824 - return - end - i32.const 1872 - return - end - i32.const 1904 - return - end - i32.const 1936 - return - end - i32.const 1968 - return - end - i32.const 2000 - return - end - i32.const 2032 - return - end - i32.const 2064 - return - end - i32.const 2096 - return - end - i32.const 2128 - return - end - i32.const 2160 - return - end - i32.const 2208 - return - end - i32.const 2240 - return - end - i32.const 2272 - return - end - i32.const 2320 - return - end - i32.const 2352 - return - end - i32.const 2400 - return - end - i32.const 2448 - return - end - i32.const 2496 - return - end - i32.const 2528 - return - end - i32.const 2560 - return - end - i32.const 2592 - return - end - i32.const 2640 - return - end - i32.const 2688 - return - end - i32.const 2720 - return - end - i32.const 2752 - return - end - i32.const 2784 - return - end - i32.const 2832 - return - end - i32.const 2880 - return - end - i32.const 2912 - return - end - i32.const 2944 - return - end - i32.const 2976 - return - end - i32.const 3008 - return - end - i32.const 3040 - return - end - i32.const 3088 - return - end - i32.const 3120 - return - end - i32.const 3152 - return - end - i32.const 3200 - ) - (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - local.set $2 - local.get $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $3 - local.get $1 - i32.const 0 - i32.ne - local.set $4 - block $while-break|0 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - i32.load16_u - local.set $6 - local.get $6 - i32.const 128 - i32.lt_u - if - local.get $1 - local.get $6 - i32.eqz - i32.and - if - br $while-break|0 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - else - local.get $6 - i32.const 2048 - i32.lt_u - if - local.get $4 - i32.const 2 - i32.add - local.set $4 - else - local.get $6 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - if (result i32) - local.get $2 - i32.const 2 - i32.add - local.get $3 - i32.lt_u - else - i32.const 0 - end - if - local.get $2 - i32.load16_u offset=2 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $4 - i32.const 3 - i32.add - local.set $4 - end - end - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|0 - end - end - end - local.get $4 - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 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.get $1 - i32.load - local.set $2 - i32.const 1 - drop - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 268 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $3 - i32.const 1 - drop - local.get $3 - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 270 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $4 - local.get $3 - i32.const 4 - i32.shr_u - local.set $5 - else - local.get $3 - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $6 - i32.const 31 - local.get $6 - i32.clz - i32.sub - local.set $4 - local.get $6 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $5 - local.get $4 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $4 - end - i32.const 1 - drop - local.get $4 - i32.const 23 - i32.lt_u - if (result i32) - local.get $5 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 284 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.set $8 - local.get $1 - i32.load offset=8 - local.set $9 - local.get $8 - if - local.get $8 - local.get $9 - call $~lib/rt/tlsf/Block#set:next - end - local.get $9 - if - local.get $9 - local.get $8 - call $~lib/rt/tlsf/Block#set:prev - end - local.get $1 - local.get $0 - local.set $10 - local.get $4 - local.set $6 - local.get $5 - local.set $7 - local.get $10 - local.get $6 - i32.const 4 - i32.shl - local.get $7 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - i32.eq - if - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $6 - local.get $9 - local.set $7 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=96 - local.get $9 - i32.eqz - if - local.get $0 - local.set $6 - local.get $4 - local.set $7 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $6 - local.get $0 - local.set $7 - local.get $4 - local.set $11 - local.get $6 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $6 - local.set $10 - local.get $7 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - local.get $6 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 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 $13 i32) - i32.const 1 - drop - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 201 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load - local.set $2 - i32.const 1 - drop - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 203 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.set $3 - local.get $3 - i32.const 4 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - local.get $5 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $2 - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $1 - local.set $3 - local.get $3 - i32.const 4 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $1 - local.set $3 - local.get $3 - i32.const 4 - i32.sub - i32.load - local.set $3 - local.get $3 - i32.load - local.set $6 - i32.const 1 - drop - local.get $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 221 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 - local.set $1 - local.get $1 - local.get $6 - i32.const 4 - i32.add - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $2 - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $4 - local.get $5 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $7 - i32.const 1 - drop - local.get $7 - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 233 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1 - drop - local.get $1 - i32.const 4 - i32.add - local.get $7 - i32.add - local.get $4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 234 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $7 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $8 - local.get $7 - i32.const 4 - i32.shr_u - local.set $9 - else - local.get $7 - local.tee $3 - i32.const 1073741820 - local.tee $6 - local.get $3 - local.get $6 - i32.lt_u - select - local.set $3 - i32.const 31 - local.get $3 - i32.clz - i32.sub - local.set $8 - local.get $3 - local.get $8 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $9 - local.get $8 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $8 - end - i32.const 1 - drop - local.get $8 - i32.const 23 - i32.lt_u - if (result i32) - local.get $9 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 251 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.set $10 - local.get $8 - local.set $3 - local.get $9 - local.set $6 - local.get $10 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $11 - local.get $1 - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $1 - local.get $11 - call $~lib/rt/tlsf/Block#set:next - local.get $11 - if - local.get $11 - local.get $1 - call $~lib/rt/tlsf/Block#set:prev - end - local.get $0 - local.set $12 - local.get $8 - local.set $10 - local.get $9 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $10 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $8 - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $0 - local.set $13 - local.get $8 - local.set $12 - local.get $0 - local.set $3 - local.get $8 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 1 - local.get $9 - i32.shl - i32.or - local.set $10 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 1 - drop - local.get $1 - local.get $2 - i32.le_u - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 377 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $2 - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $2 - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - local.set $4 - i32.const 0 - local.set $5 - local.get $4 - if - i32.const 1 - drop - local.get $1 - local.get $4 - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 384 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $1 - i32.const 16 - i32.sub - local.set $1 - local.get $4 - i32.load - local.set $5 - else - nop - end - else - i32.const 1 - drop - local.get $1 - local.get $0 - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 397 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - end - local.get $2 - local.get $1 - i32.sub - local.set $6 - local.get $6 - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $6 - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $7 - local.get $1 - local.set $8 - local.get $8 - local.get $7 - i32.const 1 - i32.or - local.get $5 - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $8 - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $8 - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $1 - i32.const 4 - i32.add - local.get $7 - i32.add - local.set $4 - local.get $4 - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $8 - call $~lib/rt/tlsf/insertBlock - i32.const 1 - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 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) - i32.const 0 - drop - global.get $~lib/memory/__heap_base - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $0 - memory.size - local.set $1 - local.get $0 - i32.const 1572 - i32.add - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $2 - local.get $1 - i32.gt_s - if (result i32) - local.get $2 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $0 - local.set $3 - local.get $3 - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 23 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $3 - local.set $8 - local.get $5 - local.set $7 - i32.const 0 - local.set $6 - local.get $8 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $8 - loop $for-loop|1 - local.get $8 - i32.const 16 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $3 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|1 - end - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $0 - i32.const 1572 - i32.add - local.set $12 - i32.const 0 - drop - local.get $3 - local.get $12 - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $3 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) - local.get $0 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $0 - i32.const 4 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - i32.const 4 - i32.sub - end - ) - (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 3376 - i32.const 3312 - i32.const 458 - i32.const 29 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/computeSize - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $2 - local.get $1 - i32.const 4 - i32.shr_u - local.set $3 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $1 - end - local.set $4 - i32.const 31 - local.get $4 - i32.clz - i32.sub - local.set $2 - local.get $4 - local.get $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $3 - local.get $2 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $2 - end - i32.const 1 - drop - local.get $2 - i32.const 23 - i32.lt_u - if (result i32) - local.get $3 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 330 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 0 - i32.const -1 - i32.xor - local.get $3 - i32.shl - i32.and - local.set $6 - i32.const 0 - local.set $7 - local.get $6 - i32.eqz - if - local.get $0 - i32.load - i32.const 0 - i32.const -1 - i32.xor - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.set $5 - local.get $5 - i32.eqz - if - i32.const 0 - local.set $7 - else - local.get $5 - i32.ctz - local.set $2 - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $6 - i32.const 1 - drop - local.get $6 - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 343 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - else - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - local.get $7 - ) - (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 0 - drop - local.get $1 - i32.const 536870910 - i32.lt_u - if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.set $1 - end - memory.size - local.set $2 - local.get $1 - i32.const 4 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - i32.ne - i32.shl - i32.add - local.set $1 - local.get $1 - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $4 - local.get $2 - local.tee $3 - local.get $4 - local.tee $5 - local.get $3 - local.get $5 - i32.gt_s - select - local.set $6 - local.get $6 - memory.grow - i32.const 0 - i32.lt_s - if - local.get $4 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $7 - local.get $0 - local.get $2 - i32.const 16 - i32.shl - local.get $7 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.set $3 - i32.const 1 - drop - local.get $2 - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 357 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $1 - local.get $2 - local.get $3 - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.set $5 - local.get $5 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $0 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $1 - local.set $5 - local.get $5 - i32.const 4 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $1 - local.set $5 - local.get $5 - i32.const 4 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - i32.load - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 - local.get $3 - i32.eqz - if - local.get $0 - local.get $2 - call $~lib/rt/tlsf/growMemory - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 - i32.const 1 - drop - local.get $3 - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 496 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - i32.const 1 - drop - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 498 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $1 - i32.load - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3312 - i32.const 559 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - ) - (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $0 i32) - local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - if - return - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/process/writeString (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/string/String#get:length - local.set $2 - i32.const 0 - local.set $3 - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $2 - local.set $6 - local.get $6 - i32.const 4 - i32.eq - br_if $case0|0 - local.get $6 - i32.const 3 - i32.eq - br_if $case1|0 - local.get $6 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $6 - i32.const 1 - i32.eq - br_if $case3|0 - local.get $6 - i32.const 0 - i32.eq - br_if $case4|0 - br $break|0 - end - local.get $1 - i32.load16_u offset=6 - local.set $5 - local.get $5 - i32.const 128 - i32.ge_u - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=4 - local.set $4 - local.get $4 - i32.const 128 - i32.ge_u - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=2 - local.set $3 - local.get $3 - i32.const 128 - i32.ge_u - if - br $break|0 - end - end - local.get $1 - i32.load16_u - local.set $6 - local.get $6 - i32.const 128 - i32.ge_u - if - br $break|0 - end - global.get $~lib/bindings/wasi/tempbuf - global.get $~lib/bindings/wasi/tempbuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - i32.store - global.get $~lib/bindings/wasi/tempbuf - local.get $2 - i32.store offset=4 - global.get $~lib/bindings/wasi/tempbuf - local.get $6 - local.get $3 - i32.const 8 - i32.shl - i32.or - local.get $4 - i32.const 16 - i32.shl - i32.or - local.get $5 - i32.const 24 - i32.shl - i32.or - i32.store offset=8 - local.get $0 - global.get $~lib/bindings/wasi/tempbuf - i32.const 1 - global.get $~lib/bindings/wasi/tempbuf - i32.const 3 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $7 - local.get $7 - i32.const 65535 - i32.and - if - local.get $7 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3248 - i32.const 211 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - return - end - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - local.set $8 - local.get $8 - call $~lib/rt/tlsf/__alloc - local.set $9 - local.get $1 - local.get $2 - local.get $9 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3248 - i32.const 217 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - local.get $9 - i32.store - global.get $~lib/bindings/wasi/tempbuf - local.get $8 - i32.store offset=4 - local.get $0 - global.get $~lib/bindings/wasi/tempbuf - i32.const 1 - global.get $~lib/bindings/wasi/tempbuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $10 - local.get $9 - call $~lib/rt/tlsf/__free - local.get $10 - i32.const 65535 - i32.and - if - local.get $10 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3248 - i32.const 222 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) - i32.const 1 - drop - local.get $0 - local.get $1 - call $~lib/process/writeString - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:prev - local.get $0 - ) - (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - ) - (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - ) - (func $~lib/rt/itcms/visitRoots (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $1 - local.get $1 - call $~lib/rt/itcms/Object#get:next - local.set $2 - loop $while-continue|0 - local.get $2 - local.get $1 - i32.ne - local.set $3 - local.get $3 - if - i32.const 1 - drop - local.get $2 - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3968 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 20 - i32.add - local.get $0 - call $~lib/rt/__visit_members - local.get $2 - call $~lib/rt/itcms/Object#get:next - local.set $2 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $1 - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $1 - local.get $1 - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $0 - i32.load offset=8 - i32.const 0 - i32.eq - if (result i32) - local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3968 - i32.const 127 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - drop - local.get $2 - i32.eqz - if - i32.const 0 - i32.const 3968 - i32.const 131 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $2 - call $~lib/rt/itcms/Object#set:prev - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/__typeinfo (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 4096 - i32.const 4160 - i32.const 22 - i32.const 28 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.load offset=12 - local.set $1 - local.get $1 - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - ) - (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - local.get $2 - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - local.get $3 - call $~lib/rt/itcms/Object#set:prev - local.get $3 - local.get $0 - call $~lib/rt/itcms/Object#set:next - local.get $1 - local.get $0 - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 3968 - i32.const 147 - i32.const 30 - call $~lib/wasi/index/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $0 - call $~lib/rt/itcms/Object#unlink - local.get $0 - global.get $~lib/rt/itcms/toSpace - local.get $0 - call $~lib/rt/itcms/Object#get:isPointerfree - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end - call $~lib/rt/itcms/Object#linkTo - ) - (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.set $2 - i32.const 0 - drop - local.get $2 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $2 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/itcms/visitStack (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - local.set $1 - loop $while-continue|0 - local.get $1 - global.get $~lib/memory/__heap_base - i32.lt_u - local.set $2 - local.get $2 - if - local.get $1 - i32.load - local.get $0 - call $~lib/rt/itcms/__visit - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) - i32.const 4 - local.get $0 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - ) - (func $~lib/rt/itcms/free (param $0 i32) - local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $0 - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $0 - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - local.set $1 - local.get $1 - i32.const 0 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case2|0 - br $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $2 - local.get $2 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - call $~lib/rt/itcms/Object#get:color - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $0 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.eq - if - i32.const 0 - call $~lib/rt/itcms/visitStack - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $2 - local.get $2 - if - local.get $0 - call $~lib/rt/itcms/Object#get:color - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - call $~lib/rt/itcms/Object#set:color - local.get $0 - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $2 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $2 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $2 - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/iter - local.set $0 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $0 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3968 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - call $~lib/rt/itcms/free - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:nextWithColor - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:prev - i32.const 0 - global.set $~lib/rt/itcms/state - br $break|0 - end - i32.const 0 - ) - (func $~lib/rt/itcms/interrupt - (local $0 i32) - i32.const 0 - drop - i32.const 0 - drop - i32.const 1024 - i32.const 200 - i32.mul - i32.const 100 - i32.div_u - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i32.const 1024 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.mul - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - ) - (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 3376 - i32.const 3968 - i32.const 260 - i32.const 31 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - call $~lib/rt/itcms/interrupt - end - i32.const 16 - local.get $0 - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $2 - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:rtId - local.get $2 - local.get $0 - call $~lib/rt/itcms/Object#set:rtSize - local.get $2 - global.get $~lib/rt/itcms/fromSpace - global.get $~lib/rt/itcms/white - call $~lib/rt/itcms/Object#linkTo - global.get $~lib/rt/itcms/total - local.get $2 - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.set $3 - local.get $3 - i32.const 0 - local.get $0 - memory.fill - local.get $3 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.eqz - if - return - end - i32.const 1 - drop - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 3968 - i32.const 294 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 20 - i32.sub - local.set $3 - local.get $3 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.set $4 - local.get $4 - call $~lib/rt/itcms/Object#get:color - local.set $5 - local.get $5 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $2 - if - local.get $4 - call $~lib/rt/itcms/Object#makeGray - else - local.get $3 - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $5 - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - else - i32.const 0 - end - if - local.get $3 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/map/Map<~lib/string/String,u64>#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map<~lib/string/String,u64>#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map<~lib/string/String,u64>#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map<~lib/string/String,u64>#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map<~lib/string/String,u64>#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 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) - i32.const 1 - drop - block $~lib/util/hash/hashStr|inlined.0 (result i32) - local.get $0 - local.set $1 - local.get $1 - i32.const 0 - i32.eq - if - i32.const 0 - br $~lib/util/hash/hashStr|inlined.0 - end - local.get $1 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $2 - local.get $2 - local.set $3 - local.get $1 - local.set $4 - local.get $3 - i32.const 16 - i32.ge_u - if - i32.const 0 - i32.const -1640531535 - i32.add - i32.const -2048144777 - i32.add - local.set $5 - i32.const 0 - i32.const -2048144777 - i32.add - local.set $6 - i32.const 0 - local.set $7 - i32.const 0 - i32.const -1640531535 - i32.sub - local.set $8 - local.get $3 - local.get $4 - i32.add - i32.const 16 - i32.sub - local.set $9 - loop $while-continue|0 - local.get $4 - local.get $9 - i32.le_u - local.set $10 - local.get $10 - if - local.get $5 - local.set $12 - local.get $4 - i32.load - local.set $11 - local.get $12 - local.get $11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $5 - local.get $6 - local.set $12 - local.get $4 - i32.load offset=4 - local.set $11 - local.get $12 - local.get $11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $6 - local.get $7 - local.set $12 - local.get $4 - i32.load offset=8 - local.set $11 - local.get $12 - local.get $11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $7 - local.get $8 - local.set $12 - local.get $4 - i32.load offset=12 - local.set $11 - local.get $12 - local.get $11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $8 - local.get $4 - i32.const 16 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $2 - local.get $5 - i32.const 1 - i32.rotl - local.get $6 - i32.const 7 - i32.rotl - i32.add - local.get $7 - i32.const 12 - i32.rotl - i32.add - local.get $8 - i32.const 18 - i32.rotl - i32.add - i32.add - local.set $2 - else - local.get $2 - i32.const 0 - i32.const 374761393 - i32.add - i32.add - local.set $2 - end - local.get $1 - local.get $3 - i32.add - i32.const 4 - i32.sub - local.set $9 - loop $while-continue|1 - local.get $4 - local.get $9 - i32.le_u - local.set $8 - local.get $8 - if - local.get $2 - local.get $4 - i32.load - i32.const -1028477379 - i32.mul - i32.add - local.set $2 - local.get $2 - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $2 - local.get $4 - i32.const 4 - i32.add - local.set $4 - br $while-continue|1 - end - end - local.get $1 - local.get $3 - i32.add - local.set $9 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_u - local.set $8 - local.get $8 - if - local.get $2 - local.get $4 - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - local.set $2 - local.get $2 - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end - end - local.get $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - local.set $2 - local.get $2 - i32.const -2048144777 - i32.mul - local.set $2 - local.get $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - local.set $2 - local.get $2 - i32.const -1028477379 - i32.mul - local.set $2 - local.get $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.set $2 - local.get $2 - end - return - ) - (func $~lib/map/Map<~lib/string/String,u64>#has (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - i32.const 0 - i32.ne - ) - (func $~lib/process/process.hrtime (result i64) - (local $0 i32) - i32.const 1 - drop - i32.const 1 - i64.const 0 - global.get $~lib/bindings/wasi/tempbuf - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3248 - i32.const 75 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - i64.load - return - ) - (func $~lib/map/MapEntry<~lib/string/String,u64>#set:value (param $0 i32) (param $1 i64) - local.get $0 - local.get $1 - i64.store offset=8 - ) - (func $~lib/map/MapEntry<~lib/string/String,u64>#set:key (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map<~lib/string/String,u64>#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 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 $13 i32) - (local $14 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $4 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 - if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.load - local.tee $12 - i32.store offset=8 - local.get $11 - local.get $12 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:key - local.get $11 - local.get $10 - i64.load offset=8 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:value - local.get $12 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 24 - i32.add - local.set $8 - end - local.get $6 - i32.const 24 - i32.add - local.set $6 - br $while-continue|0 - end - end - local.get $0 - local.get $3 - call $~lib/map/Map<~lib/string/String,u64>#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,u64>#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map<~lib/string/String,u64>#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map<~lib/string/String,u64>#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,u64>#get (param $0 i32) (param $1 i32) (result i64) - (local $2 i32) - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - local.set $2 - local.get $2 - i32.eqz - if - i32.const 4672 - i32.const 4736 - i32.const 105 - i32.const 17 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i64.load offset=8 - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $1 - i32.const 10000 - i32.div_u - local.set $4 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $7 - i32.const 4988 - local.get $6 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $8 - i32.const 4988 - local.get $7 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $9 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $9 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $1 - i32.const 100 - i32.div_u - local.set $3 - local.get $1 - i32.const 100 - i32.rem_u - local.set $10 - local.get $3 - local.set $1 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 4988 - local.get $10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 4988 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - else - local.get $2 - i32.const 1 - i32.sub - local.set $2 - i32.const 48 - local.get $1 - i32.add - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end - ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if - local.get $0 - i64.const 1000000000000 - i64.lt_u - if - i32.const 10 - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - return - else - i32.const 13 - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - return - end - unreachable - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if - i32.const 16 - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.add - return - else - i32.const 18 - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i64) - (local $13 i64) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u - local.set $3 - local.get $3 - if - local.get $1 - i64.const 100000000 - i64.div_u - local.set $4 - local.get $1 - local.get $4 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $7 - local.get $6 - i32.const 100 - i32.div_u - local.set $8 - local.get $6 - i32.const 100 - i32.rem_u - local.set $9 - local.get $7 - i32.const 100 - i32.div_u - local.set $10 - local.get $7 - i32.const 100 - i32.rem_u - local.set $11 - i32.const 4988 - local.get $10 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 4988 - local.get $11 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 4988 - local.get $8 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 4988 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - ) - (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $2 - i32.const 2 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 5408 - local.get $1 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $1 - i64.const 8 - i64.shr_u - local.set $1 - br $while-continue|0 - end - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - i32.const 5408 - local.get $1 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i32) - local.get $1 - local.set $2 - local.get $2 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $1 - i64.extend_i32_s - local.set $3 - local.get $3 - local.set $4 - i32.const 1 - local.set $5 - loop $while-continue|0 - local.get $0 - local.get $4 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $4 - i64.div_u - local.set $0 - local.get $4 - local.get $4 - i64.mul - local.set $4 - local.get $5 - i32.const 1 - i32.shl - local.set $5 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $0 - i64.const 1 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $3 - i64.div_u - local.set $0 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $while-continue|1 - end - end - local.get $5 - i32.const 1 - i32.sub - ) - (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) - (local $4 i64) - (local $5 i64) - (local $6 i64) - local.get $3 - i64.extend_i32_s - local.set $4 - local.get $3 - local.get $3 - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $5 - local.get $4 - i64.const 1 - i64.sub - local.set $6 - loop $do-loop|0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 6464 - local.get $1 - local.get $6 - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $1 - local.get $5 - i64.shr_u - local.set $1 - local.get $1 - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $4 - i64.div_u - local.set $6 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 6464 - local.get $1 - local.get $6 - local.get $4 - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $6 - local.set $1 - local.get $1 - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/U64#toString (param $0 i64) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/util/number/utoa64 - ) - (func $~lib/map/Map<~lib/string/String,u64>#delete (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - local.set $2 - local.get $2 - i32.eqz - if - i32.const 0 - return - end - local.get $2 - local.get $2 - i32.load offset=16 - i32.const 1 - i32.or - call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $3 - local.get $3 - i32.const 1 - i32.add - i32.const 4 - local.tee $4 - local.get $0 - i32.load offset=20 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_u - select - i32.ge_u - if (result i32) - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - local.get $0 - local.get $3 - call $~lib/map/Map<~lib/string/String,u64>#rehash - end - i32.const 1 - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $~lib/console/timers - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 4096 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 4240 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 4672 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3376 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 160 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 5408 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 6464 - local.get $0 - call $~lib/rt/itcms/__visit - ) - (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end - ) - (func $~lib/map/Map<~lib/string/String,u64>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - drop - local.get $2 - local.set $3 - local.get $3 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $4 - loop $while-continue|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $3 - local.set $6 - local.get $6 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - i32.const 1 - drop - local.get $6 - i32.load - local.set $7 - i32.const 0 - drop - local.get $7 - local.get $1 - call $~lib/rt/itcms/__visit - i32.const 0 - drop - end - local.get $3 - i32.const 24 - i32.add - local.set $3 - br $while-continue|0 - end - end - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map<~lib/string/String,u64>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,u64>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/map/Map<~lib/string/String,u64> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,u64> $invalid - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,u64>~visit - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/console - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 23360 - i32.const 23408 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/console/console.assert (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - drop - local.get $0 - i32.eqz - if - global.get $~lib/process/process.stderr - local.set $2 - local.get $2 - i32.const 64 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $2 - local.get $1 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $2 - i32.const 3440 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store - local.get $3 - call $~lib/process/WritableStream#write<~lib/string/String> - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.log (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.debug (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - i32.const 3600 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.info (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - i32.const 3696 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.warn (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - i32.const 3776 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.error (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - i32.const 3872 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3440 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,u64>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=16 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/string/String.__eq - else - i32.const 0 - end - if - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/console/console.time (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - global.get $~lib/console/timers - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/map/Map<~lib/string/String,u64>#has - if - local.get $1 - i32.const 4352 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 4416 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/console/timers - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/process/process.hrtime - call $~lib/map/Map<~lib/string/String,u64>#set - drop - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/timeLogImpl (param $0 i32) - (local $1 i64) - (local $2 i64) - (local $3 i64) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/console/timers - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/map/Map<~lib/string/String,u64>#get - local.set $1 - call $~lib/process/process.hrtime - local.set $2 - local.get $2 - local.get $1 - i64.sub - local.set $3 - local.get $3 - i64.const 1000000 - i64.div_u - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 10 - call $~lib/number/U64#toString - local.tee $5 - i32.store offset=4 - global.get $~lib/process/process.stdout - local.set $6 - local.get $6 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $6 - i32.const 6560 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $6 - local.get $5 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $6 - i32.const 6592 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.timeLog (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - global.get $~lib/console/timers - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/map/Map<~lib/string/String,u64>#has - i32.eqz - if - local.get $1 - i32.const 4512 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 4592 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $0 - call $~lib/console/timeLogImpl - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.timeEnd (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - global.get $~lib/console/timers - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/map/Map<~lib/string/String,u64>#has - i32.eqz - if - local.get $1 - i32.const 4512 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 6624 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $0 - call $~lib/console/timeLogImpl - global.get $~lib/console/timers - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/map/Map<~lib/string/String,u64>#delete - drop - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std-wasi/console - (local $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 0 - i32.const 32 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.assert - i32.const 1 - i32.const 3472 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.assert - i32.const 3504 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.log - i32.const 3552 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.debug - i32.const 3648 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.info - i32.const 3728 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.warn - i32.const 3824 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.error - memory.size - i32.const 16 - i32.shl - global.get $~lib/memory/__heap_base - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 4016 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 4048 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 4192 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $~lib/map/Map<~lib/string/String,u64>#constructor - global.set $~lib/console/timers - i32.const 3920 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.time - i32.const 3920 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.timeLog - i32.const 3920 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.timeEnd - i32.const 6704 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.timeLog - i32.const 6704 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.timeEnd - i32.const 6752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.time - i32.const 6752 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.time - i32.const 6800 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.log - i32.const 6832 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.log - i32.const 6864 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.log - i32.const 6896 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 4240 - i32.const 4288 - i32.const 52 - i32.const 43 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map<~lib/string/String,u64>#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,u64>#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map<~lib/string/String,u64>#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,u64>#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map<~lib/string/String,u64>#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/map/Map<~lib/string/String,u64>#set (param $0 i32) (param $1 i32) (param $2 i64) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - call $~lib/util/hash/HASH<~lib/string/String> - local.set $3 - local.get $0 - local.get $1 - local.get $3 - call $~lib/map/Map<~lib/string/String,u64>#find - local.set $4 - local.get $4 - if - local.get $4 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:value - i32.const 0 - drop - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/map/Map<~lib/string/String,u64>#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $5 - i32.store - local.get $5 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,u64>#set:entriesOffset - local.get $6 - i32.const 24 - i32.mul - i32.add - local.set $4 - local.get $4 - local.get $1 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:key - i32.const 1 - drop - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $4 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,u64>#set:value - i32.const 0 - drop - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,u64>#set:entriesCount - local.get $0 - i32.load - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $4 - local.get $6 - i32.load - call $~lib/map/MapEntry<~lib/string/String,u64>#set:taggedNext - local.get $6 - local.get $4 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end - if - i32.const 4784 - i32.const 4912 - i32.const 401 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i64.const 0 - i64.ne - i32.eqz - if - i32.const 4976 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - local.get $1 - i32.const 10 - i32.eq - if - local.get $0 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u - if - local.get $0 - i32.wrap_i64 - local.set $3 - local.get $3 - call $~lib/util/number/decimalCount32 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $7 - local.get $3 - local.set $6 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - else - local.get $0 - call $~lib/util/number/decimalCount64High - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $6 - local.get $0 - local.set $8 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_dec_lut - end - else - local.get $1 - i32.const 16 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $3 - local.get $0 - local.set $8 - local.get $4 - local.set $7 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $3 - local.get $8 - local.get $7 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - local.get $1 - call $~lib/util/number/ulog_base - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $4 - local.get $1 - call $~lib/util/number/utoa64_any_core - end - end - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) -) diff --git a/tests/compiler/std-wasi/console.json b/tests/compiler/std-wasi/console.json deleted file mode 100644 index b5784f1e69..0000000000 --- a/tests/compiler/std-wasi/console.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "asc_flags": [ - "--exportStart", "_start" - ], - "asc_wasi": { - "args": [], - "env": {}, - "returnOnExit": true - } -} diff --git a/tests/compiler/std-wasi/console.release.wat b/tests/compiler/std-wasi/console.release.wat deleted file mode 100644 index 23da33243a..0000000000 --- a/tests/compiler/std-wasi/console.release.wat +++ /dev/null @@ -1,4669 +0,0 @@ -(module - (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_none (func)) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) - (type $none_=>_i64 (func (result i64))) - (type $i64_=>_i32 (func (param i64) (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))) - (import "wasi_snapshot_preview1" "clock_time_get" (func $~lib/bindings/wasi_snapshot_preview1/clock_time_get (param i32 i64 i32) (result i32))) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/console/timers (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 24356)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 1036) "\1c") - (data (i32.const 1048) "\01\00\00\00\0c\00\00\00w\00h\00o\00o\00p\00s") - (data (i32.const 1068) "<") - (data (i32.const 1080) "\01\00\00\00$\00\00\00A\00s\00s\00e\00r\00t\00i\00o\00n\00 \00f\00a\00i\00l\00e\00d\00:\00 ") - (data (i32.const 1164) "<") - (data (i32.const 1176) "\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e") - (data (i32.const 1228) ",") - (data (i32.const 1240) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data (i32.const 1276) ",") - (data (i32.const 1288) "\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S") - (data (i32.const 1324) "\1c") - (data (i32.const 1336) "\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G") - (data (i32.const 1356) "\1c") - (data (i32.const 1368) "\01\00\00\00\n\00\00\00A\00C\00C\00E\00S") - (data (i32.const 1388) ",") - (data (i32.const 1400) "\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E") - (data (i32.const 1436) ",") - (data (i32.const 1448) "\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L") - (data (i32.const 1484) ",") - (data (i32.const 1496) "\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T") - (data (i32.const 1532) "\1c") - (data (i32.const 1544) "\01\00\00\00\n\00\00\00A\00G\00A\00I\00N") - (data (i32.const 1564) ",") - (data (i32.const 1576) "\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y") - (data (i32.const 1612) "\1c") - (data (i32.const 1624) "\01\00\00\00\08\00\00\00B\00A\00D\00F") - (data (i32.const 1644) "\1c") - (data (i32.const 1656) "\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G") - (data (i32.const 1676) "\1c") - (data (i32.const 1688) "\01\00\00\00\08\00\00\00B\00U\00S\00Y") - (data (i32.const 1708) ",") - (data (i32.const 1720) "\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D") - (data (i32.const 1756) "\1c") - (data (i32.const 1768) "\01\00\00\00\n\00\00\00C\00H\00I\00L\00D") - (data (i32.const 1788) ",") - (data (i32.const 1800) "\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D") - (data (i32.const 1836) ",") - (data (i32.const 1848) "\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D") - (data (i32.const 1884) ",") - (data (i32.const 1896) "\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T") - (data (i32.const 1932) "\1c") - (data (i32.const 1944) "\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K") - (data (i32.const 1964) ",") - (data (i32.const 1976) "\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q") - (data (i32.const 2012) "\1c") - (data (i32.const 2024) "\01\00\00\00\06\00\00\00D\00O\00M") - (data (i32.const 2044) "\1c") - (data (i32.const 2056) "\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T") - (data (i32.const 2076) "\1c") - (data (i32.const 2088) "\01\00\00\00\n\00\00\00E\00X\00I\00S\00T") - (data (i32.const 2108) "\1c") - (data (i32.const 2120) "\01\00\00\00\n\00\00\00F\00A\00U\00L\00T") - (data (i32.const 2140) "\1c") - (data (i32.const 2152) "\01\00\00\00\08\00\00\00F\00B\00I\00G") - (data (i32.const 2172) ",") - (data (i32.const 2184) "\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H") - (data (i32.const 2220) "\1c") - (data (i32.const 2232) "\01\00\00\00\08\00\00\00I\00D\00R\00M") - (data (i32.const 2252) "\1c") - (data (i32.const 2264) "\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q") - (data (i32.const 2284) ",") - (data (i32.const 2296) "\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S") - (data (i32.const 2332) "\1c") - (data (i32.const 2344) "\01\00\00\00\08\00\00\00I\00N\00T\00R") - (data (i32.const 2364) "\1c") - (data (i32.const 2376) "\01\00\00\00\n\00\00\00I\00N\00V\00A\00L") - (data (i32.const 2396) "\1c") - (data (i32.const 2408) "\01\00\00\00\04\00\00\00I\00O") - (data (i32.const 2428) "\1c") - (data (i32.const 2440) "\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N") - (data (i32.const 2460) "\1c") - (data (i32.const 2472) "\01\00\00\00\n\00\00\00I\00S\00D\00I\00R") - (data (i32.const 2492) "\1c") - (data (i32.const 2504) "\01\00\00\00\08\00\00\00L\00O\00O\00P") - (data (i32.const 2524) "\1c") - (data (i32.const 2536) "\01\00\00\00\n\00\00\00M\00F\00I\00L\00E") - (data (i32.const 2556) "\1c") - (data (i32.const 2568) "\01\00\00\00\n\00\00\00M\00L\00I\00N\00K") - (data (i32.const 2588) ",") - (data (i32.const 2600) "\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E") - (data (i32.const 2636) ",") - (data (i32.const 2648) "\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P") - (data (i32.const 2684) ",") - (data (i32.const 2696) "\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G") - (data (i32.const 2732) ",") - (data (i32.const 2744) "\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N") - (data (i32.const 2780) ",") - (data (i32.const 2792) "\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T") - (data (i32.const 2828) ",") - (data (i32.const 2840) "\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H") - (data (i32.const 2876) "\1c") - (data (i32.const 2888) "\01\00\00\00\n\00\00\00N\00F\00I\00L\00E") - (data (i32.const 2908) "\1c") - (data (i32.const 2920) "\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S") - (data (i32.const 2940) "\1c") - (data (i32.const 2952) "\01\00\00\00\n\00\00\00N\00O\00D\00E\00V") - (data (i32.const 2972) "\1c") - (data (i32.const 2984) "\01\00\00\00\n\00\00\00N\00O\00E\00N\00T") - (data (i32.const 3004) "\1c") - (data (i32.const 3016) "\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C") - (data (i32.const 3036) "\1c") - (data (i32.const 3048) "\01\00\00\00\n\00\00\00N\00O\00L\00C\00K") - (data (i32.const 3068) "\1c") - (data (i32.const 3080) "\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K") - (data (i32.const 3100) "\1c") - (data (i32.const 3112) "\01\00\00\00\n\00\00\00N\00O\00M\00E\00M") - (data (i32.const 3132) "\1c") - (data (i32.const 3144) "\01\00\00\00\n\00\00\00N\00O\00M\00S\00G") - (data (i32.const 3164) ",") - (data (i32.const 3176) "\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T") - (data (i32.const 3212) "\1c") - (data (i32.const 3224) "\01\00\00\00\n\00\00\00N\00O\00S\00P\00C") - (data (i32.const 3244) "\1c") - (data (i32.const 3256) "\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S") - (data (i32.const 3276) ",") - (data (i32.const 3288) "\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N") - (data (i32.const 3324) "\1c") - (data (i32.const 3336) "\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R") - (data (i32.const 3356) ",") - (data (i32.const 3368) "\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y") - (data (i32.const 3404) ",") - (data (i32.const 3416) "\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E") - (data (i32.const 3452) ",") - (data (i32.const 3464) "\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K") - (data (i32.const 3500) "\1c") - (data (i32.const 3512) "\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P") - (data (i32.const 3532) "\1c") - (data (i32.const 3544) "\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y") - (data (i32.const 3564) "\1c") - (data (i32.const 3576) "\01\00\00\00\08\00\00\00N\00X\00I\00O") - (data (i32.const 3596) ",") - (data (i32.const 3608) "\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W") - (data (i32.const 3644) ",") - (data (i32.const 3656) "\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D") - (data (i32.const 3692) "\1c") - (data (i32.const 3704) "\01\00\00\00\08\00\00\00P\00E\00R\00M") - (data (i32.const 3724) "\1c") - (data (i32.const 3736) "\01\00\00\00\08\00\00\00P\00I\00P\00E") - (data (i32.const 3756) "\1c") - (data (i32.const 3768) "\01\00\00\00\n\00\00\00P\00R\00O\00T\00O") - (data (i32.const 3788) ",") - (data (i32.const 3800) "\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T") - (data (i32.const 3836) ",") - (data (i32.const 3848) "\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E") - (data (i32.const 3884) "\1c") - (data (i32.const 3896) "\01\00\00\00\n\00\00\00R\00A\00N\00G\00E") - (data (i32.const 3916) "\1c") - (data (i32.const 3928) "\01\00\00\00\08\00\00\00R\00O\00F\00S") - (data (i32.const 3948) "\1c") - (data (i32.const 3960) "\01\00\00\00\n\00\00\00S\00P\00I\00P\00E") - (data (i32.const 3980) "\1c") - (data (i32.const 3992) "\01\00\00\00\08\00\00\00S\00R\00C\00H") - (data (i32.const 4012) "\1c") - (data (i32.const 4024) "\01\00\00\00\n\00\00\00S\00T\00A\00L\00E") - (data (i32.const 4044) ",") - (data (i32.const 4056) "\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T") - (data (i32.const 4092) "\1c") - (data (i32.const 4104) "\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y") - (data (i32.const 4124) "\1c") - (data (i32.const 4136) "\01\00\00\00\08\00\00\00X\00D\00E\00V") - (data (i32.const 4156) ",") - (data (i32.const 4168) "\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E") - (data (i32.const 4204) ",") - (data (i32.const 4216) "\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N") - (data (i32.const 4252) "<") - (data (i32.const 4264) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s") - (data (i32.const 4316) "<") - (data (i32.const 4328) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data (i32.const 4380) "<") - (data (i32.const 4392) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 4444) "\1c") - (data (i32.const 4456) "\01\00\00\00\02\00\00\00\n") - (data (i32.const 4476) "\1c") - (data (i32.const 4488) "\01\00\00\00\08\00\00\00p\00h\00e\00w") - (data (i32.const 4508) ",") - (data (i32.const 4520) "\01\00\00\00\12\00\00\00h\00e\00l\00l\00o\00 \00l\00o\00g") - (data (i32.const 4556) ",") - (data (i32.const 4568) "\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00d\00e\00b\00u\00g") - (data (i32.const 4604) ",") - (data (i32.const 4616) "\01\00\00\00\0e\00\00\00D\00e\00b\00u\00g\00:\00 ") - (data (i32.const 4652) ",") - (data (i32.const 4664) "\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00i\00n\00f\00o") - (data (i32.const 4700) "\1c") - (data (i32.const 4712) "\01\00\00\00\0c\00\00\00I\00n\00f\00o\00:\00 ") - (data (i32.const 4732) ",") - (data (i32.const 4744) "\01\00\00\00\14\00\00\00h\00e\00l\00l\00o\00 \00w\00a\00r\00n") - (data (i32.const 4780) ",") - (data (i32.const 4792) "\01\00\00\00\12\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 ") - (data (i32.const 4828) ",") - (data (i32.const 4840) "\01\00\00\00\16\00\00\00h\00e\00l\00l\00o\00 \00e\00r\00r\00o\00r") - (data (i32.const 4876) ",") - (data (i32.const 4888) "\01\00\00\00\0e\00\00\00E\00r\00r\00o\00r\00:\00 ") - (data (i32.const 4924) ",") - (data (i32.const 4936) "\01\00\00\00\12\00\00\00s\00o\00m\00e\00L\00a\00b\00e\00l") - (data (i32.const 4972) "<") - (data (i32.const 4984) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data (i32.const 5100) "<") - (data (i32.const 5112) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 5164) ",") - (data (i32.const 5176) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 5244) ",") - (data (i32.const 5256) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data (i32.const 5292) "<") - (data (i32.const 5304) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 5356) "<") - (data (i32.const 5368) "\01\00\00\00 \00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00L\00a\00b\00e\00l\00 \00\'") - (data (i32.const 5420) "\\") - (data (i32.const 5432) "\01\00\00\00H\00\00\00\'\00 \00a\00l\00r\00e\00a\00d\00y\00 \00e\00x\00i\00s\00t\00s\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00(\00)\00\n") - (data (i32.const 5516) "L") - (data (i32.const 5528) "\01\00\00\000\00\00\00W\00a\00r\00n\00i\00n\00g\00:\00 \00N\00o\00 \00s\00u\00c\00h\00 \00l\00a\00b\00e\00l\00 \00\'") - (data (i32.const 5596) "L") - (data (i32.const 5608) "\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00L\00o\00g\00(\00)\00\n") - (data (i32.const 5676) "<") - (data (i32.const 5688) "\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data (i32.const 5740) ",") - (data (i32.const 5752) "\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data (i32.const 5788) "|") - (data (i32.const 5800) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") - (data (i32.const 5916) "<") - (data (i32.const 5928) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 5980) "\1c") - (data (i32.const 5992) "\01\00\00\00\02\00\00\000") - (data (i32.const 6012) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 6412) "\1c\04") - (data (i32.const 6424) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") - (data (i32.const 7468) "\\") - (data (i32.const 7480) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") - (data (i32.const 7564) "\1c") - (data (i32.const 7576) "\01\00\00\00\04\00\00\00:\00 ") - (data (i32.const 7596) "\1c") - (data (i32.const 7608) "\01\00\00\00\06\00\00\00m\00s\00\n") - (data (i32.const 7628) "L") - (data (i32.const 7640) "\01\00\00\000\00\00\00\'\00 \00f\00o\00r\00 \00c\00o\00n\00s\00o\00l\00e\00.\00t\00i\00m\00e\00E\00n\00d\00(\00)\00\n") - (data (i32.const 7708) ",") - (data (i32.const 7720) "\01\00\00\00\14\00\00\00w\00r\00o\00n\00g\00L\00a\00b\00e\00l") - (data (i32.const 7756) ",") - (data (i32.const 7768) "\01\00\00\00\1c\00\00\00d\00u\00p\00l\00i\00c\00a\00t\00e\00L\00a\00b\00e\00l") - (data (i32.const 7804) "\1c") - (data (i32.const 7816) "\01\00\00\00\02\00\00\001") - (data (i32.const 7836) "\1c") - (data (i32.const 7848) "\01\00\00\00\04\00\00\001\002") - (data (i32.const 7868) "\1c") - (data (i32.const 7880) "\01\00\00\00\06\00\00\001\002\003") - (data (i32.const 7900) "\1c") - (data (i32.const 7912) "\01\00\00\00\08\00\00\001\002\003\004") - (data (i32.const 7936) "\04\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 7964) "\10\02\82") - (export "memory" (memory $0)) - (export "_start" (func $~start)) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $1 - i32.const 0 - local.get $0 - select - i32.eqz - if - i32.const 0 - return - end - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $3 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - if - i32.const 0 - return - end - local.get $0 - local.tee $2 - i32.const 7 - i32.and - local.get $1 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - local.tee $0 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 - local.get $2 - i64.load - local.get $1 - i64.load - i64.eq - if - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $0 - i32.const 4 - i32.sub - local.tee $0 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - block $__inlined_func$~lib/util/string/compareImpl - loop $while-continue|1 - local.get $0 - local.tee $3 - i32.const 1 - i32.sub - local.set $0 - local.get $3 - if - local.get $2 - i32.load16_u - local.tee $5 - local.get $1 - i32.load16_u - local.tee $4 - i32.sub - local.set $3 - local.get $4 - local.get $5 - i32.ne - br_if $__inlined_func$~lib/util/string/compareImpl - local.get $2 - i32.const 2 - i32.add - local.set $2 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|1 - end - end - i32.const 0 - local.set $3 - end - local.get $3 - i32.eqz - ) - (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - block $2of2 - block $outOfRange - global.get $~argumentsLength - i32.const 3 - i32.sub - br_table $2of2 $2of2 $2of2 $outOfRange - end - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $3 - local.get $2 - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $3 - i32.lt_u - if - local.get $0 - i32.load16_u - local.tee $4 - i32.const 128 - i32.lt_u - if (result i32) - local.get $1 - local.get $4 - i32.store8 - local.get $1 - i32.const 1 - i32.add - else - local.get $4 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $1 - local.get $4 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.get $4 - 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 $4 - i32.const 56320 - i32.lt_u - local.get $0 - i32.const 2 - i32.add - local.get $3 - i32.lt_u - i32.and - local.get $4 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - i32.and - 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 $4 - 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 $4 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 24 - i32.shl - local.get $4 - 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 $4 - 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 $4 - 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 $4 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.get $4 - 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 $4 - 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/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - i32.const 0 - i32.const 12 - i32.store - i32.const 12 - i64.const 9071471065260641 - i64.store - local.get $0 - i32.const 0 - call $~lib/string/String.__eq - if (result i32) - i32.const 19 - else - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $4 - i32.const 19 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - i32.const 19 - i32.add - end - local.tee $0 - i32.const 544106784 - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz - if - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $4 - local.get $0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $0 - i32.add - local.set $0 - end - local.get $0 - i32.const 40 - i32.store8 - local.get $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $0 - loop $do-loop|0 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.get $2 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $2 - i32.const 10 - i32.div_u - local.tee $2 - br_if $do-loop|0 - end - local.get $0 - local.get $1 - i32.add - local.tee $0 - i32.const 58 - i32.store8 - local.get $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $0 - loop $do-loop|1 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.get $3 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $3 - i32.const 10 - i32.div_u - local.tee $3 - br_if $do-loop|1 - end - local.get $0 - local.get $1 - i32.add - local.tee $0 - i32.const 2601 - i32.store16 - i32.const 4 - local.get $0 - i32.const 10 - i32.sub - 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/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) - block $break|0 - block $case76|0 - block $case75|0 - block $case74|0 - block $case73|0 - block $case72|0 - block $case71|0 - block $case70|0 - block $case69|0 - block $case68|0 - block $case67|0 - block $case66|0 - block $case65|0 - block $case64|0 - block $case63|0 - block $case62|0 - block $case61|0 - block $case60|0 - block $case59|0 - block $case58|0 - block $case57|0 - block $case56|0 - block $case55|0 - block $case54|0 - block $case53|0 - block $case52|0 - block $case51|0 - block $case50|0 - block $case49|0 - block $case48|0 - block $case47|0 - block $case46|0 - block $case45|0 - block $case44|0 - block $case43|0 - block $case42|0 - block $case41|0 - block $case40|0 - block $case39|0 - block $case38|0 - block $case37|0 - block $case36|0 - block $case35|0 - block $case34|0 - block $case33|0 - block $case32|0 - block $case31|0 - block $case30|0 - block $case29|0 - block $case28|0 - block $case27|0 - block $case26|0 - block $case25|0 - block $case24|0 - block $case23|0 - block $case22|0 - block $case21|0 - block $case20|0 - block $case19|0 - block $case18|0 - block $case17|0 - block $case16|0 - block $case15|0 - block $case14|0 - block $case13|0 - block $case12|0 - block $case11|0 - block $case10|0 - block $case9|0 - block $case8|0 - block $case7|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 65535 - i32.and - br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 $case12|0 $case13|0 $case14|0 $case15|0 $case16|0 $case17|0 $case18|0 $case19|0 $case20|0 $case21|0 $case22|0 $case23|0 $case24|0 $case25|0 $case26|0 $case27|0 $case28|0 $case29|0 $case30|0 $case31|0 $case32|0 $case33|0 $case34|0 $case35|0 $case36|0 $case37|0 $case38|0 $case39|0 $case40|0 $case41|0 $case42|0 $case43|0 $case44|0 $case45|0 $case46|0 $case47|0 $case48|0 $case49|0 $case50|0 $case51|0 $case52|0 $case53|0 $case54|0 $case55|0 $case56|0 $case57|0 $case58|0 $case59|0 $case60|0 $case61|0 $case62|0 $case63|0 $case64|0 $case65|0 $case66|0 $case67|0 $case68|0 $case69|0 $case70|0 $case71|0 $case72|0 $case73|0 $case74|0 $case75|0 $case76|0 $break|0 - end - i32.const 1296 - return - end - i32.const 1344 - return - end - i32.const 1376 - return - end - i32.const 1408 - return - end - i32.const 1456 - return - end - i32.const 1504 - return - end - i32.const 1552 - return - end - i32.const 1584 - return - end - i32.const 1632 - return - end - i32.const 1664 - return - end - i32.const 1696 - return - end - i32.const 1728 - return - end - i32.const 1776 - return - end - i32.const 1808 - return - end - i32.const 1856 - return - end - i32.const 1904 - return - end - i32.const 1952 - return - end - i32.const 1984 - return - end - i32.const 2032 - return - end - i32.const 2064 - return - end - i32.const 2096 - return - end - i32.const 2128 - return - end - i32.const 2160 - return - end - i32.const 2192 - return - end - i32.const 2240 - return - end - i32.const 2272 - return - end - i32.const 2304 - return - end - i32.const 2352 - return - end - i32.const 2384 - return - end - i32.const 2416 - return - end - i32.const 2448 - return - end - i32.const 2480 - return - end - i32.const 2512 - return - end - i32.const 2544 - return - end - i32.const 2576 - return - end - i32.const 2608 - return - end - i32.const 2656 - return - end - i32.const 2704 - return - end - i32.const 2752 - return - end - i32.const 2800 - return - end - i32.const 2848 - return - end - i32.const 2896 - return - end - i32.const 2928 - return - end - i32.const 2960 - return - end - i32.const 2992 - return - end - i32.const 3024 - return - end - i32.const 3056 - return - end - i32.const 3088 - return - end - i32.const 3120 - return - end - i32.const 3152 - return - end - i32.const 3184 - return - end - i32.const 3232 - return - end - i32.const 3264 - return - end - i32.const 3296 - return - end - i32.const 3344 - return - end - i32.const 3376 - return - end - i32.const 3424 - return - end - i32.const 3472 - return - end - i32.const 3520 - return - end - i32.const 3552 - return - end - i32.const 3584 - return - end - i32.const 3616 - return - end - i32.const 3664 - return - end - i32.const 3712 - return - end - i32.const 3744 - return - end - i32.const 3776 - return - end - i32.const 3808 - return - end - i32.const 3856 - return - end - i32.const 3904 - return - end - i32.const 3936 - return - end - i32.const 3968 - return - end - i32.const 4000 - return - end - i32.const 4032 - return - end - i32.const 4064 - return - end - i32.const 4112 - return - end - i32.const 4144 - return - end - i32.const 4176 - return - end - i32.const 4224 - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 4336 - i32.const 268 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 4336 - i32.const 270 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - local.get $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $3 - local.get $2 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $3 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 4336 - i32.const 284 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - i32.eq - if - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl - i32.and - local.set $2 - local.get $1 - local.get $2 - i32.store offset=4 - local.get $2 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $3 - i32.rotl - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 4336 - i32.const 201 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 4336 - i32.const 203 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 - i32.const 4 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 4336 - i32.const 221 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 - i32.add - local.get $3 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 4336 - i32.const 233 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne - if - i32.const 0 - i32.const 4336 - i32.const 234 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - local.get $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $3 - i32.const 7 - i32.sub - local.set $5 - local.get $2 - local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 4336 - i32.const 251 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - local.get $2 - i32.gt_u - if - i32.const 0 - i32.const 4336 - i32.const 377 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $4 - if - local.get $4 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 4336 - i32.const 384 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $4 - i32.load - local.set $3 - local.get $1 - i32.const 16 - i32.sub - local.set $1 - end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 4336 - i32.const 397 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - end - local.get $2 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $2 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $3 - i32.const 2 - i32.and - local.get $2 - i32.const 8 - i32.sub - local.tee $2 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.tee $2 - i32.const 2 - i32.store - local.get $0 - local.get $2 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 24368 - i32.const 0 - i32.store - i32.const 25936 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 24368 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.lt_u - if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 24368 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 24368 - i32.const 25940 - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - i32.const 24368 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i32.const 256 - i32.lt_u - if (result i32) - local.get $1 - i32.const 4 - i32.shr_u - else - i32.const 31 - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - local.get $1 - local.get $1 - i32.const 536870910 - i32.lt_u - select - local.tee $1 - i32.clz - i32.sub - local.tee $3 - i32.const 7 - i32.sub - local.set $2 - local.get $1 - local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 4336 - i32.const 330 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 4336 - i32.const 343 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 4400 - i32.const 4336 - i32.const 458 - i32.const 29 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 12 - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.get $1 - i32.const 12 - i32.le_u - select - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $0 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.get $3 - local.get $3 - i32.const 536870910 - i32.lt_u - select - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $1 - local.get $2 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $0 - local.get $1 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 4336 - i32.const 496 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - local.get $3 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 4336 - i32.const 498 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $4 - local.get $3 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 4336 - i32.const 357 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - i32.const -4 - i32.and - local.get $3 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $4 - i32.const -2 - i32.and - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - ) - (func $~lib/rt/tlsf/__free (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 24356 - i32.lt_u - if - return - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $2 - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $1 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 4336 - i32.const 559 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/process/writeString (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $1 - i32.load16_u offset=6 - local.tee $2 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $1 - i32.load16_u offset=4 - local.tee $4 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $1 - i32.load16_u offset=2 - local.tee $3 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $1 - i32.load16_u - local.tee $6 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 1136 - i32.const 1144 - i32.store - i32.const 1140 - local.get $5 - i32.store - i32.const 1144 - local.get $6 - local.get $3 - i32.const 8 - i32.shl - i32.or - local.get $4 - i32.const 16 - i32.shl - i32.or - local.get $2 - i32.const 24 - i32.shl - i32.or - i32.store - local.get $0 - i32.const 1136 - i32.const 1 - i32.const 1148 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4272 - i32.const 211 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - return - end - local.get $1 - local.set $2 - local.get $1 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $4 - i32.const 0 - local.set $3 - loop $while-continue|0 - local.get $1 - local.get $4 - i32.lt_u - if - local.get $1 - i32.load16_u - local.tee $6 - i32.const 128 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1 - i32.add - else - local.get $6 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $3 - i32.const 2 - i32.add - else - local.get $6 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - local.get $1 - i32.const 2 - i32.add - local.get $4 - i32.lt_u - i32.and - if - local.get $1 - i32.load16_u offset=2 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $3 - i32.const 4 - i32.add - local.set $3 - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $3 - i32.const 3 - i32.add - end - end - local.set $3 - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $3 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $1 - i32.const 3 - global.set $~argumentsLength - local.get $2 - local.get $5 - local.get $1 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $3 - i32.ne - if - i32.const 0 - i32.const 4272 - i32.const 217 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1136 - local.get $1 - i32.store - i32.const 1140 - local.get $3 - i32.store - local.get $0 - i32.const 1136 - i32.const 1 - i32.const 1144 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $0 - local.get $1 - call $~lib/rt/tlsf/__free - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4272 - i32.const 222 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $~lib/console/timers - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - i32.const 5120 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 5264 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 5696 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 4400 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 1184 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 6432 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 7488 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 4992 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 4992 - i32.const 147 - i32.const 30 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - i32.const 0 - local.get $0 - i32.const 24356 - i32.lt_u - local.get $0 - i32.load offset=8 - select - i32.eqz - if - i32.const 0 - i32.const 4992 - i32.const 127 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 4992 - i32.const 131 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 7936 - i32.load - i32.gt_u - if - i32.const 5120 - i32.const 5184 - i32.const 22 - i32.const 28 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 3 - i32.shl - i32.const 7940 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 24356 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 4992 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 24356 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 4400 - i32.const 4992 - i32.const 260 - i32.const 31 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $2 - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - if (result i32) - local.get $0 - local.tee $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - i32.const 16 - i32.ge_u - if (result i32) - i32.const 606290984 - local.set $2 - i32.const -2048144777 - local.set $4 - i32.const 1640531535 - local.set $5 - local.get $1 - local.get $3 - i32.add - i32.const 16 - i32.sub - local.set $7 - loop $while-continue|0 - local.get $1 - local.get $7 - i32.le_u - if - local.get $2 - local.get $1 - i32.load - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 - local.get $4 - local.get $1 - i32.load offset=4 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $4 - local.get $6 - local.get $1 - i32.load offset=8 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $6 - local.get $5 - local.get $1 - i32.load offset=12 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $5 - local.get $1 - i32.const 16 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $3 - local.get $2 - i32.const 1 - i32.rotl - local.get $4 - i32.const 7 - i32.rotl - i32.add - local.get $6 - i32.const 12 - i32.rotl - i32.add - local.get $5 - i32.const 18 - i32.rotl - i32.add - i32.add - else - local.get $3 - i32.const 374761393 - i32.add - end - local.set $2 - local.get $0 - local.get $3 - i32.add - i32.const 4 - i32.sub - local.set $4 - loop $while-continue|1 - local.get $1 - local.get $4 - i32.le_u - if - local.get $2 - local.get $1 - i32.load - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $2 - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|1 - end - end - local.get $0 - local.get $3 - i32.add - local.set $0 - loop $while-continue|2 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $2 - local.get $1 - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|2 - end - end - local.get $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - else - i32.const 0 - end - ) - (func $~lib/process/process.hrtime (result i64) - (local $0 i32) - i32.const 1 - i64.const 0 - i32.const 1136 - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4272 - i32.const 75 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1136 - i64.load - ) - (func $~lib/map/Map<~lib/string/String,u64>#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $7 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 - i32.ne - if - local.get $7 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.load - local.tee $8 - i32.store offset=8 - local.get $2 - local.get $8 - i32.store - local.get $2 - local.get $7 - i64.load offset=8 - i64.store offset=8 - local.get $2 - local.get $6 - local.get $8 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $1 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=16 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 24 - i32.add - local.set $2 - end - local.get $7 - i32.const 24 - i32.add - local.set $7 - br $while-continue|0 - end - end - local.get $0 - local.get $6 - i32.store - local.get $6 - if - local.get $0 - local.get $6 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $1 - i32.store offset=4 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $0 - local.get $3 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $5 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i32.load - i32.store - else - local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end - ) - (func $~lib/number/U64#toString (param $0 i64) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 - local.get $0 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 6000 - local.set $2 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $0 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.wrap_i64 - local.tee $1 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 100 - i32.lt_u - if (result i32) - local.get $1 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $1 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $1 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $1 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $1 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $1 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $1 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - loop $while-continue|0 - local.get $0 - i64.const 100000000 - i64.ge_u - if - local.get $2 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $0 - i64.const 100000000 - i64.div_u - local.tee $0 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $2 - local.get $1 - i32.const 4 - i32.sub - local.tee $1 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 6012 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $2 - local.get $0 - i32.wrap_i64 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $2 - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $invalid - block $~lib/map/Map<~lib/string/String,u64> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/map/Map<~lib/string/String,u64> $invalid - end - return - end - return - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - local.get $0 - i32.load - local.tee $1 - if - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - local.get $0 - i32.load offset=8 - local.tee $1 - local.tee $0 - i32.add - local.set $3 - loop $while-continue|0 - local.get $0 - local.get $3 - i32.lt_u - if - local.get $0 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - end - local.get $0 - i32.const 24 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $1 - if - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - unreachable - ) - (func $~start - (local $0 i32) - (local $1 i32) - global.get $~started - if - return - end - i32.const 1 - global.set $~started - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i32.const 1056 - i32.store - i32.const 0 - i32.const 1056 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 4496 - i32.store - i32.const 1 - i32.const 4496 - call $~lib/console/console.assert - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=4 - i32.const 4528 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4576 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4624 - i32.store - i32.const 1 - i32.const 4624 - call $~lib/process/writeString - i32.const 1 - i32.const 4576 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4672 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4720 - i32.store - i32.const 1 - i32.const 4720 - call $~lib/process/writeString - i32.const 1 - i32.const 4672 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4800 - i32.store - i32.const 1 - i32.const 4800 - call $~lib/process/writeString - i32.const 1 - i32.const 4752 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4848 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 4896 - i32.store - i32.const 1 - i32.const 4896 - call $~lib/process/writeString - i32.const 1 - i32.const 4848 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 24356 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 5044 - i32.const 5040 - i32.store - i32.const 5048 - i32.const 5040 - i32.store - i32.const 5040 - global.set $~lib/rt/itcms/pinSpace - i32.const 5076 - i32.const 5072 - i32.store - i32.const 5080 - i32.const 5072 - i32.store - i32.const 5072 - global.set $~lib/rt/itcms/toSpace - i32.const 5220 - i32.const 5216 - i32.store - i32.const 5224 - i32.const 5216 - i32.store - i32.const 5216 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 0 - i32.store - local.get $0 - i32.const 24 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store - local.get $1 - if - local.get $0 - local.get $1 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 3 - i32.store offset=4 - local.get $0 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $1 - i32.store offset=8 - local.get $1 - if - local.get $0 - local.get $1 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - i32.const 4 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $~lib/console/timers - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - i32.const 4944 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - i32.const 4944 - call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - i32.const 4944 - call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/console/console.timeLog - global.get $~lib/memory/__stack_pointer - i32.const 7728 - i32.store offset=4 - i32.const 7728 - call $~lib/console/console.timeEnd - global.get $~lib/memory/__stack_pointer - i32.const 7776 - i32.store offset=4 - i32.const 7776 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 7776 - i32.store offset=4 - i32.const 7776 - call $~lib/console/console.time - global.get $~lib/memory/__stack_pointer - i32.const 7824 - i32.store offset=4 - i32.const 7824 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7856 - i32.store offset=4 - i32.const 7856 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7888 - i32.store offset=4 - i32.const 7888 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7920 - i32.store offset=4 - i32.const 7920 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $~lib/console/console.assert (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - i32.const 2 - i32.const 1088 - call $~lib/process/writeString - i32.const 2 - local.get $1 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 2 - i32.const 4464 - call $~lib/process/writeString - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.log (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store - i32.const 1 - i32.const 4464 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,u64>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=16 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $3 - i32.store - local.get $3 - local.get $1 - call $~lib/string/String.__eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/console/console.time (param $0 i32) - (local $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - global.get $~lib/console/timers - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - if - global.get $~lib/memory/__stack_pointer - i32.const 5376 - i32.store offset=4 - i32.const 1 - i32.const 5376 - call $~lib/process/writeString - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=4 - i32.const 1 - i32.const 5440 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - global.get $~lib/memory/__stack_pointer - global.get $~lib/console/timers - local.tee $2 - i32.store - call $~lib/process/process.hrtime - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - local.get $0 - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - local.tee $4 - call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $3 - if - local.get $3 - local.get $1 - i64.store offset=8 - else - local.get $2 - i32.load offset=16 - local.get $2 - i32.load offset=12 - i32.eq - if - local.get $2 - local.get $2 - i32.load offset=20 - local.get $2 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $2 - i32.load offset=4 - else - local.get $2 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/map/Map<~lib/string/String,u64>#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.load offset=8 - local.tee $5 - i32.store - local.get $2 - local.get $2 - i32.load offset=16 - local.tee $3 - i32.const 1 - i32.add - i32.store offset=16 - local.get $5 - local.get $3 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $0 - i32.store - local.get $0 - if - local.get $2 - local.get $0 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $3 - local.get $1 - i64.store offset=8 - local.get $2 - local.get $2 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $2 - i32.load - local.get $4 - local.get $2 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $~lib/console/timeLogImpl (param $0 i32) - (local $1 i64) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $2 - i64.const 0 - i64.store - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - global.get $~lib/console/timers - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $2 - i32.eqz - if - i32.const 5696 - i32.const 5760 - i32.const 105 - i32.const 17 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i64.load offset=8 - local.set $1 - call $~lib/process/process.hrtime - local.get $1 - i64.sub - i64.const 1000000 - i64.div_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/number/U64#toString - local.tee $2 - i32.store offset=4 - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 7584 - i32.store offset=8 - i32.const 1 - i32.const 7584 - call $~lib/process/writeString - i32.const 1 - local.get $2 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 7616 - i32.store offset=8 - i32.const 1 - i32.const 7616 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.timeLog (param $0 i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - global.get $~lib/console/timers - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 5536 - i32.store offset=4 - i32.const 1 - i32.const 5536 - call $~lib/process/writeString - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store offset=4 - i32.const 1 - i32.const 5616 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $0 - call $~lib/console/timeLogImpl - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/console/console.timeEnd (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - global.get $~lib/console/timers - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 5536 - i32.store offset=4 - i32.const 1 - i32.const 5536 - call $~lib/process/writeString - i32.const 1 - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 7648 - i32.store offset=4 - i32.const 1 - i32.const 7648 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $0 - call $~lib/console/timeLogImpl - global.get $~lib/memory/__stack_pointer - global.get $~lib/console/timers - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $0 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,u64>#find - local.tee $0 - if - local.get $0 - local.get $0 - i32.load offset=16 - i32.const 1 - i32.or - i32.store offset=16 - local.get $1 - local.get $1 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.tee $2 - i32.const 1 - i32.add - i32.const 4 - local.get $1 - i32.load offset=20 - local.tee $0 - local.get $0 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - local.get $1 - i32.load offset=20 - local.get $1 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - local.get $1 - local.get $2 - call $~lib/map/Map<~lib/string/String,u64>#rehash - end - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7972 - i32.lt_s - if - i32.const 24384 - i32.const 24432 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 5264 - i32.const 5312 - i32.const 52 - i32.const 43 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 4992 - i32.const 294 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) -) diff --git a/tests/compiler/std-wasi/console.ts b/tests/compiler/std-wasi/console.ts deleted file mode 100644 index 007cbb67e3..0000000000 --- a/tests/compiler/std-wasi/console.ts +++ /dev/null @@ -1,27 +0,0 @@ -import "wasi"; - -// asserts -console.assert(false, "whoops"); -console.assert(true, "phew"); - -// prefixes -console.log("hello log"); -console.debug("hello debug"); -console.info("hello info"); -console.warn("hello warn"); -console.error("hello error"); - -// timers -console.time("someLabel"); -console.timeLog("someLabel"); -console.timeEnd("someLabel"); -console.timeLog("wrongLabel"); -console.timeEnd("wrongLabel"); -console.time("duplicateLabel"); -console.time("duplicateLabel"); - -// fast writes -console.log("1"); -console.log("12"); -console.log("123"); -console.log("1234"); diff --git a/tests/compiler/std-wasi/crypto.debug.wat b/tests/compiler/std-wasi/crypto.debug.wat deleted file mode 100644 index 5d310e4418..0000000000 --- a/tests/compiler/std-wasi/crypto.debug.wat +++ /dev/null @@ -1,5736 +0,0 @@ -(module - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_=>_none (func (param i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $none_=>_none (func)) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 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 $none_=>_i32 (func (result i32))) - (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) - (type $i32_i64_i32_i32_=>_none (func (param i32 i64 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))) - (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32))) - (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) - (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $std-wasi/crypto/ab (mut i32) (i32.const 0)) - (global $std-wasi/crypto/buf (mut i32) (i32.const 0)) - (global $~lib/process/process.stdout i32 (i32.const 1)) - (global $~lib/bindings/wasi/tempbuf i32 (i32.const 5648)) - (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) - (global $std-wasi/crypto/b1 (mut i32) (i32.const 0)) - (global $std-wasi/crypto/b2 (mut i32) (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 5840)) - (global $~lib/memory/__data_end i32 (i32.const 5876)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 22260)) - (global $~lib/memory/__heap_base i32 (i32.const 22260)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 368) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 400) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 428) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 544) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 572) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 636) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 700) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G\00") - (data (i32.const 780) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00C\00C\00E\00S\00\00\00") - (data (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 860) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L\00\00\00\00\00") - (data (i32.const 908) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T\00\00\00\00\00\00\00") - (data (i32.const 956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00G\00A\00I\00N\00\00\00") - (data (i32.const 988) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00A\00D\00F\00\00\00\00\00") - (data (i32.const 1068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G\00") - (data (i32.const 1100) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00U\00S\00Y\00\00\00\00\00") - (data (i32.const 1132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00C\00H\00I\00L\00D\00\00\00") - (data (i32.const 1212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D\00\00\00\00\00\00\00") - (data (i32.const 1260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D\00\00\00\00\00\00\00") - (data (i32.const 1308) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1356) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K\00") - (data (i32.const 1388) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q\00\00\00\00\00\00\00") - (data (i32.const 1436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00D\00O\00M\00\00\00\00\00\00\00") - (data (i32.const 1468) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T\00\00\00") - (data (i32.const 1500) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00E\00X\00I\00S\00T\00\00\00") - (data (i32.const 1532) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00F\00A\00U\00L\00T\00\00\00") - (data (i32.const 1564) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00F\00B\00I\00G\00\00\00\00\00") - (data (i32.const 1596) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00") - (data (i32.const 1644) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00D\00R\00M\00\00\00\00\00") - (data (i32.const 1676) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q\00\00\00") - (data (i32.const 1708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S\00\00\00\00\00\00\00\00\00") - (data (i32.const 1756) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00N\00T\00R\00\00\00\00\00") - (data (i32.const 1788) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00N\00V\00A\00L\00\00\00") - (data (i32.const 1820) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00I\00O\00\00\00\00\00\00\00\00\00") - (data (i32.const 1852) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N\00") - (data (i32.const 1884) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00S\00D\00I\00R\00\00\00") - (data (i32.const 1916) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00L\00O\00O\00P\00\00\00\00\00") - (data (i32.const 1948) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00F\00I\00L\00E\00\00\00") - (data (i32.const 1980) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00L\00I\00N\00K\00\00\00") - (data (i32.const 2012) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2060) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2108) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G\00\00\00\00\00\00\00") - (data (i32.const 2156) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2252) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00\00\00") - (data (i32.const 2300) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00F\00I\00L\00E\00\00\00") - (data (i32.const 2332) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S\00") - (data (i32.const 2364) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00D\00E\00V\00\00\00") - (data (i32.const 2396) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00E\00N\00T\00\00\00") - (data (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C\00") - (data (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00L\00C\00K\00\00\00") - (data (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K\00") - (data (i32.const 2524) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00E\00M\00\00\00") - (data (i32.const 2556) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00S\00G\00\00\00") - (data (i32.const 2588) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T\00\00\00\00\00\00\00\00\00") - (data (i32.const 2636) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00P\00C\00\00\00") - (data (i32.const 2668) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S\00\00\00") - (data (i32.const 2700) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2748) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R\00") - (data (i32.const 2780) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2828) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E\00") - (data (i32.const 2876) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2924) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P\00") - (data (i32.const 2956) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y\00\00\00") - (data (i32.const 2988) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00N\00X\00I\00O\00\00\00\00\00") - (data (i32.const 3020) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3068) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3116) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00E\00R\00M\00\00\00\00\00") - (data (i32.const 3148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00I\00P\00E\00\00\00\00\00") - (data (i32.const 3180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00P\00R\00O\00T\00O\00\00\00") - (data (i32.const 3212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T\00") - (data (i32.const 3260) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3308) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00R\00A\00N\00G\00E\00\00\00") - (data (i32.const 3340) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00R\00O\00F\00S\00\00\00\00\00") - (data (i32.const 3372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00P\00I\00P\00E\00\00\00") - (data (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00S\00R\00C\00H\00\00\00\00\00") - (data (i32.const 3436) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00T\00A\00L\00E\00\00\00") - (data (i32.const 3468) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3516) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y\00") - (data (i32.const 3548) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00X\00D\00E\00V\00\00\00\00\00") - (data (i32.const 3580) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E\00\00\00\00\00\00\00\00\00") - (data (i32.const 3628) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3676) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s\00") - (data (i32.const 3724) "L\00\00\00\00\00\00\00\00\00\00\00\01\00\00\000\00\00\00c\00r\00y\00p\00t\00o\00.\00g\00e\00t\00R\00a\00n\00d\00o\00m\00V\00a\00l\00u\00e\00s\00:\00 \00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3804) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3836) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") - (data (i32.const 3964) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4028) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4060) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 4460) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5516) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") - (data (i32.const 5612) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00,\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5648) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5676) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5740) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 5772) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00s\00t\00d\00-\00w\00a\00s\00i\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 5840) "\04\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\02\00\00\00") - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "memory" (memory $0)) - (export "_start" (func $~start)) - (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - ) - (func $~lib/util/string/compareImpl (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) - (local $8 i32) - (local $9 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - i32.const 0 - i32.const 2 - i32.lt_s - drop - local.get $4 - i32.const 4 - i32.ge_u - if (result i32) - local.get $5 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.or - i32.eqz - else - i32.const 0 - end - if - block $do-break|0 - loop $do-loop|0 - local.get $5 - i64.load - local.get $6 - i64.load - i64.ne - if - br $do-break|0 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $6 - i32.const 8 - i32.add - local.set $6 - local.get $4 - i32.const 4 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 - local.get $4 - local.tee $7 - i32.const 1 - i32.sub - local.set $4 - local.get $7 - local.set $7 - local.get $7 - if - local.get $5 - i32.load16_u - local.set $8 - local.get $6 - i32.load16_u - local.set $9 - local.get $8 - local.get $9 - i32.ne - if - local.get $8 - local.get $9 - i32.sub - return - end - local.get $5 - i32.const 2 - i32.add - local.set $5 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $while-continue|1 - end - end - i32.const 0 - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end - if - i32.const 0 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - return - end - local.get $0 - i32.const 0 - local.get $1 - i32.const 0 - local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - ) - (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - ) - (func $~lib/string/String.UTF8.encodeUnsafe (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) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.set $6 - loop $while-continue|0 - local.get $0 - local.get $5 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $0 - i32.load16_u - local.set $8 - local.get $8 - i32.const 128 - i32.lt_u - if - local.get $6 - local.get $8 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - local.get $3 - local.get $8 - i32.eqz - i32.and - if - local.get $6 - local.get $2 - i32.sub - return - end - else - local.get $8 - i32.const 2048 - i32.lt_u - if - local.get $8 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.set $9 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $10 - local.get $6 - local.get $10 - i32.const 8 - i32.shl - local.get $9 - i32.or - i32.store16 - local.get $6 - i32.const 2 - i32.add - local.set $6 - else - local.get $8 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - if - local.get $8 - i32.const 56320 - i32.lt_u - if (result i32) - local.get $0 - i32.const 2 - i32.add - local.get $5 - i32.lt_u - else - i32.const 0 - end - if - local.get $0 - i32.load16_u offset=2 - local.set $10 - local.get $10 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - i32.const 65536 - local.get $8 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.add - local.get $10 - i32.const 1023 - i32.and - i32.or - local.set $8 - local.get $8 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.set $9 - local.get $8 - i32.const 12 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $11 - local.get $8 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $12 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $13 - local.get $6 - local.get $13 - i32.const 24 - i32.shl - local.get $12 - i32.const 16 - i32.shl - i32.or - local.get $11 - i32.const 8 - i32.shl - i32.or - local.get $9 - i32.or - i32.store - local.get $6 - i32.const 4 - i32.add - local.set $6 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $4 - i32.const 0 - i32.ne - if - local.get $4 - i32.const 2 - i32.eq - if - i32.const 32 - i32.const 96 - i32.const 742 - i32.const 49 - call $~lib/wasi/index/abort - unreachable - end - i32.const 65533 - local.set $8 - end - end - local.get $8 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.set $10 - local.get $8 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $13 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $12 - local.get $6 - local.get $13 - i32.const 8 - i32.shl - local.get $10 - i32.or - i32.store16 - local.get $6 - local.get $12 - i32.store8 offset=2 - local.get $6 - i32.const 3 - i32.add - local.set $6 - 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 $6 - local.tee $7 - i32.const 1 - i32.add - local.set $6 - local.get $7 - i32.const 0 - i32.store8 - end - local.get $6 - local.get $2 - i32.sub - ) - (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 3 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $3 - end - i32.const 0 - local.set $4 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - ) - (func $~lib/util/number/decimalCount32 (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/bindings/wasi_snapshot_preview1/iovec#set:buf_len (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 0 - i32.const 12 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf - 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 - call $~lib/string/String.__ne - if - local.get $4 - local.get $0 - local.get $0 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - 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 - call $~lib/string/String.__ne - if - local.get $4 - local.get $1 - local.get $1 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - 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-loop|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 - br_if $do-loop|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-loop|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 - br_if $do-loop|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 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len - 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/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:prev - local.get $0 - ) - (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - ) - (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - ) - (func $~lib/rt/itcms/visitRoots (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $1 - local.get $1 - call $~lib/rt/itcms/Object#get:next - local.set $2 - loop $while-continue|0 - local.get $2 - local.get $1 - i32.ne - local.set $3 - local.get $3 - if - i32.const 1 - drop - local.get $2 - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 20 - i32.add - local.get $0 - call $~lib/rt/__visit_members - local.get $2 - call $~lib/rt/itcms/Object#get:next - local.set $2 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $1 - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $1 - local.get $1 - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $0 - i32.load offset=8 - i32.const 0 - i32.eq - if (result i32) - local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 127 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - drop - local.get $2 - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 131 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $2 - call $~lib/rt/itcms/Object#set:prev - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/__typeinfo (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 448 - i32.const 512 - i32.const 22 - i32.const 28 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.load offset=12 - local.set $1 - local.get $1 - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - ) - (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - local.get $2 - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - local.get $3 - call $~lib/rt/itcms/Object#set:prev - local.get $3 - local.get $0 - call $~lib/rt/itcms/Object#set:next - local.get $1 - local.get $0 - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 320 - i32.const 147 - i32.const 30 - call $~lib/wasi/index/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $0 - call $~lib/rt/itcms/Object#unlink - local.get $0 - global.get $~lib/rt/itcms/toSpace - local.get $0 - call $~lib/rt/itcms/Object#get:isPointerfree - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end - call $~lib/rt/itcms/Object#linkTo - ) - (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.set $2 - i32.const 0 - drop - local.get $2 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $2 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/itcms/visitStack (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - local.set $1 - loop $while-continue|0 - local.get $1 - global.get $~lib/memory/__heap_base - i32.lt_u - local.set $2 - local.get $2 - if - local.get $1 - i32.load - local.get $0 - call $~lib/rt/itcms/__visit - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) - i32.const 4 - local.get $0 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 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.get $1 - i32.load - local.set $2 - i32.const 1 - drop - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 268 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $3 - i32.const 1 - drop - local.get $3 - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 270 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $4 - local.get $3 - i32.const 4 - i32.shr_u - local.set $5 - else - local.get $3 - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $6 - i32.const 31 - local.get $6 - i32.clz - i32.sub - local.set $4 - local.get $6 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $5 - local.get $4 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $4 - end - i32.const 1 - drop - local.get $4 - i32.const 23 - i32.lt_u - if (result i32) - local.get $5 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 284 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.set $8 - local.get $1 - i32.load offset=8 - local.set $9 - local.get $8 - if - local.get $8 - local.get $9 - call $~lib/rt/tlsf/Block#set:next - end - local.get $9 - if - local.get $9 - local.get $8 - call $~lib/rt/tlsf/Block#set:prev - end - local.get $1 - local.get $0 - local.set $10 - local.get $4 - local.set $6 - local.get $5 - local.set $7 - local.get $10 - local.get $6 - i32.const 4 - i32.shl - local.get $7 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - i32.eq - if - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $6 - local.get $9 - local.set $7 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=96 - local.get $9 - i32.eqz - if - local.get $0 - local.set $6 - local.get $4 - local.set $7 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $6 - local.get $0 - local.set $7 - local.get $4 - local.set $11 - local.get $6 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $6 - local.set $10 - local.get $7 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - local.get $6 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 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 $13 i32) - i32.const 1 - drop - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 201 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load - local.set $2 - i32.const 1 - drop - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 203 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.set $3 - local.get $3 - i32.const 4 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - local.get $5 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $2 - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $1 - local.set $3 - local.get $3 - i32.const 4 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $1 - local.set $3 - local.get $3 - i32.const 4 - i32.sub - i32.load - local.set $3 - local.get $3 - i32.load - local.set $6 - i32.const 1 - drop - local.get $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 221 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 - local.set $1 - local.get $1 - local.get $6 - i32.const 4 - i32.add - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $2 - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $4 - local.get $5 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $7 - i32.const 1 - drop - local.get $7 - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 233 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1 - drop - local.get $1 - i32.const 4 - i32.add - local.get $7 - i32.add - local.get $4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 234 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $7 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $8 - local.get $7 - i32.const 4 - i32.shr_u - local.set $9 - else - local.get $7 - local.tee $3 - i32.const 1073741820 - local.tee $6 - local.get $3 - local.get $6 - i32.lt_u - select - local.set $3 - i32.const 31 - local.get $3 - i32.clz - i32.sub - local.set $8 - local.get $3 - local.get $8 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $9 - local.get $8 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $8 - end - i32.const 1 - drop - local.get $8 - i32.const 23 - i32.lt_u - if (result i32) - local.get $9 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 251 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.set $10 - local.get $8 - local.set $3 - local.get $9 - local.set $6 - local.get $10 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $11 - local.get $1 - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $1 - local.get $11 - call $~lib/rt/tlsf/Block#set:next - local.get $11 - if - local.get $11 - local.get $1 - call $~lib/rt/tlsf/Block#set:prev - end - local.get $0 - local.set $12 - local.get $8 - local.set $10 - local.get $9 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $10 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $8 - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $0 - local.set $13 - local.get $8 - local.set $12 - local.get $0 - local.set $3 - local.get $8 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 1 - local.get $9 - i32.shl - i32.or - local.set $10 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 1 - drop - local.get $1 - local.get $2 - i32.le_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 377 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $2 - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $2 - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - local.set $4 - i32.const 0 - local.set $5 - local.get $4 - if - i32.const 1 - drop - local.get $1 - local.get $4 - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 384 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $1 - i32.const 16 - i32.sub - local.set $1 - local.get $4 - i32.load - local.set $5 - else - nop - end - else - i32.const 1 - drop - local.get $1 - local.get $0 - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 397 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - end - local.get $2 - local.get $1 - i32.sub - local.set $6 - local.get $6 - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $6 - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $7 - local.get $1 - local.set $8 - local.get $8 - local.get $7 - i32.const 1 - i32.or - local.get $5 - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $8 - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $8 - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $1 - i32.const 4 - i32.add - local.get $7 - i32.add - local.set $4 - local.get $4 - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $8 - call $~lib/rt/tlsf/insertBlock - i32.const 1 - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 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) - i32.const 0 - drop - global.get $~lib/memory/__heap_base - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $0 - memory.size - local.set $1 - local.get $0 - i32.const 1572 - i32.add - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $2 - local.get $1 - i32.gt_s - if (result i32) - local.get $2 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $0 - local.set $3 - local.get $3 - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 23 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $3 - local.set $8 - local.get $5 - local.set $7 - i32.const 0 - local.set $6 - local.get $8 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $8 - loop $for-loop|1 - local.get $8 - i32.const 16 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $3 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|1 - end - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $0 - i32.const 1572 - i32.add - local.set $12 - i32.const 0 - drop - local.get $3 - local.get $12 - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $3 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $1 - i32.load - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 559 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - ) - (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $0 i32) - local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - if - return - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/rt/itcms/free (param $0 i32) - local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $0 - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $0 - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - local.set $1 - local.get $1 - i32.const 0 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case2|0 - br $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $2 - local.get $2 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - call $~lib/rt/itcms/Object#get:color - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $0 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.eq - if - i32.const 0 - call $~lib/rt/itcms/visitStack - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $2 - local.get $2 - if - local.get $0 - call $~lib/rt/itcms/Object#get:color - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - call $~lib/rt/itcms/Object#set:color - local.get $0 - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $2 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $2 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $2 - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/iter - local.set $0 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $0 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - call $~lib/rt/itcms/free - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:nextWithColor - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:prev - i32.const 0 - global.set $~lib/rt/itcms/state - br $break|0 - end - i32.const 0 - ) - (func $~lib/rt/itcms/interrupt - (local $0 i32) - i32.const 0 - drop - i32.const 0 - drop - i32.const 1024 - i32.const 200 - i32.mul - i32.const 100 - i32.div_u - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i32.const 1024 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.mul - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - ) - (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) - local.get $0 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $0 - i32.const 4 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - i32.const 4 - i32.sub - end - ) - (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 256 - i32.const 592 - i32.const 458 - i32.const 29 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/computeSize - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $2 - local.get $1 - i32.const 4 - i32.shr_u - local.set $3 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $1 - end - local.set $4 - i32.const 31 - local.get $4 - i32.clz - i32.sub - local.set $2 - local.get $4 - local.get $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $3 - local.get $2 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $2 - end - i32.const 1 - drop - local.get $2 - i32.const 23 - i32.lt_u - if (result i32) - local.get $3 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 330 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 0 - i32.const -1 - i32.xor - local.get $3 - i32.shl - i32.and - local.set $6 - i32.const 0 - local.set $7 - local.get $6 - i32.eqz - if - local.get $0 - i32.load - i32.const 0 - i32.const -1 - i32.xor - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.set $5 - local.get $5 - i32.eqz - if - i32.const 0 - local.set $7 - else - local.get $5 - i32.ctz - local.set $2 - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $6 - i32.const 1 - drop - local.get $6 - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 343 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - else - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - local.get $7 - ) - (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 0 - drop - local.get $1 - i32.const 536870910 - i32.lt_u - if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.set $1 - end - memory.size - local.set $2 - local.get $1 - i32.const 4 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - i32.ne - i32.shl - i32.add - local.set $1 - local.get $1 - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $4 - local.get $2 - local.tee $3 - local.get $4 - local.tee $5 - local.get $3 - local.get $5 - i32.gt_s - select - local.set $6 - local.get $6 - memory.grow - i32.const 0 - i32.lt_s - if - local.get $4 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $7 - local.get $0 - local.get $2 - i32.const 16 - i32.shl - local.get $7 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.set $3 - i32.const 1 - drop - local.get $2 - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 357 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $1 - local.get $2 - local.get $3 - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.set $5 - local.get $5 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $0 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $1 - local.set $5 - local.get $5 - i32.const 4 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $1 - local.set $5 - local.get $5 - i32.const 4 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - i32.load - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 - local.get $3 - i32.eqz - if - local.get $0 - local.get $2 - call $~lib/rt/tlsf/growMemory - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 - i32.const 1 - drop - local.get $3 - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 496 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - i32.const 1 - drop - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 592 - i32.const 498 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - ) - (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 256 - i32.const 320 - i32.const 260 - i32.const 31 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - call $~lib/rt/itcms/interrupt - end - i32.const 16 - local.get $0 - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $2 - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:rtId - local.get $2 - local.get $0 - call $~lib/rt/itcms/Object#set:rtSize - local.get $2 - global.get $~lib/rt/itcms/fromSpace - global.get $~lib/rt/itcms/white - call $~lib/rt/itcms/Object#linkTo - global.get $~lib/rt/itcms/total - local.get $2 - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.set $3 - local.get $3 - i32.const 0 - local.get $0 - memory.fill - local.get $3 - ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.eqz - if - return - end - i32.const 1 - drop - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 294 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 20 - i32.sub - local.set $3 - local.get $3 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.set $4 - local.get $4 - call $~lib/rt/itcms/Object#get:color - local.set $5 - local.get $5 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $2 - if - local.get $4 - call $~lib/rt/itcms/Object#makeGray - else - local.get $3 - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $5 - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - else - i32.const 0 - end - if - local.get $3 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/arraybuffer/ArrayBufferView#get:byteOffset (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $0 - i32.load - i32.sub - ) - (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) - (local $1 i32) - block $break|0 - block $case76|0 - block $case75|0 - block $case74|0 - block $case73|0 - block $case72|0 - block $case71|0 - block $case70|0 - block $case69|0 - block $case68|0 - block $case67|0 - block $case66|0 - block $case65|0 - block $case64|0 - block $case63|0 - block $case62|0 - block $case61|0 - block $case60|0 - block $case59|0 - block $case58|0 - block $case57|0 - block $case56|0 - block $case55|0 - block $case54|0 - block $case53|0 - block $case52|0 - block $case51|0 - block $case50|0 - block $case49|0 - block $case48|0 - block $case47|0 - block $case46|0 - block $case45|0 - block $case44|0 - block $case43|0 - block $case42|0 - block $case41|0 - block $case40|0 - block $case39|0 - block $case38|0 - block $case37|0 - block $case36|0 - block $case35|0 - block $case34|0 - block $case33|0 - block $case32|0 - block $case31|0 - block $case30|0 - block $case29|0 - block $case28|0 - block $case27|0 - block $case26|0 - block $case25|0 - block $case24|0 - block $case23|0 - block $case22|0 - block $case21|0 - block $case20|0 - block $case19|0 - block $case18|0 - block $case17|0 - block $case16|0 - block $case15|0 - block $case14|0 - block $case13|0 - block $case12|0 - block $case11|0 - block $case10|0 - block $case9|0 - block $case8|0 - block $case7|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 65535 - i32.and - local.set $1 - local.get $1 - i32.const 0 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $1 - i32.const 3 - i32.eq - br_if $case3|0 - local.get $1 - i32.const 4 - i32.eq - br_if $case4|0 - local.get $1 - i32.const 5 - i32.eq - br_if $case5|0 - local.get $1 - i32.const 6 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 7 - i32.eq - br_if $case7|0 - local.get $1 - i32.const 8 - i32.eq - br_if $case8|0 - local.get $1 - i32.const 9 - i32.eq - br_if $case9|0 - local.get $1 - i32.const 10 - i32.eq - br_if $case10|0 - local.get $1 - i32.const 11 - i32.eq - br_if $case11|0 - local.get $1 - i32.const 12 - i32.eq - br_if $case12|0 - local.get $1 - i32.const 13 - i32.eq - br_if $case13|0 - local.get $1 - i32.const 14 - i32.eq - br_if $case14|0 - local.get $1 - i32.const 15 - i32.eq - br_if $case15|0 - local.get $1 - i32.const 16 - i32.eq - br_if $case16|0 - local.get $1 - i32.const 17 - i32.eq - br_if $case17|0 - local.get $1 - i32.const 18 - i32.eq - br_if $case18|0 - local.get $1 - i32.const 19 - i32.eq - br_if $case19|0 - local.get $1 - i32.const 20 - i32.eq - br_if $case20|0 - local.get $1 - i32.const 21 - i32.eq - br_if $case21|0 - local.get $1 - i32.const 22 - i32.eq - br_if $case22|0 - local.get $1 - i32.const 23 - i32.eq - br_if $case23|0 - local.get $1 - i32.const 24 - i32.eq - br_if $case24|0 - local.get $1 - i32.const 25 - i32.eq - br_if $case25|0 - local.get $1 - i32.const 26 - i32.eq - br_if $case26|0 - local.get $1 - i32.const 27 - i32.eq - br_if $case27|0 - local.get $1 - i32.const 28 - i32.eq - br_if $case28|0 - local.get $1 - i32.const 29 - i32.eq - br_if $case29|0 - local.get $1 - i32.const 30 - i32.eq - br_if $case30|0 - local.get $1 - i32.const 31 - i32.eq - br_if $case31|0 - local.get $1 - i32.const 32 - i32.eq - br_if $case32|0 - local.get $1 - i32.const 33 - i32.eq - br_if $case33|0 - local.get $1 - i32.const 34 - i32.eq - br_if $case34|0 - local.get $1 - i32.const 35 - i32.eq - br_if $case35|0 - local.get $1 - i32.const 36 - i32.eq - br_if $case36|0 - local.get $1 - i32.const 37 - i32.eq - br_if $case37|0 - local.get $1 - i32.const 38 - i32.eq - br_if $case38|0 - local.get $1 - i32.const 39 - i32.eq - br_if $case39|0 - local.get $1 - i32.const 40 - i32.eq - br_if $case40|0 - local.get $1 - i32.const 41 - i32.eq - br_if $case41|0 - local.get $1 - i32.const 42 - i32.eq - br_if $case42|0 - local.get $1 - i32.const 43 - i32.eq - br_if $case43|0 - local.get $1 - i32.const 44 - i32.eq - br_if $case44|0 - local.get $1 - i32.const 45 - i32.eq - br_if $case45|0 - local.get $1 - i32.const 46 - i32.eq - br_if $case46|0 - local.get $1 - i32.const 47 - i32.eq - br_if $case47|0 - local.get $1 - i32.const 48 - i32.eq - br_if $case48|0 - local.get $1 - i32.const 49 - i32.eq - br_if $case49|0 - local.get $1 - i32.const 50 - i32.eq - br_if $case50|0 - local.get $1 - i32.const 51 - i32.eq - br_if $case51|0 - local.get $1 - i32.const 52 - i32.eq - br_if $case52|0 - local.get $1 - i32.const 53 - i32.eq - br_if $case53|0 - local.get $1 - i32.const 54 - i32.eq - br_if $case54|0 - local.get $1 - i32.const 55 - i32.eq - br_if $case55|0 - local.get $1 - i32.const 56 - i32.eq - br_if $case56|0 - local.get $1 - i32.const 57 - i32.eq - br_if $case57|0 - local.get $1 - i32.const 58 - i32.eq - br_if $case58|0 - local.get $1 - i32.const 59 - i32.eq - br_if $case59|0 - local.get $1 - i32.const 60 - i32.eq - br_if $case60|0 - local.get $1 - i32.const 61 - i32.eq - br_if $case61|0 - local.get $1 - i32.const 62 - i32.eq - br_if $case62|0 - local.get $1 - i32.const 63 - i32.eq - br_if $case63|0 - local.get $1 - i32.const 64 - i32.eq - br_if $case64|0 - local.get $1 - i32.const 65 - i32.eq - br_if $case65|0 - local.get $1 - i32.const 66 - i32.eq - br_if $case66|0 - local.get $1 - i32.const 67 - i32.eq - br_if $case67|0 - local.get $1 - i32.const 68 - i32.eq - br_if $case68|0 - local.get $1 - i32.const 69 - i32.eq - br_if $case69|0 - local.get $1 - i32.const 70 - i32.eq - br_if $case70|0 - local.get $1 - i32.const 71 - i32.eq - br_if $case71|0 - local.get $1 - i32.const 72 - i32.eq - br_if $case72|0 - local.get $1 - i32.const 73 - i32.eq - br_if $case73|0 - local.get $1 - i32.const 74 - i32.eq - br_if $case74|0 - local.get $1 - i32.const 75 - i32.eq - br_if $case75|0 - local.get $1 - i32.const 76 - i32.eq - br_if $case76|0 - br $break|0 - end - i32.const 720 - return - end - i32.const 768 - return - end - i32.const 800 - return - end - i32.const 832 - return - end - i32.const 880 - return - end - i32.const 928 - return - end - i32.const 976 - return - end - i32.const 1008 - return - end - i32.const 1056 - return - end - i32.const 1088 - return - end - i32.const 1120 - return - end - i32.const 1152 - return - end - i32.const 1200 - return - end - i32.const 1232 - return - end - i32.const 1280 - return - end - i32.const 1328 - return - end - i32.const 1376 - return - end - i32.const 1408 - return - end - i32.const 1456 - return - end - i32.const 1488 - return - end - i32.const 1520 - return - end - i32.const 1552 - return - end - i32.const 1584 - return - end - i32.const 1616 - return - end - i32.const 1664 - return - end - i32.const 1696 - return - end - i32.const 1728 - return - end - i32.const 1776 - return - end - i32.const 1808 - return - end - i32.const 1840 - return - end - i32.const 1872 - return - end - i32.const 1904 - return - end - i32.const 1936 - return - end - i32.const 1968 - return - end - i32.const 2000 - return - end - i32.const 2032 - return - end - i32.const 2080 - return - end - i32.const 2128 - return - end - i32.const 2176 - return - end - i32.const 2224 - return - end - i32.const 2272 - return - end - i32.const 2320 - return - end - i32.const 2352 - return - end - i32.const 2384 - return - end - i32.const 2416 - return - end - i32.const 2448 - return - end - i32.const 2480 - return - end - i32.const 2512 - return - end - i32.const 2544 - return - end - i32.const 2576 - return - end - i32.const 2608 - return - end - i32.const 2656 - return - end - i32.const 2688 - return - end - i32.const 2720 - return - end - i32.const 2768 - return - end - i32.const 2800 - return - end - i32.const 2848 - return - end - i32.const 2896 - return - end - i32.const 2944 - return - end - i32.const 2976 - return - end - i32.const 3008 - return - end - i32.const 3040 - return - end - i32.const 3088 - return - end - i32.const 3136 - return - end - i32.const 3168 - return - end - i32.const 3200 - return - end - i32.const 3232 - return - end - i32.const 3280 - return - end - i32.const 3328 - return - end - i32.const 3360 - return - end - i32.const 3392 - return - end - i32.const 3424 - return - end - i32.const 3456 - return - end - i32.const 3488 - return - end - i32.const 3536 - return - end - i32.const 3568 - return - end - i32.const 3600 - return - end - i32.const 3648 - ) - (func $~lib/crypto/crypto.getRandomValues (param $0 i32) - (local $1 i32) - i32.const 1 - drop - local.get $0 - i32.load - local.get $0 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.add - local.get $0 - i32.load offset=8 - call $~lib/bindings/wasi_snapshot_preview1/random_get - local.set $1 - local.get $1 - i32.const 65535 - i32.and - if - local.get $1 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3696 - i32.const 14 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/typedarray/Uint8Array#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=8 - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $1 - i32.const 10000 - i32.div_u - local.set $4 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $7 - i32.const 4060 - local.get $6 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $8 - i32.const 4060 - local.get $7 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $9 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $9 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $1 - i32.const 100 - i32.div_u - local.set $3 - local.get $1 - i32.const 100 - i32.rem_u - local.set $10 - local.get $3 - local.set $1 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 4060 - local.get $10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 4060 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - else - local.get $2 - i32.const 1 - i32.sub - local.set $2 - i32.const 48 - local.get $1 - i32.add - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end - ) - (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $2 - i32.const 2 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 4480 - local.get $1 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $1 - i64.const 8 - i64.shr_u - local.set $1 - br $while-continue|0 - end - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - i32.const 4480 - local.get $1 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i32) - local.get $1 - local.set $2 - local.get $2 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $1 - i64.extend_i32_s - local.set $3 - local.get $3 - local.set $4 - i32.const 1 - local.set $5 - loop $while-continue|0 - local.get $0 - local.get $4 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $4 - i64.div_u - local.set $0 - local.get $4 - local.get $4 - i64.mul - local.set $4 - local.get $5 - i32.const 1 - i32.shl - local.set $5 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $0 - i64.const 1 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $3 - i64.div_u - local.set $0 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $while-continue|1 - end - end - local.get $5 - i32.const 1 - i32.sub - ) - (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) - (local $4 i64) - (local $5 i64) - (local $6 i64) - local.get $3 - i64.extend_i32_s - local.set $4 - local.get $3 - local.get $3 - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $5 - local.get $4 - i64.const 1 - i64.sub - local.set $6 - loop $do-loop|0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 5536 - local.get $1 - local.get $6 - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $1 - local.get $5 - i64.shr_u - local.set $1 - local.get $1 - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $4 - i64.div_u - local.set $6 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 5536 - local.get $1 - local.get $6 - local.get $4 - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $6 - local.set $1 - local.get $1 - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - i32.const 0 - local.set $2 - i32.const 0 - drop - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.set $3 - i32.const 0 - i32.const 1 - i32.le_s - drop - i32.const 0 - drop - local.get $1 - i32.const 255 - i32.and - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $1 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - i32.const 0 - local.set $4 - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $1 - i32.const 255 - i32.and - local.set $5 - local.get $5 - call $~lib/util/number/decimalCount32 - local.set $4 - local.get $3 - local.set $8 - local.get $5 - local.set $7 - local.get $4 - local.set $6 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/number/utoa32_dec_lut - local.get $2 - local.get $4 - i32.add - ) - (func $~lib/typedarray/Uint8Array#join (param $0 i32) (param $1 i32) (result i32) - local.get $0 - i32.load offset=4 - local.get $0 - call $~lib/typedarray/Uint8Array#get:length - local.get $1 - call $~lib/util/string/joinIntegerArray - ) - (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/string/String#concat - ) - (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - local.set $2 - local.get $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $3 - local.get $1 - i32.const 0 - i32.ne - local.set $4 - block $while-break|0 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - i32.load16_u - local.set $6 - local.get $6 - i32.const 128 - i32.lt_u - if - local.get $1 - local.get $6 - i32.eqz - i32.and - if - br $while-break|0 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - else - local.get $6 - i32.const 2048 - i32.lt_u - if - local.get $4 - i32.const 2 - i32.add - local.set $4 - else - local.get $6 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - if (result i32) - local.get $2 - i32.const 2 - i32.add - local.get $3 - i32.lt_u - else - i32.const 0 - end - if - local.get $2 - i32.load16_u offset=2 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $4 - i32.const 3 - i32.add - local.set $4 - end - end - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|0 - end - end - end - local.get $4 - ) - (func $~lib/process/writeString (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/string/String#get:length - local.set $2 - i32.const 0 - local.set $3 - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $2 - local.set $6 - local.get $6 - i32.const 4 - i32.eq - br_if $case0|0 - local.get $6 - i32.const 3 - i32.eq - br_if $case1|0 - local.get $6 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $6 - i32.const 1 - i32.eq - br_if $case3|0 - local.get $6 - i32.const 0 - i32.eq - br_if $case4|0 - br $break|0 - end - local.get $1 - i32.load16_u offset=6 - local.set $5 - local.get $5 - i32.const 128 - i32.ge_u - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=4 - local.set $4 - local.get $4 - i32.const 128 - i32.ge_u - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=2 - local.set $3 - local.get $3 - i32.const 128 - i32.ge_u - if - br $break|0 - end - end - local.get $1 - i32.load16_u - local.set $6 - local.get $6 - i32.const 128 - i32.ge_u - if - br $break|0 - end - global.get $~lib/bindings/wasi/tempbuf - global.get $~lib/bindings/wasi/tempbuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - i32.store - global.get $~lib/bindings/wasi/tempbuf - local.get $2 - i32.store offset=4 - global.get $~lib/bindings/wasi/tempbuf - local.get $6 - local.get $3 - i32.const 8 - i32.shl - i32.or - local.get $4 - i32.const 16 - i32.shl - i32.or - local.get $5 - i32.const 24 - i32.shl - i32.or - i32.store offset=8 - local.get $0 - global.get $~lib/bindings/wasi/tempbuf - i32.const 1 - global.get $~lib/bindings/wasi/tempbuf - i32.const 3 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $7 - local.get $7 - i32.const 65535 - i32.and - if - local.get $7 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 5696 - i32.const 211 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - return - end - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - local.set $8 - local.get $8 - call $~lib/rt/tlsf/__alloc - local.set $9 - local.get $1 - local.get $2 - local.get $9 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 5696 - i32.const 217 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - local.get $9 - i32.store - global.get $~lib/bindings/wasi/tempbuf - local.get $8 - i32.store offset=4 - local.get $0 - global.get $~lib/bindings/wasi/tempbuf - i32.const 1 - global.get $~lib/bindings/wasi/tempbuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $10 - local.get $9 - call $~lib/rt/tlsf/__free - local.get $10 - i32.const 65535 - i32.and - if - local.get $10 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 5696 - i32.const 222 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) - i32.const 1 - drop - local.get $0 - local.get $1 - call $~lib/process/writeString - ) - (func $~lib/arraybuffer/ArrayBufferView#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/arraybuffer/ArrayBufferView#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/arraybuffer/ArrayBufferView#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 1 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $1 - end - i32.const -1 - local.set $2 - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array.wrap - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 448 - i32.const 656 - i32.const 167 - i32.const 45 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_u - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $std-wasi/crypto/ab - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/crypto/buf - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/crypto/b1 - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/crypto/b2 - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 448 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 144 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 256 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 32 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 4480 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 5536 - local.get $0 - call $~lib/rt/itcms/__visit - ) - (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end - ) - (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/typedarray/Uint8Array - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/typedarray/Uint8Array $invalid - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - local.get $0 - local.get $1 - call $~lib/typedarray/Uint8Array~visit - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/crypto - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 22288 - i32.const 22336 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.const 5632 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/typedarray/Uint8Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/console/console.log (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 5760 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std-wasi/crypto - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - memory.size - i32.const 16 - i32.shl - global.get $~lib/memory/__heap_base - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 368 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 400 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 544 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - i32.const 8 - call $~lib/arraybuffer/ArrayBuffer#constructor - global.set $std-wasi/crypto/ab - global.get $std-wasi/crypto/ab - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/crypto/crypto.getRandomValues - i32.const 3744 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/typedarray/Uint8Array#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/string/String.__concat - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/console/console.log - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b1 - global.get $std-wasi/crypto/ab - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 4 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/crypto/crypto.getRandomValues - i32.const 3744 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $2 - call $~lib/typedarray/Uint8Array#toString - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $2 - call $~lib/string/String.__concat - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/console/console.log - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 0 - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b2 - global.get $std-wasi/crypto/ab - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 0 - i32.const 1 - global.set $~argumentsLength - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - global.set $std-wasi/crypto/buf - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - i32.const 4 - i32.lt_s - local.set $1 - local.get $1 - if - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - global.get $std-wasi/crypto/b1 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 5792 - i32.const 17 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 4 - i32.lt_s - local.set $1 - local.get $1 - if - global.get $std-wasi/crypto/buf - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - i32.const 4 - local.get $0 - i32.add - call $~lib/typedarray/Uint8Array#__get - global.get $std-wasi/crypto/b2 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - i32.eq - i32.eqz - if - i32.const 0 - i32.const 5792 - i32.const 20 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 144 - i32.const 192 - i32.const 52 - i32.const 43 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $7 - local.get $4 - local.get $7 - i32.gt_u - local.get $4 - i32.const 0 - i32.and - i32.or - if - i32.const 448 - i32.const 656 - i32.const 1860 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i32.const 0 - i32.lt_s - if - local.get $3 - i32.const -1 - i32.eq - if - local.get $7 - i32.const 0 - i32.and - if - i32.const 144 - i32.const 656 - i32.const 1865 - i32.const 9 - call $~lib/wasi/index/abort - unreachable - end - local.get $7 - local.get $4 - i32.sub - local.set $6 - else - i32.const 144 - i32.const 656 - i32.const 1869 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - else - local.get $3 - i32.const 0 - i32.shl - local.set $6 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.gt_s - if - i32.const 144 - i32.const 656 - i32.const 1874 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - local.get $8 - local.get $5 - i32.store - local.get $8 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - local.get $8 - local.get $6 - i32.store offset=8 - local.get $8 - local.get $5 - local.get $4 - i32.add - i32.store offset=4 - local.get $8 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $~lib/util/number/utoa32 (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end - if - i32.const 3856 - i32.const 3984 - i32.const 350 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.eqz - if - i32.const 4048 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $1 - i32.const 10 - i32.eq - if - local.get $0 - call $~lib/util/number/decimalCount32 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $6 - local.get $0 - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - else - local.get $1 - i32.const 16 - i32.eq - if - i32.const 31 - local.get $0 - i32.clz - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $6 - local.get $0 - local.set $5 - local.get $3 - local.set $4 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $5 - i64.extend_i32_u - local.get $4 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - i64.extend_i32_u - local.get $1 - call $~lib/util/number/ulog_base - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - i64.extend_i32_u - local.get $3 - local.get $1 - call $~lib/util/number/utoa64_any_core - end - end - local.get $2 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $6 - local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $6 - local.tee $5 - local.get $7 - local.tee $4 - local.get $5 - local.get $4 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $8 - i32.sub - local.set $10 - local.get $10 - i32.eqz - if - i32.const 3824 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $8 - i32.eqz - if (result i32) - local.get $9 - local.get $3 - i32.const 1 - i32.shl - i32.eq - else - i32.const 0 - end - if - local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store - local.get $11 - local.get $0 - local.get $8 - i32.add - local.get $10 - memory.copy - local.get $11 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 1 - i32.sub - local.set $3 - local.get $3 - i32.const 0 - i32.lt_s - if - i32.const 3824 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return - end - local.get $3 - i32.eqz - if - local.get $0 - i32.load8_u - local.set $4 - i32.const 0 - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $4 - i32.const 10 - call $~lib/util/number/utoa32 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return - end - local.get $2 - call $~lib/string/String#get:length - local.set $5 - i32.const 10 - local.get $5 - i32.add - local.get $3 - i32.mul - i32.const 10 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - i32.const 0 - local.set $8 - i32.const 0 - local.set $4 - loop $for-loop|0 - local.get $4 - local.get $3 - i32.lt_s - local.set $10 - local.get $10 - if - local.get $0 - local.get $4 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $5 - if - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $8 - local.get $5 - i32.add - local.set $8 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $for-loop|0 - end - end - local.get $0 - local.get $3 - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $9 - local.get $8 - local.get $7 - local.get $8 - i32.const 1 - i32.shl - i32.add - local.get $9 - call $~lib/util/number/itoa_buffered - i32.add - local.set $8 - local.get $6 - local.get $8 - i32.gt_s - if - local.get $7 - i32.const 0 - local.get $8 - call $~lib/string/String#substring - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - return - end - local.get $7 - local.set $11 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $11 - ) - (func $~lib/string/String#concat (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $2 - local.get $1 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 - local.get $4 - i32.const 0 - i32.eq - if - i32.const 3824 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - local.get $5 - local.get $0 - local.get $2 - memory.copy - local.get $5 - local.get $2 - i32.add - local.get $1 - local.get $3 - memory.copy - local.get $5 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/arraybuffer/ArrayBufferView#constructor (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength - local.get $1 - i32.const 1073741820 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 144 - i32.const 192 - i32.const 19 - i32.const 57 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.shl - local.tee $1 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $0 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - local.get $0 - local.get $3 - call $~lib/arraybuffer/ArrayBufferView#set:dataStart - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#set:byteLength - local.get $0 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - ) - (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - local.get $0 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/typedarray/Uint8Array#slice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $5 - local.get $1 - local.set $4 - local.get $2 - local.set $3 - local.get $5 - call $~lib/typedarray/Uint8Array#get:length - local.set $6 - local.get $4 - i32.const 0 - i32.lt_s - if (result i32) - local.get $4 - local.get $6 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $4 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select - end - local.set $4 - local.get $3 - i32.const 0 - i32.lt_s - if (result i32) - local.get $3 - local.get $6 - i32.add - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - else - local.get $3 - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.lt_s - select - end - local.set $3 - local.get $3 - local.get $4 - i32.sub - local.tee $7 - i32.const 0 - local.tee $8 - local.get $7 - local.get $8 - i32.gt_s - select - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $6 - call $~lib/typedarray/Uint8Array#constructor - local.tee $7 - i32.store - local.get $7 - i32.load offset=4 - local.get $5 - i32.load offset=4 - local.get $4 - i32.const 0 - i32.shl - i32.add - local.get $6 - i32.const 0 - i32.shl - memory.copy - local.get $7 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) -) diff --git a/tests/compiler/std-wasi/crypto.json b/tests/compiler/std-wasi/crypto.json deleted file mode 100644 index b5784f1e69..0000000000 --- a/tests/compiler/std-wasi/crypto.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "asc_flags": [ - "--exportStart", "_start" - ], - "asc_wasi": { - "args": [], - "env": {}, - "returnOnExit": true - } -} diff --git a/tests/compiler/std-wasi/crypto.release.wat b/tests/compiler/std-wasi/crypto.release.wat deleted file mode 100644 index 10272b58d2..0000000000 --- a/tests/compiler/std-wasi/crypto.release.wat +++ /dev/null @@ -1,4012 +0,0 @@ -(module - (type $i32_=>_none (func (param i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $none_=>_none (func)) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_i32_i32_=>_none (func (param i32 i32 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 $none_=>_i32 (func (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))) - (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32))) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $std-wasi/crypto/ab (mut i32) (i32.const 0)) - (global $std-wasi/crypto/buf (mut i32) (i32.const 0)) - (global $std-wasi/crypto/b1 (mut i32) (i32.const 0)) - (global $std-wasi/crypto/b2 (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23284)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 1036) "<") - (data (i32.const 1048) "\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e") - (data (i32.const 1100) ",") - (data (i32.const 1112) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data (i32.const 1148) ",") - (data (i32.const 1160) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data (i32.const 1196) "<") - (data (i32.const 1208) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 1260) "<") - (data (i32.const 1272) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 1324) "<") - (data (i32.const 1336) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data (i32.const 1452) "<") - (data (i32.const 1464) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 1516) ",") - (data (i32.const 1528) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 1596) "<") - (data (i32.const 1608) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data (i32.const 1660) "<") - (data (i32.const 1672) "\01\00\00\00$\00\00\00~\00l\00i\00b\00/\00t\00y\00p\00e\00d\00a\00r\00r\00a\00y\00.\00t\00s") - (data (i32.const 1724) ",") - (data (i32.const 1736) "\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S") - (data (i32.const 1772) "\1c") - (data (i32.const 1784) "\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G") - (data (i32.const 1804) "\1c") - (data (i32.const 1816) "\01\00\00\00\n\00\00\00A\00C\00C\00E\00S") - (data (i32.const 1836) ",") - (data (i32.const 1848) "\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E") - (data (i32.const 1884) ",") - (data (i32.const 1896) "\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L") - (data (i32.const 1932) ",") - (data (i32.const 1944) "\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T") - (data (i32.const 1980) "\1c") - (data (i32.const 1992) "\01\00\00\00\n\00\00\00A\00G\00A\00I\00N") - (data (i32.const 2012) ",") - (data (i32.const 2024) "\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y") - (data (i32.const 2060) "\1c") - (data (i32.const 2072) "\01\00\00\00\08\00\00\00B\00A\00D\00F") - (data (i32.const 2092) "\1c") - (data (i32.const 2104) "\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G") - (data (i32.const 2124) "\1c") - (data (i32.const 2136) "\01\00\00\00\08\00\00\00B\00U\00S\00Y") - (data (i32.const 2156) ",") - (data (i32.const 2168) "\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D") - (data (i32.const 2204) "\1c") - (data (i32.const 2216) "\01\00\00\00\n\00\00\00C\00H\00I\00L\00D") - (data (i32.const 2236) ",") - (data (i32.const 2248) "\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D") - (data (i32.const 2284) ",") - (data (i32.const 2296) "\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D") - (data (i32.const 2332) ",") - (data (i32.const 2344) "\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T") - (data (i32.const 2380) "\1c") - (data (i32.const 2392) "\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K") - (data (i32.const 2412) ",") - (data (i32.const 2424) "\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q") - (data (i32.const 2460) "\1c") - (data (i32.const 2472) "\01\00\00\00\06\00\00\00D\00O\00M") - (data (i32.const 2492) "\1c") - (data (i32.const 2504) "\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T") - (data (i32.const 2524) "\1c") - (data (i32.const 2536) "\01\00\00\00\n\00\00\00E\00X\00I\00S\00T") - (data (i32.const 2556) "\1c") - (data (i32.const 2568) "\01\00\00\00\n\00\00\00F\00A\00U\00L\00T") - (data (i32.const 2588) "\1c") - (data (i32.const 2600) "\01\00\00\00\08\00\00\00F\00B\00I\00G") - (data (i32.const 2620) ",") - (data (i32.const 2632) "\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H") - (data (i32.const 2668) "\1c") - (data (i32.const 2680) "\01\00\00\00\08\00\00\00I\00D\00R\00M") - (data (i32.const 2700) "\1c") - (data (i32.const 2712) "\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q") - (data (i32.const 2732) ",") - (data (i32.const 2744) "\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S") - (data (i32.const 2780) "\1c") - (data (i32.const 2792) "\01\00\00\00\08\00\00\00I\00N\00T\00R") - (data (i32.const 2812) "\1c") - (data (i32.const 2824) "\01\00\00\00\n\00\00\00I\00N\00V\00A\00L") - (data (i32.const 2844) "\1c") - (data (i32.const 2856) "\01\00\00\00\04\00\00\00I\00O") - (data (i32.const 2876) "\1c") - (data (i32.const 2888) "\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N") - (data (i32.const 2908) "\1c") - (data (i32.const 2920) "\01\00\00\00\n\00\00\00I\00S\00D\00I\00R") - (data (i32.const 2940) "\1c") - (data (i32.const 2952) "\01\00\00\00\08\00\00\00L\00O\00O\00P") - (data (i32.const 2972) "\1c") - (data (i32.const 2984) "\01\00\00\00\n\00\00\00M\00F\00I\00L\00E") - (data (i32.const 3004) "\1c") - (data (i32.const 3016) "\01\00\00\00\n\00\00\00M\00L\00I\00N\00K") - (data (i32.const 3036) ",") - (data (i32.const 3048) "\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E") - (data (i32.const 3084) ",") - (data (i32.const 3096) "\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P") - (data (i32.const 3132) ",") - (data (i32.const 3144) "\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G") - (data (i32.const 3180) ",") - (data (i32.const 3192) "\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N") - (data (i32.const 3228) ",") - (data (i32.const 3240) "\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T") - (data (i32.const 3276) ",") - (data (i32.const 3288) "\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H") - (data (i32.const 3324) "\1c") - (data (i32.const 3336) "\01\00\00\00\n\00\00\00N\00F\00I\00L\00E") - (data (i32.const 3356) "\1c") - (data (i32.const 3368) "\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S") - (data (i32.const 3388) "\1c") - (data (i32.const 3400) "\01\00\00\00\n\00\00\00N\00O\00D\00E\00V") - (data (i32.const 3420) "\1c") - (data (i32.const 3432) "\01\00\00\00\n\00\00\00N\00O\00E\00N\00T") - (data (i32.const 3452) "\1c") - (data (i32.const 3464) "\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C") - (data (i32.const 3484) "\1c") - (data (i32.const 3496) "\01\00\00\00\n\00\00\00N\00O\00L\00C\00K") - (data (i32.const 3516) "\1c") - (data (i32.const 3528) "\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K") - (data (i32.const 3548) "\1c") - (data (i32.const 3560) "\01\00\00\00\n\00\00\00N\00O\00M\00E\00M") - (data (i32.const 3580) "\1c") - (data (i32.const 3592) "\01\00\00\00\n\00\00\00N\00O\00M\00S\00G") - (data (i32.const 3612) ",") - (data (i32.const 3624) "\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T") - (data (i32.const 3660) "\1c") - (data (i32.const 3672) "\01\00\00\00\n\00\00\00N\00O\00S\00P\00C") - (data (i32.const 3692) "\1c") - (data (i32.const 3704) "\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S") - (data (i32.const 3724) ",") - (data (i32.const 3736) "\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N") - (data (i32.const 3772) "\1c") - (data (i32.const 3784) "\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R") - (data (i32.const 3804) ",") - (data (i32.const 3816) "\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y") - (data (i32.const 3852) ",") - (data (i32.const 3864) "\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E") - (data (i32.const 3900) ",") - (data (i32.const 3912) "\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K") - (data (i32.const 3948) "\1c") - (data (i32.const 3960) "\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P") - (data (i32.const 3980) "\1c") - (data (i32.const 3992) "\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y") - (data (i32.const 4012) "\1c") - (data (i32.const 4024) "\01\00\00\00\08\00\00\00N\00X\00I\00O") - (data (i32.const 4044) ",") - (data (i32.const 4056) "\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W") - (data (i32.const 4092) ",") - (data (i32.const 4104) "\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D") - (data (i32.const 4140) "\1c") - (data (i32.const 4152) "\01\00\00\00\08\00\00\00P\00E\00R\00M") - (data (i32.const 4172) "\1c") - (data (i32.const 4184) "\01\00\00\00\08\00\00\00P\00I\00P\00E") - (data (i32.const 4204) "\1c") - (data (i32.const 4216) "\01\00\00\00\n\00\00\00P\00R\00O\00T\00O") - (data (i32.const 4236) ",") - (data (i32.const 4248) "\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T") - (data (i32.const 4284) ",") - (data (i32.const 4296) "\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E") - (data (i32.const 4332) "\1c") - (data (i32.const 4344) "\01\00\00\00\n\00\00\00R\00A\00N\00G\00E") - (data (i32.const 4364) "\1c") - (data (i32.const 4376) "\01\00\00\00\08\00\00\00R\00O\00F\00S") - (data (i32.const 4396) "\1c") - (data (i32.const 4408) "\01\00\00\00\n\00\00\00S\00P\00I\00P\00E") - (data (i32.const 4428) "\1c") - (data (i32.const 4440) "\01\00\00\00\08\00\00\00S\00R\00C\00H") - (data (i32.const 4460) "\1c") - (data (i32.const 4472) "\01\00\00\00\n\00\00\00S\00T\00A\00L\00E") - (data (i32.const 4492) ",") - (data (i32.const 4504) "\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T") - (data (i32.const 4540) "\1c") - (data (i32.const 4552) "\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y") - (data (i32.const 4572) "\1c") - (data (i32.const 4584) "\01\00\00\00\08\00\00\00X\00D\00E\00V") - (data (i32.const 4604) ",") - (data (i32.const 4616) "\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E") - (data (i32.const 4652) ",") - (data (i32.const 4664) "\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N") - (data (i32.const 4700) ",") - (data (i32.const 4712) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s") - (data (i32.const 4748) "L") - (data (i32.const 4760) "\01\00\00\000\00\00\00c\00r\00y\00p\00t\00o\00.\00g\00e\00t\00R\00a\00n\00d\00o\00m\00V\00a\00l\00u\00e\00s\00:\00 ") - (data (i32.const 4828) "\1c") - (data (i32.const 4840) "\01") - (data (i32.const 4860) "|") - (data (i32.const 4872) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") - (data (i32.const 4988) "<") - (data (i32.const 5000) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 5052) "\1c") - (data (i32.const 5064) "\01\00\00\00\02\00\00\000") - (data (i32.const 5084) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 5484) "\1c\04") - (data (i32.const 5496) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") - (data (i32.const 6540) "\\") - (data (i32.const 6552) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") - (data (i32.const 6636) "\1c") - (data (i32.const 6648) "\01\00\00\00\02\00\00\00,") - (data (i32.const 6700) "<") - (data (i32.const 6712) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s") - (data (i32.const 6764) "\1c") - (data (i32.const 6776) "\01\00\00\00\02\00\00\00\n") - (data (i32.const 6796) "<") - (data (i32.const 6808) "\01\00\00\00$\00\00\00s\00t\00d\00-\00w\00a\00s\00i\00/\00c\00r\00y\00p\00t\00o\00.\00t\00s") - (data (i32.const 6864) "\04\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 6892) "A\00\00\00\02") - (export "memory" (memory $0)) - (export "_start" (func $~start)) - (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - block $2of2 - block $outOfRange - global.get $~argumentsLength - i32.const 3 - i32.sub - br_table $2of2 $2of2 $2of2 $outOfRange - end - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $3 - local.get $2 - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $3 - i32.lt_u - if - local.get $0 - i32.load16_u - local.tee $4 - i32.const 128 - i32.lt_u - if (result i32) - local.get $1 - local.get $4 - i32.store8 - local.get $1 - i32.const 1 - i32.add - else - local.get $4 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $1 - local.get $4 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.get $4 - 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 $4 - i32.const 56320 - i32.lt_u - local.get $0 - i32.const 2 - i32.add - local.get $3 - i32.lt_u - i32.and - local.get $4 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - i32.and - 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 $4 - 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 $4 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 24 - i32.shl - local.get $4 - 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 $4 - 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 $4 - 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 $4 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.get $4 - 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 $4 - 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/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - i32.const 0 - i32.const 12 - i32.store - i32.const 12 - i64.const 9071471065260641 - i64.store - local.get $0 - if (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $4 - i32.const 19 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - i32.const 19 - i32.add - else - i32.const 19 - end - local.tee $0 - i32.const 544106784 - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - if - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $4 - local.get $0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $0 - i32.add - local.set $0 - end - local.get $0 - i32.const 40 - i32.store8 - local.get $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $0 - loop $do-loop|0 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.get $2 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $2 - i32.const 10 - i32.div_u - local.tee $2 - br_if $do-loop|0 - end - local.get $0 - local.get $1 - i32.add - local.tee $0 - i32.const 58 - i32.store8 - local.get $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $0 - loop $do-loop|1 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.get $3 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $3 - i32.const 10 - i32.div_u - local.tee $3 - br_if $do-loop|1 - end - local.get $0 - local.get $1 - i32.add - local.tee $0 - i32.const 2601 - i32.store16 - i32.const 4 - local.get $0 - i32.const 10 - i32.sub - 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/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - global.get $std-wasi/crypto/ab - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $std-wasi/crypto/buf - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $std-wasi/crypto/b1 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $std-wasi/crypto/b2 - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - i32.const 1472 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 1168 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 1280 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 1056 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 5504 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 6560 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 147 - i32.const 30 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - i32.const 0 - local.get $0 - i32.const 23284 - i32.lt_u - local.get $0 - i32.load offset=8 - select - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 127 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 131 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 6864 - i32.load - i32.gt_u - if - i32.const 1472 - i32.const 1536 - i32.const 22 - i32.const 28 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 3 - i32.shl - i32.const 6868 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 268 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 270 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - local.get $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $3 - local.get $2 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $3 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 284 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - i32.eq - if - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl - i32.and - local.set $2 - local.get $1 - local.get $2 - i32.store offset=4 - local.get $2 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $3 - i32.rotl - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 201 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 203 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 - i32.const 4 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 221 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 - i32.add - local.get $3 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 1616 - i32.const 233 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne - if - i32.const 0 - i32.const 1616 - i32.const 234 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - local.get $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $3 - i32.const 7 - i32.sub - local.set $5 - local.get $2 - local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 251 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - local.get $2 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 377 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $4 - if - local.get $4 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 384 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $4 - i32.load - local.set $3 - local.get $1 - i32.const 16 - i32.sub - local.set $1 - end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 397 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - end - local.get $2 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $2 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $3 - i32.const 2 - i32.and - local.get $2 - i32.const 8 - i32.sub - local.tee $2 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.tee $2 - i32.const 2 - i32.store - local.get $0 - local.get $2 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 23296 - i32.const 0 - i32.store - i32.const 24864 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 23296 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.lt_u - if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 23296 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 23296 - i32.const 24868 - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - i32.const 23296 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/__free (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 23284 - i32.lt_u - if - return - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $2 - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $1 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 1616 - i32.const 559 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 23284 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 1344 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 23284 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i32.const 256 - i32.lt_u - if (result i32) - local.get $1 - i32.const 4 - i32.shr_u - else - i32.const 31 - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - local.get $1 - local.get $1 - i32.const 536870910 - i32.lt_u - select - local.tee $1 - i32.clz - i32.sub - local.tee $3 - i32.const 7 - i32.sub - local.set $2 - local.get $1 - local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 330 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 343 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 1280 - i32.const 1616 - i32.const 458 - i32.const 29 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 12 - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.get $1 - i32.const 12 - i32.le_u - select - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $0 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.get $3 - local.get $3 - i32.const 536870910 - i32.lt_u - select - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $1 - local.get $2 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $0 - local.get $1 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 1616 - i32.const 496 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - local.get $3 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 1616 - i32.const 498 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $4 - local.get $3 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 1616 - i32.const 357 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - i32.const -4 - i32.and - local.get $3 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $4 - i32.const -2 - i32.and - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 1280 - i32.const 1344 - i32.const 260 - i32.const 31 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $2 - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) - block $break|0 - block $case76|0 - block $case75|0 - block $case74|0 - block $case73|0 - block $case72|0 - block $case71|0 - block $case70|0 - block $case69|0 - block $case68|0 - block $case67|0 - block $case66|0 - block $case65|0 - block $case64|0 - block $case63|0 - block $case62|0 - block $case61|0 - block $case60|0 - block $case59|0 - block $case58|0 - block $case57|0 - block $case56|0 - block $case55|0 - block $case54|0 - block $case53|0 - block $case52|0 - block $case51|0 - block $case50|0 - block $case49|0 - block $case48|0 - block $case47|0 - block $case46|0 - block $case45|0 - block $case44|0 - block $case43|0 - block $case42|0 - block $case41|0 - block $case40|0 - block $case39|0 - block $case38|0 - block $case37|0 - block $case36|0 - block $case35|0 - block $case34|0 - block $case33|0 - block $case32|0 - block $case31|0 - block $case30|0 - block $case29|0 - block $case28|0 - block $case27|0 - block $case26|0 - block $case25|0 - block $case24|0 - block $case23|0 - block $case22|0 - block $case21|0 - block $case20|0 - block $case19|0 - block $case18|0 - block $case17|0 - block $case16|0 - block $case15|0 - block $case14|0 - block $case13|0 - block $case12|0 - block $case11|0 - block $case10|0 - block $case9|0 - block $case8|0 - block $case7|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 65535 - i32.and - br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 $case12|0 $case13|0 $case14|0 $case15|0 $case16|0 $case17|0 $case18|0 $case19|0 $case20|0 $case21|0 $case22|0 $case23|0 $case24|0 $case25|0 $case26|0 $case27|0 $case28|0 $case29|0 $case30|0 $case31|0 $case32|0 $case33|0 $case34|0 $case35|0 $case36|0 $case37|0 $case38|0 $case39|0 $case40|0 $case41|0 $case42|0 $case43|0 $case44|0 $case45|0 $case46|0 $case47|0 $case48|0 $case49|0 $case50|0 $case51|0 $case52|0 $case53|0 $case54|0 $case55|0 $case56|0 $case57|0 $case58|0 $case59|0 $case60|0 $case61|0 $case62|0 $case63|0 $case64|0 $case65|0 $case66|0 $case67|0 $case68|0 $case69|0 $case70|0 $case71|0 $case72|0 $case73|0 $case74|0 $case75|0 $case76|0 $break|0 - end - i32.const 1744 - return - end - i32.const 1792 - return - end - i32.const 1824 - return - end - i32.const 1856 - return - end - i32.const 1904 - return - end - i32.const 1952 - return - end - i32.const 2000 - return - end - i32.const 2032 - return - end - i32.const 2080 - return - end - i32.const 2112 - return - end - i32.const 2144 - return - end - i32.const 2176 - return - end - i32.const 2224 - return - end - i32.const 2256 - return - end - i32.const 2304 - return - end - i32.const 2352 - return - end - i32.const 2400 - return - end - i32.const 2432 - return - end - i32.const 2480 - return - end - i32.const 2512 - return - end - i32.const 2544 - return - end - i32.const 2576 - return - end - i32.const 2608 - return - end - i32.const 2640 - return - end - i32.const 2688 - return - end - i32.const 2720 - return - end - i32.const 2752 - return - end - i32.const 2800 - return - end - i32.const 2832 - return - end - i32.const 2864 - return - end - i32.const 2896 - return - end - i32.const 2928 - return - end - i32.const 2960 - return - end - i32.const 2992 - return - end - i32.const 3024 - return - end - i32.const 3056 - return - end - i32.const 3104 - return - end - i32.const 3152 - return - end - i32.const 3200 - return - end - i32.const 3248 - return - end - i32.const 3296 - return - end - i32.const 3344 - return - end - i32.const 3376 - return - end - i32.const 3408 - return - end - i32.const 3440 - return - end - i32.const 3472 - return - end - i32.const 3504 - return - end - i32.const 3536 - return - end - i32.const 3568 - return - end - i32.const 3600 - return - end - i32.const 3632 - return - end - i32.const 3680 - return - end - i32.const 3712 - return - end - i32.const 3744 - return - end - i32.const 3792 - return - end - i32.const 3824 - return - end - i32.const 3872 - return - end - i32.const 3920 - return - end - i32.const 3968 - return - end - i32.const 4000 - return - end - i32.const 4032 - return - end - i32.const 4064 - return - end - i32.const 4112 - return - end - i32.const 4160 - return - end - i32.const 4192 - return - end - i32.const 4224 - return - end - i32.const 4256 - return - end - i32.const 4304 - return - end - i32.const 4352 - return - end - i32.const 4384 - return - end - i32.const 4416 - return - end - i32.const 4448 - return - end - i32.const 4480 - return - end - i32.const 4512 - return - end - i32.const 4560 - return - end - i32.const 4592 - return - end - i32.const 4624 - return - end - i32.const 4672 - ) - (func $~lib/crypto/crypto.getRandomValues (param $0 i32) - (local $1 i32) - local.get $0 - i32.load - local.tee $1 - local.get $0 - i32.load offset=4 - local.get $1 - i32.sub - i32.add - local.get $0 - i32.load offset=8 - call $~lib/bindings/wasi_snapshot_preview1/random_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4720 - i32.const 14 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 5084 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5084 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5084 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 5084 - i32.add - i32.load - i32.store - else - local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end - ) - (func $~lib/util/number/itoa_buffered (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $1 - i32.const 255 - i32.and - i32.const 10 - i32.lt_u - if - local.get $0 - local.get $1 - i32.const 255 - i32.and - i32.const 48 - i32.or - i32.store16 - i32.const 1 - return - end - local.get $1 - i32.const 255 - i32.and - local.tee $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.set $1 - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - local.get $1 - ) - (func $~lib/typedarray/Uint8Array#join (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - i32.load offset=4 - local.set $6 - local.get $0 - i32.load offset=8 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray - local.get $0 - i32.const 1 - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4848 - local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray - end - local.get $5 - i32.eqz - if - block $__inlined_func$~lib/util/number/utoa32 (result i32) - local.get $6 - i32.load8_u - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 5072 - br $__inlined_func$~lib/util/number/utoa32 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - i32.const 6652 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - local.get $5 - i32.mul - i32.const 10 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - i32.const 0 - local.set $0 - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $0 - local.get $6 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.set $2 - local.get $4 - if - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 6656 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $2 - local.get $4 - i32.add - local.set $2 - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $3 - local.get $1 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $5 - local.get $6 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 0 - local.get $0 - i32.const 0 - local.get $0 - i32.const 0 - i32.gt_s - select - local.tee $0 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - local.get $0 - local.get $4 - i32.lt_s - select - local.tee $0 - local.get $0 - i32.const 0 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $3 - block $__inlined_func$~lib/string/String#substring - i32.const 0 - local.get $0 - local.get $0 - i32.const 0 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $0 - local.get $3 - i32.sub - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4848 - local.set $0 - br $__inlined_func$~lib/string/String#substring - end - i32.const 0 - local.get $0 - local.get $4 - i32.const 1 - i32.shl - i32.eq - local.get $3 - select - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - br $__inlined_func$~lib/string/String#substring - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $1 - local.get $3 - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.set $0 - end - local.get $0 - return - end - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $~lib/string/String.__concat (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/string/String#concat - i32.const 4764 - i32.load - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - i32.add - local.tee $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 4848 - local.set $1 - br $__inlined_func$~lib/string/String#concat - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - i32.const 4768 - local.get $2 - memory.copy - local.get $1 - local.get $2 - i32.add - local.get $0 - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - local.get $1 - ) - (func $~lib/process/writeString (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i32.load16_u offset=6 - local.tee $3 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=4 - local.tee $1 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=2 - local.tee $2 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u - local.tee $5 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 6672 - i32.const 6680 - i32.store - i32.const 6676 - local.get $4 - i32.store - i32.const 6680 - local.get $5 - local.get $2 - i32.const 8 - i32.shl - i32.or - local.get $1 - i32.const 16 - i32.shl - i32.or - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - i32.const 1 - i32.const 6672 - i32.const 1 - i32.const 6684 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 6720 - i32.const 211 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - return - end - local.get $0 - local.set $1 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $3 - i32.const 0 - local.set $2 - loop $while-continue|0 - local.get $0 - local.get $3 - i32.lt_u - if - local.get $0 - i32.load16_u - local.tee $5 - i32.const 128 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1 - i32.add - else - local.get $5 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $2 - i32.const 2 - i32.add - else - local.get $5 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - local.get $0 - i32.const 2 - i32.add - local.get $3 - i32.lt_u - i32.and - if - local.get $0 - i32.load16_u offset=2 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $2 - i32.const 3 - i32.add - end - end - local.set $2 - local.get $0 - i32.const 2 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $0 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $4 - local.get $0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $2 - i32.ne - if - i32.const 0 - i32.const 6720 - i32.const 217 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - i32.const 6672 - local.get $0 - i32.store - i32.const 6676 - local.get $2 - i32.store - i32.const 1 - i32.const 6672 - i32.const 1 - i32.const 6680 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $1 - local.get $0 - call $~lib/rt/tlsf/__free - local.get $1 - i32.const 65535 - i32.and - if - local.get $1 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 6720 - i32.const 222 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/typedarray/Uint8Array#__get (param $0 i32) (param $1 i32) (result i32) - local.get $1 - local.get $0 - i32.load offset=8 - i32.ge_u - if - i32.const 1472 - i32.const 1680 - i32.const 167 - i32.const 45 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.get $1 - i32.add - i32.load8_u - ) - (func $~lib/rt/__visit_members (param $0 i32) - block $folding-inner0 - block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid - end - return - end - return - end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/crypto - ) - (func $~lib/typedarray/Uint8Array#toString (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 6656 - i32.store - local.get $0 - call $~lib/typedarray/Uint8Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/console/console.log (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 6784 - i32.store - i32.const 6784 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $start:std-wasi/crypto - (local $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i64.const 0 - i64.store offset=8 - memory.size - i32.const 16 - i32.shl - i32.const 23284 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/pinSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/itcms/toSpace - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/fromSpace - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 8 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - global.set $std-wasi/crypto/ab - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/ab - local.tee $1 - i32.store - local.get $1 - i32.const 0 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $1 - i32.store - local.get $1 - call $~lib/crypto/crypto.getRandomValues - global.get $~lib/memory/__stack_pointer - i32.const 4768 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint8Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $1 - i32.store - local.get $1 - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b1 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/ab - local.tee $1 - i32.store - local.get $1 - i32.const 4 - i32.const 4 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $1 - i32.store - local.get $1 - call $~lib/crypto/crypto.getRandomValues - global.get $~lib/memory/__stack_pointer - i32.const 4768 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $1 - i32.store offset=12 - local.get $1 - call $~lib/typedarray/Uint8Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/string/String.__concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $1 - i32.store - local.get $1 - call $~lib/typedarray/Uint8Array#slice - global.set $std-wasi/crypto/b2 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/ab - local.tee $1 - i32.store - i32.const 1 - global.set $~argumentsLength - local.get $1 - i32.const 0 - i32.const -1 - call $~lib/typedarray/Uint8Array.wrap - global.set $std-wasi/crypto/buf - loop $for-loop|0 - local.get $0 - i32.const 4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $1 - i32.store - local.get $1 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/b1 - local.tee $2 - i32.store - local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - local.get $1 - i32.ne - if - i32.const 0 - i32.const 6816 - i32.const 17 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 4 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/buf - local.tee $1 - i32.store - local.get $1 - local.get $0 - i32.const 4 - i32.add - call $~lib/typedarray/Uint8Array#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/crypto/b2 - local.tee $2 - i32.store - local.get $2 - local.get $0 - call $~lib/typedarray/Uint8Array#__get - local.get $1 - i32.ne - if - i32.const 0 - i32.const 6816 - i32.const 20 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $~lib/typedarray/Uint8Array.wrap (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - if - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.tee $3 - local.get $1 - i32.lt_u - if - i32.const 1472 - i32.const 1680 - i32.const 1860 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 0 - i32.lt_s - if - local.get $2 - i32.const -1 - i32.eq - if (result i32) - local.get $3 - local.get $1 - i32.sub - else - i32.const 1168 - i32.const 1680 - i32.const 1869 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - local.set $2 - else - local.get $1 - local.get $2 - i32.add - local.get $3 - i32.gt_s - if - i32.const 1168 - i32.const 1680 - i32.const 1874 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $0 - i32.store - local.get $0 - if - local.get $3 - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $3 - local.get $2 - i32.store offset=8 - local.get $3 - local.get $0 - local.get $1 - i32.add - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/typedarray/Uint8Array#slice (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - i32.const 0 - local.get $0 - i32.load offset=8 - local.tee $3 - local.get $3 - i32.const 0 - i32.gt_s - select - local.set $2 - local.get $3 - local.get $2 - i32.sub - local.tee $3 - i32.const 0 - local.get $3 - i32.const 0 - i32.gt_s - select - local.set $3 - local.get $1 - block $__inlined_func$~lib/typedarray/Uint8Array#constructor (result i32) - local.get $1 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 6900 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - end - local.get $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 1073741820 - i32.gt_u - if - i32.const 1168 - i32.const 1216 - i32.const 19 - i32.const 57 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=4 - local.get $1 - local.get $4 - i32.store - local.get $4 - if - local.get $1 - local.get $4 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $1 - local.get $4 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - br $__inlined_func$~lib/typedarray/Uint8Array#constructor - end - br $folding-inner1 - end - local.tee $1 - i32.store - local.get $1 - i32.load offset=4 - local.get $0 - i32.load offset=4 - local.get $2 - i32.add - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - return - end - i32.const 23312 - i32.const 23360 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1344 - i32.const 294 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) -) diff --git a/tests/compiler/std-wasi/crypto.ts b/tests/compiler/std-wasi/crypto.ts deleted file mode 100644 index bbe309551e..0000000000 --- a/tests/compiler/std-wasi/crypto.ts +++ /dev/null @@ -1,21 +0,0 @@ -import "wasi"; - -var ab = new ArrayBuffer(8); - -var buf = Uint8Array.wrap(ab, 0, 4); -crypto.getRandomValues(buf); -console.log("crypto.getRandomValues: " + buf.toString()); -var b1 = buf.slice(); - -buf = Uint8Array.wrap(ab, 4, 4); -crypto.getRandomValues(buf); -console.log("crypto.getRandomValues: " + buf.toString()); -var b2 = buf.slice(); - -buf = Uint8Array.wrap(ab); -for (let i = 0; i < 4; ++i) { - assert(buf[i] == b1[i]); -} -for (let i= 0; i < 4; ++i) { - assert(buf[4 + i] == b2[i]); -} diff --git a/tests/compiler/std-wasi/process.debug.wat b/tests/compiler/std-wasi/process.debug.wat deleted file mode 100644 index ddaa4e98ca..0000000000 --- a/tests/compiler/std-wasi/process.debug.wat +++ /dev/null @@ -1,7515 +0,0 @@ -(module - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_i32 (func (param i32 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_=>_none (func (param i32 i32 i32))) - (type $none_=>_none (func)) - (type $i64_i32_=>_i32 (func (param i64 i32) (result i32))) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result 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_=>_none (func (param i32 i32 i32 i32))) - (type $none_=>_i64 (func (result i64))) - (type $i32_i64_i32_=>_none (func (param i32 i64 i32))) - (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) - (type $i64_=>_i32 (func (param i64) (result i32))) - (type $i32_i64_i32_i32_=>_none (func (param i32 i64 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))) - (import "wasi_snapshot_preview1" "args_sizes_get" (func $~lib/bindings/wasi_snapshot_preview1/args_sizes_get (param i32 i32) (result i32))) - (import "wasi_snapshot_preview1" "args_get" (func $~lib/bindings/wasi_snapshot_preview1/args_get (param i32 i32) (result i32))) - (import "wasi_snapshot_preview1" "environ_sizes_get" (func $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get (param i32 i32) (result i32))) - (import "wasi_snapshot_preview1" "environ_get" (func $~lib/bindings/wasi_snapshot_preview1/environ_get (param i32 i32) (result i32))) - (import "wasi_snapshot_preview1" "clock_time_get" (func $~lib/bindings/wasi_snapshot_preview1/clock_time_get (param i32 i64 i32) (result i32))) - (import "wasi_snapshot_preview1" "fd_read" (func $~lib/bindings/wasi_snapshot_preview1/fd_read (param i32 i32 i32 i32) (result i32))) - (global $~lib/process/process.stdout i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) - (global $~lib/bindings/wasi/tempbuf i32 (i32.const 64)) - (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/process/process.arch i32 (i32.const 3424)) - (global $~lib/process/process.platform i32 (i32.const 3504)) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/native/ASC_RUNTIME i32 (i32.const 2)) - (global $~lib/process/process.argv (mut i32) (i32.const 0)) - (global $std-wasi/process/argv (mut i32) (i32.const 0)) - (global $~lib/builtins/i32.MAX_VALUE i32 (i32.const 2147483647)) - (global $~lib/process/process.env (mut i32) (i32.const 0)) - (global $std-wasi/process/env (mut i32) (i32.const 0)) - (global $std-wasi/process/envKeys (mut i32) (i32.const 0)) - (global $~lib/builtins/u32.MAX_VALUE i32 (i32.const -1)) - (global $~lib/process/process.stdin i32 (i32.const 0)) - (global $~lib/rt/__rtti_base i32 (i32.const 6336)) - (global $~lib/memory/__data_end i32 (i32.const 6380)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 22764)) - (global $~lib/memory/__heap_base i32 (i32.const 22764)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00c\00h\00 \00=\00=\00\00\00\00\00\00\00\00\00") - (data (i32.const 64) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 92) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 156) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data (i32.const 204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G\00") - (data (i32.const 284) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00C\00C\00E\00S\00\00\00") - (data (i32.const 316) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L\00\00\00\00\00") - (data (i32.const 412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T\00\00\00\00\00\00\00") - (data (i32.const 460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00A\00G\00A\00I\00N\00\00\00") - (data (i32.const 492) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 540) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00A\00D\00F\00\00\00\00\00") - (data (i32.const 572) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G\00") - (data (i32.const 604) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00B\00U\00S\00Y\00\00\00\00\00") - (data (i32.const 636) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00C\00H\00I\00L\00D\00\00\00") - (data (i32.const 716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D\00\00\00\00\00\00\00") - (data (i32.const 764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D\00\00\00\00\00\00\00") - (data (i32.const 812) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 860) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K\00") - (data (i32.const 892) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q\00\00\00\00\00\00\00") - (data (i32.const 940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\06\00\00\00D\00O\00M\00\00\00\00\00\00\00") - (data (i32.const 972) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T\00\00\00") - (data (i32.const 1004) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00E\00X\00I\00S\00T\00\00\00") - (data (i32.const 1036) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00F\00A\00U\00L\00T\00\00\00") - (data (i32.const 1068) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00F\00B\00I\00G\00\00\00\00\00") - (data (i32.const 1100) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00") - (data (i32.const 1148) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00D\00R\00M\00\00\00\00\00") - (data (i32.const 1180) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q\00\00\00") - (data (i32.const 1212) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S\00\00\00\00\00\00\00\00\00") - (data (i32.const 1260) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00I\00N\00T\00R\00\00\00\00\00") - (data (i32.const 1292) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00N\00V\00A\00L\00\00\00") - (data (i32.const 1324) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\04\00\00\00I\00O\00\00\00\00\00\00\00\00\00") - (data (i32.const 1356) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N\00") - (data (i32.const 1388) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00I\00S\00D\00I\00R\00\00\00") - (data (i32.const 1420) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00L\00O\00O\00P\00\00\00\00\00") - (data (i32.const 1452) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00F\00I\00L\00E\00\00\00") - (data (i32.const 1484) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00M\00L\00I\00N\00K\00\00\00") - (data (i32.const 1516) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1612) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G\00\00\00\00\00\00\00") - (data (i32.const 1660) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1708) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 1756) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H\00\00\00\00\00\00\00\00\00") - (data (i32.const 1804) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00F\00I\00L\00E\00\00\00") - (data (i32.const 1836) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S\00") - (data (i32.const 1868) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00D\00E\00V\00\00\00") - (data (i32.const 1900) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00E\00N\00T\00\00\00") - (data (i32.const 1932) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C\00") - (data (i32.const 1964) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00L\00C\00K\00\00\00") - (data (i32.const 1996) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K\00") - (data (i32.const 2028) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00E\00M\00\00\00") - (data (i32.const 2060) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00M\00S\00G\00\00\00") - (data (i32.const 2092) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T\00\00\00\00\00\00\00\00\00") - (data (i32.const 2140) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00P\00C\00\00\00") - (data (i32.const 2172) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S\00\00\00") - (data (i32.const 2204) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2252) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R\00") - (data (i32.const 2284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2332) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E\00") - (data (i32.const 2380) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2428) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P\00") - (data (i32.const 2460) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y\00\00\00") - (data (i32.const 2492) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00N\00X\00I\00O\00\00\00\00\00") - (data (i32.const 2524) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2572) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2620) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00E\00R\00M\00\00\00\00\00") - (data (i32.const 2652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00P\00I\00P\00E\00\00\00\00\00") - (data (i32.const 2684) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00P\00R\00O\00T\00O\00\00\00") - (data (i32.const 2716) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T\00") - (data (i32.const 2764) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 2812) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00R\00A\00N\00G\00E\00\00\00") - (data (i32.const 2844) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00R\00O\00F\00S\00\00\00\00\00") - (data (i32.const 2876) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00P\00I\00P\00E\00\00\00") - (data (i32.const 2908) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00S\00R\00C\00H\00\00\00\00\00") - (data (i32.const 2940) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00S\00T\00A\00L\00E\00\00\00") - (data (i32.const 2972) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3020) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y\00") - (data (i32.const 3052) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00X\00D\00E\00V\00\00\00\00\00") - (data (i32.const 3084) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E\00\00\00\00\00\00\00\00\00") - (data (i32.const 3132) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3180) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3244) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3308) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 3372) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00\n\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3404) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\0c\00\00\00w\00a\00s\00m\003\002\00") - (data (i32.const 3436) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00=\00=\00 \00p\00l\00a\00t\00f\00o\00r\00m\00 \00=\00=\00") - (data (i32.const 3484) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\08\00\00\00w\00a\00s\00m\00\00\00\00\00") - (data (i32.const 3516) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h\00") - (data (i32.const 3564) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s\00\00\00") - (data (i32.const 3612) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3680) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3712) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3740) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 3804) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s\00\00\00\00\00\00\00\00\00") - (data (i32.const 3856) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 3884) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00g\00v\00 \00=\00=\00\00\00\00\00\00\00\00\00") - (data (i32.const 3932) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4060) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4124) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\00=\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4156) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4188) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\12\00\00\00=\00=\00 \00e\00n\00v\00 \00=\00=\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4236) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00k\00e\00y\00:\00 \00\00\00") - (data (i32.const 4268) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\n\00\00\00v\00a\00l\00:\00 \00\00\00") - (data (i32.const 4300) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t\00\00\00\00\00\00\00\00\00") - (data (i32.const 4364) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4412) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00t\00i\00m\00e\00 \00=\00=\00\00\00\00\00\00\00\00\00") - (data (i32.const 4460) "|\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006\00\00\00\00\00\00\00\00\00") - (data (i32.const 4588) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s\00\00\00\00\00\00\00") - (data (i32.const 4652) "\1c\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\02\00\00\000\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 4684) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\00") - (data (i32.const 5084) "\1c\04\00\00\00\00\00\00\00\00\00\00\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 6140) "\\\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z\00\00\00\00\00") - (data (i32.const 6236) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\18\00\00\00=\00=\00 \00h\00r\00t\00i\00m\00e\00 \00=\00=\00\00\00\00\00") - (data (i32.const 6284) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\14\00\00\00=\00=\00 \00e\00x\00i\00t\00 \00=\00=\00\00\00\00\00\00\00\00\00") - (data (i32.const 6336) "\05\00\00\00 \00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\02A\00\00\00\00\00\00\10A\82\00\00\00\00\00") - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "memory" (memory $0)) - (export "_start" (func $~start)) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - ) - (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/util/string/compareImpl (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) - (local $8 i32) - (local $9 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - i32.const 0 - i32.const 2 - i32.lt_s - drop - local.get $4 - i32.const 4 - i32.ge_u - if (result i32) - local.get $5 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.or - i32.eqz - else - i32.const 0 - end - if - block $do-break|0 - loop $do-loop|0 - local.get $5 - i64.load - local.get $6 - i64.load - i64.ne - if - br $do-break|0 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $6 - i32.const 8 - i32.add - local.set $6 - local.get $4 - i32.const 4 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 - local.get $4 - local.tee $7 - i32.const 1 - i32.sub - local.set $4 - local.get $7 - local.set $7 - local.get $7 - if - local.get $5 - i32.load16_u - local.set $8 - local.get $6 - i32.load16_u - local.set $9 - local.get $8 - local.get $9 - i32.ne - if - local.get $8 - local.get $9 - i32.sub - return - end - local.get $5 - i32.const 2 - i32.add - local.set $5 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $while-continue|1 - end - end - i32.const 0 - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end - if - i32.const 0 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - return - end - local.get $0 - i32.const 0 - local.get $1 - i32.const 0 - local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - ) - (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - ) - (func $~lib/string/String.UTF8.encodeUnsafe (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) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.set $6 - loop $while-continue|0 - local.get $0 - local.get $5 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $0 - i32.load16_u - local.set $8 - local.get $8 - i32.const 128 - i32.lt_u - if - local.get $6 - local.get $8 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - local.get $3 - local.get $8 - i32.eqz - i32.and - if - local.get $6 - local.get $2 - i32.sub - return - end - else - local.get $8 - i32.const 2048 - i32.lt_u - if - local.get $8 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.set $9 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $10 - local.get $6 - local.get $10 - i32.const 8 - i32.shl - local.get $9 - i32.or - i32.store16 - local.get $6 - i32.const 2 - i32.add - local.set $6 - else - local.get $8 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - if - local.get $8 - i32.const 56320 - i32.lt_u - if (result i32) - local.get $0 - i32.const 2 - i32.add - local.get $5 - i32.lt_u - else - i32.const 0 - end - if - local.get $0 - i32.load16_u offset=2 - local.set $10 - local.get $10 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - i32.const 65536 - local.get $8 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.add - local.get $10 - i32.const 1023 - i32.and - i32.or - local.set $8 - local.get $8 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.set $9 - local.get $8 - i32.const 12 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $11 - local.get $8 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $12 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $13 - local.get $6 - local.get $13 - i32.const 24 - i32.shl - local.get $12 - i32.const 16 - i32.shl - i32.or - local.get $11 - i32.const 8 - i32.shl - i32.or - local.get $9 - i32.or - i32.store - local.get $6 - i32.const 4 - i32.add - local.set $6 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $4 - i32.const 0 - i32.ne - if - local.get $4 - i32.const 2 - i32.eq - if - i32.const 112 - i32.const 176 - i32.const 742 - i32.const 49 - call $~lib/wasi/index/abort - unreachable - end - i32.const 65533 - local.set $8 - end - end - local.get $8 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.set $10 - local.get $8 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $13 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $12 - local.get $6 - local.get $13 - i32.const 8 - i32.shl - local.get $10 - i32.or - i32.store16 - local.get $6 - local.get $12 - i32.store8 offset=2 - local.get $6 - i32.const 3 - i32.add - local.set $6 - 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 $6 - local.tee $7 - i32.const 1 - i32.add - local.set $6 - local.get $7 - i32.const 0 - i32.store8 - end - local.get $6 - local.get $2 - i32.sub - ) - (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 3 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $3 - end - i32.const 0 - local.set $4 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - ) - (func $~lib/util/number/decimalCount32 (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/bindings/wasi_snapshot_preview1/iovec#set:buf_len (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 0 - i32.const 12 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf - 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 - call $~lib/string/String.__ne - if - local.get $4 - local.get $0 - local.get $0 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - 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 - call $~lib/string/String.__ne - if - local.get $4 - local.get $1 - local.get $1 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - 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-loop|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 - br_if $do-loop|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-loop|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 - br_if $do-loop|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 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len - 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/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) - (local $1 i32) - block $break|0 - block $case76|0 - block $case75|0 - block $case74|0 - block $case73|0 - block $case72|0 - block $case71|0 - block $case70|0 - block $case69|0 - block $case68|0 - block $case67|0 - block $case66|0 - block $case65|0 - block $case64|0 - block $case63|0 - block $case62|0 - block $case61|0 - block $case60|0 - block $case59|0 - block $case58|0 - block $case57|0 - block $case56|0 - block $case55|0 - block $case54|0 - block $case53|0 - block $case52|0 - block $case51|0 - block $case50|0 - block $case49|0 - block $case48|0 - block $case47|0 - block $case46|0 - block $case45|0 - block $case44|0 - block $case43|0 - block $case42|0 - block $case41|0 - block $case40|0 - block $case39|0 - block $case38|0 - block $case37|0 - block $case36|0 - block $case35|0 - block $case34|0 - block $case33|0 - block $case32|0 - block $case31|0 - block $case30|0 - block $case29|0 - block $case28|0 - block $case27|0 - block $case26|0 - block $case25|0 - block $case24|0 - block $case23|0 - block $case22|0 - block $case21|0 - block $case20|0 - block $case19|0 - block $case18|0 - block $case17|0 - block $case16|0 - block $case15|0 - block $case14|0 - block $case13|0 - block $case12|0 - block $case11|0 - block $case10|0 - block $case9|0 - block $case8|0 - block $case7|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 65535 - i32.and - local.set $1 - local.get $1 - i32.const 0 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $1 - i32.const 3 - i32.eq - br_if $case3|0 - local.get $1 - i32.const 4 - i32.eq - br_if $case4|0 - local.get $1 - i32.const 5 - i32.eq - br_if $case5|0 - local.get $1 - i32.const 6 - i32.eq - br_if $case6|0 - local.get $1 - i32.const 7 - i32.eq - br_if $case7|0 - local.get $1 - i32.const 8 - i32.eq - br_if $case8|0 - local.get $1 - i32.const 9 - i32.eq - br_if $case9|0 - local.get $1 - i32.const 10 - i32.eq - br_if $case10|0 - local.get $1 - i32.const 11 - i32.eq - br_if $case11|0 - local.get $1 - i32.const 12 - i32.eq - br_if $case12|0 - local.get $1 - i32.const 13 - i32.eq - br_if $case13|0 - local.get $1 - i32.const 14 - i32.eq - br_if $case14|0 - local.get $1 - i32.const 15 - i32.eq - br_if $case15|0 - local.get $1 - i32.const 16 - i32.eq - br_if $case16|0 - local.get $1 - i32.const 17 - i32.eq - br_if $case17|0 - local.get $1 - i32.const 18 - i32.eq - br_if $case18|0 - local.get $1 - i32.const 19 - i32.eq - br_if $case19|0 - local.get $1 - i32.const 20 - i32.eq - br_if $case20|0 - local.get $1 - i32.const 21 - i32.eq - br_if $case21|0 - local.get $1 - i32.const 22 - i32.eq - br_if $case22|0 - local.get $1 - i32.const 23 - i32.eq - br_if $case23|0 - local.get $1 - i32.const 24 - i32.eq - br_if $case24|0 - local.get $1 - i32.const 25 - i32.eq - br_if $case25|0 - local.get $1 - i32.const 26 - i32.eq - br_if $case26|0 - local.get $1 - i32.const 27 - i32.eq - br_if $case27|0 - local.get $1 - i32.const 28 - i32.eq - br_if $case28|0 - local.get $1 - i32.const 29 - i32.eq - br_if $case29|0 - local.get $1 - i32.const 30 - i32.eq - br_if $case30|0 - local.get $1 - i32.const 31 - i32.eq - br_if $case31|0 - local.get $1 - i32.const 32 - i32.eq - br_if $case32|0 - local.get $1 - i32.const 33 - i32.eq - br_if $case33|0 - local.get $1 - i32.const 34 - i32.eq - br_if $case34|0 - local.get $1 - i32.const 35 - i32.eq - br_if $case35|0 - local.get $1 - i32.const 36 - i32.eq - br_if $case36|0 - local.get $1 - i32.const 37 - i32.eq - br_if $case37|0 - local.get $1 - i32.const 38 - i32.eq - br_if $case38|0 - local.get $1 - i32.const 39 - i32.eq - br_if $case39|0 - local.get $1 - i32.const 40 - i32.eq - br_if $case40|0 - local.get $1 - i32.const 41 - i32.eq - br_if $case41|0 - local.get $1 - i32.const 42 - i32.eq - br_if $case42|0 - local.get $1 - i32.const 43 - i32.eq - br_if $case43|0 - local.get $1 - i32.const 44 - i32.eq - br_if $case44|0 - local.get $1 - i32.const 45 - i32.eq - br_if $case45|0 - local.get $1 - i32.const 46 - i32.eq - br_if $case46|0 - local.get $1 - i32.const 47 - i32.eq - br_if $case47|0 - local.get $1 - i32.const 48 - i32.eq - br_if $case48|0 - local.get $1 - i32.const 49 - i32.eq - br_if $case49|0 - local.get $1 - i32.const 50 - i32.eq - br_if $case50|0 - local.get $1 - i32.const 51 - i32.eq - br_if $case51|0 - local.get $1 - i32.const 52 - i32.eq - br_if $case52|0 - local.get $1 - i32.const 53 - i32.eq - br_if $case53|0 - local.get $1 - i32.const 54 - i32.eq - br_if $case54|0 - local.get $1 - i32.const 55 - i32.eq - br_if $case55|0 - local.get $1 - i32.const 56 - i32.eq - br_if $case56|0 - local.get $1 - i32.const 57 - i32.eq - br_if $case57|0 - local.get $1 - i32.const 58 - i32.eq - br_if $case58|0 - local.get $1 - i32.const 59 - i32.eq - br_if $case59|0 - local.get $1 - i32.const 60 - i32.eq - br_if $case60|0 - local.get $1 - i32.const 61 - i32.eq - br_if $case61|0 - local.get $1 - i32.const 62 - i32.eq - br_if $case62|0 - local.get $1 - i32.const 63 - i32.eq - br_if $case63|0 - local.get $1 - i32.const 64 - i32.eq - br_if $case64|0 - local.get $1 - i32.const 65 - i32.eq - br_if $case65|0 - local.get $1 - i32.const 66 - i32.eq - br_if $case66|0 - local.get $1 - i32.const 67 - i32.eq - br_if $case67|0 - local.get $1 - i32.const 68 - i32.eq - br_if $case68|0 - local.get $1 - i32.const 69 - i32.eq - br_if $case69|0 - local.get $1 - i32.const 70 - i32.eq - br_if $case70|0 - local.get $1 - i32.const 71 - i32.eq - br_if $case71|0 - local.get $1 - i32.const 72 - i32.eq - br_if $case72|0 - local.get $1 - i32.const 73 - i32.eq - br_if $case73|0 - local.get $1 - i32.const 74 - i32.eq - br_if $case74|0 - local.get $1 - i32.const 75 - i32.eq - br_if $case75|0 - local.get $1 - i32.const 76 - i32.eq - br_if $case76|0 - br $break|0 - end - i32.const 224 - return - end - i32.const 272 - return - end - i32.const 304 - return - end - i32.const 336 - return - end - i32.const 384 - return - end - i32.const 432 - return - end - i32.const 480 - return - end - i32.const 512 - return - end - i32.const 560 - return - end - i32.const 592 - return - end - i32.const 624 - return - end - i32.const 656 - return - end - i32.const 704 - return - end - i32.const 736 - return - end - i32.const 784 - return - end - i32.const 832 - return - end - i32.const 880 - return - end - i32.const 912 - return - end - i32.const 960 - return - end - i32.const 992 - return - end - i32.const 1024 - return - end - i32.const 1056 - return - end - i32.const 1088 - return - end - i32.const 1120 - return - end - i32.const 1168 - return - end - i32.const 1200 - return - end - i32.const 1232 - return - end - i32.const 1280 - return - end - i32.const 1312 - return - end - i32.const 1344 - return - end - i32.const 1376 - return - end - i32.const 1408 - return - end - i32.const 1440 - return - end - i32.const 1472 - return - end - i32.const 1504 - return - end - i32.const 1536 - return - end - i32.const 1584 - return - end - i32.const 1632 - return - end - i32.const 1680 - return - end - i32.const 1728 - return - end - i32.const 1776 - return - end - i32.const 1824 - return - end - i32.const 1856 - return - end - i32.const 1888 - return - end - i32.const 1920 - return - end - i32.const 1952 - return - end - i32.const 1984 - return - end - i32.const 2016 - return - end - i32.const 2048 - return - end - i32.const 2080 - return - end - i32.const 2112 - return - end - i32.const 2160 - return - end - i32.const 2192 - return - end - i32.const 2224 - return - end - i32.const 2272 - return - end - i32.const 2304 - return - end - i32.const 2352 - return - end - i32.const 2400 - return - end - i32.const 2448 - return - end - i32.const 2480 - return - end - i32.const 2512 - return - end - i32.const 2544 - return - end - i32.const 2592 - return - end - i32.const 2640 - return - end - i32.const 2672 - return - end - i32.const 2704 - return - end - i32.const 2736 - return - end - i32.const 2784 - return - end - i32.const 2832 - return - end - i32.const 2864 - return - end - i32.const 2896 - return - end - i32.const 2928 - return - end - i32.const 2960 - return - end - i32.const 2992 - return - end - i32.const 3040 - return - end - i32.const 3072 - return - end - i32.const 3104 - return - end - i32.const 3152 - ) - (func $~lib/string/String.UTF8.byteLength (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $0 - local.set $2 - local.get $2 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $3 - local.get $1 - i32.const 0 - i32.ne - local.set $4 - block $while-break|0 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $2 - i32.load16_u - local.set $6 - local.get $6 - i32.const 128 - i32.lt_u - if - local.get $1 - local.get $6 - i32.eqz - i32.and - if - br $while-break|0 - end - local.get $4 - i32.const 1 - i32.add - local.set $4 - else - local.get $6 - i32.const 2048 - i32.lt_u - if - local.get $4 - i32.const 2 - i32.add - local.set $4 - else - local.get $6 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - if (result i32) - local.get $2 - i32.const 2 - i32.add - local.get $3 - i32.lt_u - else - i32.const 0 - end - if - local.get $2 - i32.load16_u offset=2 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $4 - i32.const 4 - i32.add - local.set $4 - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $4 - i32.const 3 - i32.add - local.set $4 - end - end - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|0 - end - end - end - local.get $4 - ) - (func $~lib/rt/tlsf/Root#set:flMap (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/rt/common/BLOCK#set:mmInfo (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/rt/tlsf/Block#set:prev (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/rt/tlsf/Block#set:next (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 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.get $1 - i32.load - local.set $2 - i32.const 1 - drop - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 268 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $3 - i32.const 1 - drop - local.get $3 - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 270 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $4 - local.get $3 - i32.const 4 - i32.shr_u - local.set $5 - else - local.get $3 - local.tee $6 - i32.const 1073741820 - local.tee $7 - local.get $6 - local.get $7 - i32.lt_u - select - local.set $6 - i32.const 31 - local.get $6 - i32.clz - i32.sub - local.set $4 - local.get $6 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $5 - local.get $4 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $4 - end - i32.const 1 - drop - local.get $4 - i32.const 23 - i32.lt_u - if (result i32) - local.get $5 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 284 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load offset=4 - local.set $8 - local.get $1 - i32.load offset=8 - local.set $9 - local.get $8 - if - local.get $8 - local.get $9 - call $~lib/rt/tlsf/Block#set:next - end - local.get $9 - if - local.get $9 - local.get $8 - call $~lib/rt/tlsf/Block#set:prev - end - local.get $1 - local.get $0 - local.set $10 - local.get $4 - local.set $6 - local.get $5 - local.set $7 - local.get $10 - local.get $6 - i32.const 4 - i32.shl - local.get $7 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - i32.eq - if - local.get $0 - local.set $11 - local.get $4 - local.set $10 - local.get $5 - local.set $6 - local.get $9 - local.set $7 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $7 - i32.store offset=96 - local.get $9 - i32.eqz - if - local.get $0 - local.set $6 - local.get $4 - local.set $7 - local.get $6 - local.get $7 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $6 - local.get $0 - local.set $7 - local.get $4 - local.set $11 - local.get $6 - i32.const 1 - local.get $5 - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $6 - local.set $10 - local.get $7 - local.get $11 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - local.get $6 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $4 - i32.shl - i32.const -1 - i32.xor - i32.and - call $~lib/rt/tlsf/Root#set:flMap - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 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 $13 i32) - i32.const 1 - drop - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 201 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load - local.set $2 - i32.const 1 - drop - local.get $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 203 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.set $3 - local.get $3 - i32.const 4 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - local.get $5 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $2 - i32.const 4 - i32.add - local.get $5 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $2 - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $1 - local.set $3 - local.get $3 - i32.const 4 - i32.add - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.set $4 - local.get $4 - i32.load - local.set $5 - end - local.get $2 - i32.const 2 - i32.and - if - local.get $1 - local.set $3 - local.get $3 - i32.const 4 - i32.sub - i32.load - local.set $3 - local.get $3 - i32.load - local.set $6 - i32.const 1 - drop - local.get $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 221 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $3 - local.set $1 - local.get $1 - local.get $6 - i32.const 4 - i32.add - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.tee $2 - call $~lib/rt/common/BLOCK#set:mmInfo - end - local.get $4 - local.get $5 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $2 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.set $7 - i32.const 1 - drop - local.get $7 - i32.const 12 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 233 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1 - drop - local.get $1 - i32.const 4 - i32.add - local.get $7 - i32.add - local.get $4 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 234 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $7 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $8 - local.get $7 - i32.const 4 - i32.shr_u - local.set $9 - else - local.get $7 - local.tee $3 - i32.const 1073741820 - local.tee $6 - local.get $3 - local.get $6 - i32.lt_u - select - local.set $3 - i32.const 31 - local.get $3 - i32.clz - i32.sub - local.set $8 - local.get $3 - local.get $8 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $9 - local.get $8 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $8 - end - i32.const 1 - drop - local.get $8 - i32.const 23 - i32.lt_u - if (result i32) - local.get $9 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 251 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.set $10 - local.get $8 - local.set $3 - local.get $9 - local.set $6 - local.get $10 - local.get $3 - i32.const 4 - i32.shl - local.get $6 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $11 - local.get $1 - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $1 - local.get $11 - call $~lib/rt/tlsf/Block#set:next - local.get $11 - if - local.get $11 - local.get $1 - call $~lib/rt/tlsf/Block#set:prev - end - local.get $0 - local.set $12 - local.get $8 - local.set $10 - local.get $9 - local.set $3 - local.get $1 - local.set $6 - local.get $12 - local.get $10 - i32.const 4 - i32.shl - local.get $3 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $8 - i32.shl - i32.or - call $~lib/rt/tlsf/Root#set:flMap - local.get $0 - local.set $13 - local.get $8 - local.set $12 - local.get $0 - local.set $3 - local.get $8 - local.set $6 - local.get $3 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 1 - local.get $9 - i32.shl - i32.or - local.set $10 - local.get $13 - local.get $12 - i32.const 2 - i32.shl - i32.add - local.get $10 - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - i32.const 1 - drop - local.get $1 - local.get $2 - i32.le_u - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 377 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $2 - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $2 - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - local.set $4 - i32.const 0 - local.set $5 - local.get $4 - if - i32.const 1 - drop - local.get $1 - local.get $4 - i32.const 4 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 384 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $1 - i32.const 16 - i32.sub - local.set $1 - local.get $4 - i32.load - local.set $5 - else - nop - end - else - i32.const 1 - drop - local.get $1 - local.get $0 - i32.const 1572 - i32.add - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 397 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - end - local.get $2 - local.get $1 - i32.sub - local.set $6 - local.get $6 - i32.const 4 - i32.const 12 - i32.add - i32.const 4 - i32.add - i32.lt_u - if - i32.const 0 - return - end - local.get $6 - i32.const 2 - i32.const 4 - i32.mul - i32.sub - local.set $7 - local.get $1 - local.set $8 - local.get $8 - local.get $7 - i32.const 1 - i32.or - local.get $5 - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $8 - i32.const 0 - call $~lib/rt/tlsf/Block#set:prev - local.get $8 - i32.const 0 - call $~lib/rt/tlsf/Block#set:next - local.get $1 - i32.const 4 - i32.add - local.get $7 - i32.add - local.set $4 - local.get $4 - i32.const 0 - i32.const 2 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $0 - local.set $9 - local.get $4 - local.set $3 - local.get $9 - local.get $3 - i32.store offset=1568 - local.get $0 - local.get $8 - call $~lib/rt/tlsf/insertBlock - i32.const 1 - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 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) - i32.const 0 - drop - global.get $~lib/memory/__heap_base - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - local.set $0 - memory.size - local.set $1 - local.get $0 - i32.const 1572 - i32.add - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $2 - local.get $2 - local.get $1 - i32.gt_s - if (result i32) - local.get $2 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - local.get $0 - local.set $3 - local.get $3 - i32.const 0 - call $~lib/rt/tlsf/Root#set:flMap - local.get $3 - local.set $5 - i32.const 0 - local.set $4 - local.get $5 - local.get $4 - i32.store offset=1568 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - i32.const 23 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $3 - local.set $8 - local.get $5 - local.set $7 - i32.const 0 - local.set $6 - local.get $8 - local.get $7 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $8 - loop $for-loop|1 - local.get $8 - i32.const 16 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $3 - local.set $11 - local.get $5 - local.set $10 - local.get $8 - local.set $9 - i32.const 0 - local.set $6 - local.get $11 - local.get $10 - i32.const 4 - i32.shl - local.get $9 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store offset=96 - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|1 - end - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $0 - i32.const 1572 - i32.add - local.set $12 - i32.const 0 - drop - local.get $3 - local.get $12 - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - local.get $3 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/computeSize (param $0 i32) (result i32) - local.get $0 - i32.const 12 - i32.le_u - if (result i32) - i32.const 12 - else - local.get $0 - i32.const 4 - i32.add - i32.const 15 - i32.add - i32.const 15 - i32.const -1 - i32.xor - i32.and - i32.const 4 - i32.sub - end - ) - (func $~lib/rt/tlsf/prepareSize (param $0 i32) (result i32) - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 3328 - i32.const 3264 - i32.const 458 - i32.const 29 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - call $~lib/rt/tlsf/computeSize - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - local.get $1 - i32.const 256 - i32.lt_u - if - i32.const 0 - local.set $2 - local.get $1 - i32.const 4 - i32.shr_u - local.set $3 - else - local.get $1 - i32.const 536870910 - i32.lt_u - if (result i32) - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - else - local.get $1 - end - local.set $4 - i32.const 31 - local.get $4 - i32.clz - i32.sub - local.set $2 - local.get $4 - local.get $2 - i32.const 4 - i32.sub - i32.shr_u - i32.const 1 - i32.const 4 - i32.shl - i32.xor - local.set $3 - local.get $2 - i32.const 8 - i32.const 1 - i32.sub - i32.sub - local.set $2 - end - i32.const 1 - drop - local.get $2 - i32.const 23 - i32.lt_u - if (result i32) - local.get $3 - i32.const 16 - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 330 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.set $5 - local.get $2 - local.set $4 - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const 0 - i32.const -1 - i32.xor - local.get $3 - i32.shl - i32.and - local.set $6 - i32.const 0 - local.set $7 - local.get $6 - i32.eqz - if - local.get $0 - i32.load - i32.const 0 - i32.const -1 - i32.xor - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.set $5 - local.get $5 - i32.eqz - if - i32.const 0 - local.set $7 - else - local.get $5 - i32.ctz - local.set $2 - local.get $0 - local.set $8 - local.get $2 - local.set $4 - local.get $8 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $6 - i32.const 1 - drop - local.get $6 - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 343 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - else - local.get $0 - local.set $9 - local.get $2 - local.set $8 - local.get $6 - i32.ctz - local.set $4 - local.get $9 - local.get $8 - i32.const 4 - i32.shl - local.get $4 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $7 - end - local.get $7 - ) - (func $~lib/rt/tlsf/growMemory (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 0 - drop - local.get $1 - i32.const 536870910 - i32.lt_u - if - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.set $1 - end - memory.size - local.set $2 - local.get $1 - i32.const 4 - local.get $2 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - local.get $0 - local.set $3 - local.get $3 - i32.load offset=1568 - i32.ne - i32.shl - i32.add - local.set $1 - local.get $1 - i32.const 65535 - i32.add - i32.const 65535 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.shr_u - local.set $4 - local.get $2 - local.tee $3 - local.get $4 - local.tee $5 - local.get $3 - local.get $5 - i32.gt_s - select - local.set $6 - local.get $6 - memory.grow - i32.const 0 - i32.lt_s - if - local.get $4 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - memory.size - local.set $7 - local.get $0 - local.get $2 - i32.const 16 - i32.shl - local.get $7 - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - drop - ) - (func $~lib/rt/tlsf/prepareBlock (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.set $3 - i32.const 1 - drop - local.get $2 - i32.const 4 - i32.add - i32.const 15 - i32.and - i32.eqz - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 357 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.const 12 - i32.add - i32.ge_u - if - local.get $1 - local.get $2 - local.get $3 - i32.const 2 - i32.and - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.set $5 - local.get $5 - local.get $4 - i32.const 4 - i32.sub - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $0 - local.get $5 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $3 - i32.const 1 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $1 - local.set $5 - local.get $5 - i32.const 4 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - local.get $1 - local.set $5 - local.get $5 - i32.const 4 - i32.add - local.get $5 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - i32.load - i32.const 2 - i32.const -1 - i32.xor - i32.and - call $~lib/rt/common/BLOCK#set:mmInfo - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - call $~lib/rt/tlsf/prepareSize - local.set $2 - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 - local.get $3 - i32.eqz - if - local.get $0 - local.get $2 - call $~lib/rt/tlsf/growMemory - local.get $0 - local.get $2 - call $~lib/rt/tlsf/searchBlock - local.set $3 - i32.const 1 - drop - local.get $3 - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 496 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - i32.const 1 - drop - local.get $3 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $2 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 498 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $3 - call $~lib/rt/tlsf/removeBlock - local.get $0 - local.get $3 - local.get $2 - call $~lib/rt/tlsf/prepareBlock - i32.const 0 - drop - local.get $3 - ) - (func $~lib/rt/tlsf/__alloc (param $0 i32) (result i32) - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - ) - (func $~lib/rt/tlsf/checkUsedBlock (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 0 - i32.ne - if (result i32) - local.get $0 - i32.const 15 - i32.and - i32.eqz - else - i32.const 0 - end - if (result i32) - local.get $1 - i32.load - i32.const 1 - i32.and - i32.eqz - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 559 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - ) - (func $~lib/rt/tlsf/freeBlock (param $0 i32) (param $1 i32) - i32.const 0 - drop - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or - call $~lib/rt/common/BLOCK#set:mmInfo - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/__free (param $0 i32) - local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - if - return - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - call $~lib/rt/tlsf/checkUsedBlock - call $~lib/rt/tlsf/freeBlock - ) - (func $~lib/process/writeString (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - local.get $1 - call $~lib/string/String#get:length - local.set $2 - i32.const 0 - local.set $3 - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $2 - local.set $6 - local.get $6 - i32.const 4 - i32.eq - br_if $case0|0 - local.get $6 - i32.const 3 - i32.eq - br_if $case1|0 - local.get $6 - i32.const 2 - i32.eq - br_if $case2|0 - local.get $6 - i32.const 1 - i32.eq - br_if $case3|0 - local.get $6 - i32.const 0 - i32.eq - br_if $case4|0 - br $break|0 - end - local.get $1 - i32.load16_u offset=6 - local.set $5 - local.get $5 - i32.const 128 - i32.ge_u - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=4 - local.set $4 - local.get $4 - i32.const 128 - i32.ge_u - if - br $break|0 - end - end - local.get $1 - i32.load16_u offset=2 - local.set $3 - local.get $3 - i32.const 128 - i32.ge_u - if - br $break|0 - end - end - local.get $1 - i32.load16_u - local.set $6 - local.get $6 - i32.const 128 - i32.ge_u - if - br $break|0 - end - global.get $~lib/bindings/wasi/tempbuf - global.get $~lib/bindings/wasi/tempbuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - i32.store - global.get $~lib/bindings/wasi/tempbuf - local.get $2 - i32.store offset=4 - global.get $~lib/bindings/wasi/tempbuf - local.get $6 - local.get $3 - i32.const 8 - i32.shl - i32.or - local.get $4 - i32.const 16 - i32.shl - i32.or - local.get $5 - i32.const 24 - i32.shl - i32.or - i32.store offset=8 - local.get $0 - global.get $~lib/bindings/wasi/tempbuf - i32.const 1 - global.get $~lib/bindings/wasi/tempbuf - i32.const 3 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $7 - local.get $7 - i32.const 65535 - i32.and - if - local.get $7 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 211 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - return - end - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - local.set $8 - local.get $8 - call $~lib/rt/tlsf/__alloc - local.set $9 - local.get $1 - local.get $2 - local.get $9 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $8 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3200 - i32.const 217 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - local.get $9 - i32.store - global.get $~lib/bindings/wasi/tempbuf - local.get $8 - i32.store offset=4 - local.get $0 - global.get $~lib/bindings/wasi/tempbuf - i32.const 1 - global.get $~lib/bindings/wasi/tempbuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $10 - local.get $9 - call $~lib/rt/tlsf/__free - local.get $10 - i32.const 65535 - i32.and - if - local.get $10 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 222 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/process/WritableStream#write<~lib/string/String> (param $0 i32) (param $1 i32) - i32.const 1 - drop - local.get $0 - local.get $1 - call $~lib/process/writeString - ) - (func $~lib/rt/itcms/Object#set:nextWithColor (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/rt/itcms/Object#set:prev (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/rt/itcms/initLazy (param $0 i32) (result i32) - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - local.get $0 - call $~lib/rt/itcms/Object#set:prev - local.get $0 - ) - (func $~lib/rt/itcms/Object#get:next (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - ) - (func $~lib/rt/itcms/Object#get:color (param $0 i32) (result i32) - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - ) - (func $~lib/rt/itcms/visitRoots (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - call $~lib/rt/__visit_globals - global.get $~lib/rt/itcms/pinSpace - local.set $1 - local.get $1 - call $~lib/rt/itcms/Object#get:next - local.set $2 - loop $while-continue|0 - local.get $2 - local.get $1 - i32.ne - local.set $3 - local.get $3 - if - i32.const 1 - drop - local.get $2 - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3632 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 20 - i32.add - local.get $0 - call $~lib/rt/__visit_members - local.get $2 - call $~lib/rt/itcms/Object#get:next - local.set $2 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#set:color (param $0 i32) (param $1 i32) - local.get $0 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.const -1 - i32.xor - i32.and - local.get $1 - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#set:next (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - ) - (func $~lib/rt/itcms/Object#unlink (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $1 - local.get $1 - i32.const 0 - i32.eq - if - i32.const 1 - drop - local.get $0 - i32.load offset=8 - i32.const 0 - i32.eq - if (result i32) - local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 3632 - i32.const 127 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - return - end - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - drop - local.get $2 - i32.eqz - if - i32.const 0 - i32.const 3632 - i32.const 131 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $2 - call $~lib/rt/itcms/Object#set:prev - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:next - ) - (func $~lib/rt/__typeinfo (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/rt/__rtti_base - local.set $1 - local.get $0 - local.get $1 - i32.load - i32.gt_u - if - i32.const 3760 - i32.const 3824 - i32.const 22 - i32.const 28 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $0 - i32.const 8 - i32.mul - i32.add - i32.load - ) - (func $~lib/rt/itcms/Object#get:isPointerfree (param $0 i32) (result i32) - (local $1 i32) - local.get $0 - i32.load offset=12 - local.set $1 - local.get $1 - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - call $~lib/rt/__typeinfo - i32.const 32 - i32.and - i32.const 0 - i32.ne - end - ) - (func $~lib/rt/itcms/Object#linkTo (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $1 - i32.load offset=8 - local.set $3 - local.get $0 - local.get $1 - local.get $2 - i32.or - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - local.get $3 - call $~lib/rt/itcms/Object#set:prev - local.get $3 - local.get $0 - call $~lib/rt/itcms/Object#set:next - local.get $1 - local.get $0 - call $~lib/rt/itcms/Object#set:prev - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if (result i32) - i32.const 0 - i32.const 3632 - i32.const 147 - i32.const 30 - call $~lib/wasi/index/abort - unreachable - else - local.get $1 - end - global.set $~lib/rt/itcms/iter - end - local.get $0 - call $~lib/rt/itcms/Object#unlink - local.get $0 - global.get $~lib/rt/itcms/toSpace - local.get $0 - call $~lib/rt/itcms/Object#get:isPointerfree - if (result i32) - global.get $~lib/rt/itcms/white - i32.eqz - else - i32.const 2 - end - call $~lib/rt/itcms/Object#linkTo - ) - (func $~lib/rt/itcms/__visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.eqz - if - return - end - local.get $0 - i32.const 20 - i32.sub - local.set $2 - i32.const 0 - drop - local.get $2 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $2 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $~lib/rt/itcms/visitStack (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - local.set $1 - loop $while-continue|0 - local.get $1 - global.get $~lib/memory/__heap_base - i32.lt_u - local.set $2 - local.get $2 - if - local.get $1 - i32.load - local.get $0 - call $~lib/rt/itcms/__visit - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#get:size (param $0 i32) (result i32) - i32.const 4 - local.get $0 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.add - ) - (func $~lib/rt/itcms/free (param $0 i32) - local.get $0 - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $0 - i32.const 0 - call $~lib/rt/itcms/Object#set:nextWithColor - local.get $0 - i32.const 0 - call $~lib/rt/itcms/Object#set:prev - else - global.get $~lib/rt/itcms/total - local.get $0 - call $~lib/rt/itcms/Object#get:size - i32.sub - global.set $~lib/rt/itcms/total - i32.const 0 - drop - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - local.set $1 - local.get $1 - i32.const 0 - i32.eq - br_if $case0|0 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - local.get $1 - i32.const 2 - i32.eq - br_if $case2|0 - br $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $2 - local.get $2 - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $0 - call $~lib/rt/itcms/Object#get:color - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - i32.const 0 - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $0 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.eq - if - i32.const 0 - call $~lib/rt/itcms/visitStack - global.get $~lib/rt/itcms/iter - call $~lib/rt/itcms/Object#get:next - local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - local.set $2 - local.get $2 - if - local.get $0 - call $~lib/rt/itcms/Object#get:color - local.get $1 - i32.ne - if - local.get $0 - local.get $1 - call $~lib/rt/itcms/Object#set:color - local.get $0 - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end - local.get $0 - call $~lib/rt/itcms/Object#get:next - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $2 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $2 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $2 - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - global.get $~lib/rt/itcms/iter - local.set $0 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - call $~lib/rt/itcms/Object#get:next - global.set $~lib/rt/itcms/iter - i32.const 1 - drop - local.get $0 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - i32.eqz - if - i32.const 0 - i32.const 3632 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - call $~lib/rt/itcms/free - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:nextWithColor - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/toSpace - call $~lib/rt/itcms/Object#set:prev - i32.const 0 - global.set $~lib/rt/itcms/state - br $break|0 - end - i32.const 0 - ) - (func $~lib/rt/itcms/interrupt - (local $0 i32) - i32.const 0 - drop - i32.const 0 - drop - i32.const 1024 - i32.const 200 - i32.mul - i32.const 100 - i32.div_u - local.set $0 - loop $do-loop|0 - local.get $0 - call $~lib/rt/itcms/step - i32.sub - local.set $0 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.eq - if - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i32.const 200 - i64.extend_i32_u - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - return - end - local.get $0 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - i32.const 0 - drop - global.get $~lib/rt/itcms/total - i32.const 1024 - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.mul - i32.add - global.set $~lib/rt/itcms/threshold - i32.const 0 - drop - ) - (func $~lib/rt/itcms/Object#set:rtId (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/rt/itcms/Object#set:rtSize (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 3328 - i32.const 3632 - i32.const 260 - i32.const 31 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - call $~lib/rt/itcms/interrupt - end - i32.const 16 - local.get $0 - i32.add - call $~lib/rt/tlsf/__alloc - i32.const 4 - i32.sub - local.set $2 - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:rtId - local.get $2 - local.get $0 - call $~lib/rt/itcms/Object#set:rtSize - local.get $2 - global.get $~lib/rt/itcms/fromSpace - global.get $~lib/rt/itcms/white - call $~lib/rt/itcms/Object#linkTo - global.get $~lib/rt/itcms/total - local.get $2 - call $~lib/rt/itcms/Object#get:size - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.set $3 - local.get $3 - i32.const 0 - local.get $0 - memory.fill - local.get $3 - ) - (func $~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.eqz - if - return - end - i32.const 1 - drop - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 3632 - i32.const 294 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 20 - i32.sub - local.set $3 - local.get $3 - call $~lib/rt/itcms/Object#get:color - global.get $~lib/rt/itcms/white - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.set $4 - local.get $4 - call $~lib/rt/itcms/Object#get:color - local.set $5 - local.get $5 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $2 - if - local.get $4 - call $~lib/rt/itcms/Object#makeGray - else - local.get $3 - call $~lib/rt/itcms/Object#makeGray - end - else - local.get $5 - i32.const 3 - i32.eq - if (result i32) - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - else - i32.const 0 - end - if - local.get $3 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) - (func $~lib/array/Array<~lib/string/String>#set:buffer (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/string/String>#set:dataStart (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/array/Array<~lib/string/String>#set:byteLength (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/array/Array<~lib/string/String>#set:length_ (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $0 - i32.const 20 - i32.sub - local.set $2 - local.get $1 - local.get $2 - i32.load - i32.const 3 - i32.const -1 - i32.xor - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/Object#set:rtSize - local.get $0 - return - end - local.get $1 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.set $3 - local.get $3 - local.get $0 - local.get $1 - local.tee $4 - local.get $2 - i32.load offset=16 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_u - select - memory.copy - local.get $3 - ) - (func $~lib/array/ensureCapacity (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 - i32.load offset=8 - local.set $4 - local.get $1 - local.get $4 - local.get $2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 1073741820 - local.get $2 - i32.shr_u - i32.gt_u - if - i32.const 3536 - i32.const 3584 - i32.const 19 - i32.const 48 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.load - local.set $5 - local.get $1 - local.tee $6 - i32.const 8 - local.tee $7 - local.get $6 - local.get $7 - i32.gt_u - select - local.get $2 - i32.shl - local.set $6 - local.get $3 - if - local.get $4 - i32.const 1 - i32.shl - local.tee $7 - i32.const 1073741820 - local.tee $8 - local.get $7 - local.get $8 - i32.lt_u - select - local.tee $8 - local.get $6 - local.tee $7 - local.get $8 - local.get $7 - i32.gt_u - select - local.set $6 - end - local.get $5 - local.get $6 - call $~lib/rt/itcms/__renew - local.set $8 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $8 - local.get $5 - i32.ne - if - local.get $0 - local.get $8 - i32.store - local.get $0 - local.get $8 - i32.store offset=4 - local.get $0 - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - end - local.get $0 - local.get $6 - i32.store offset=8 - end - ) - (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - i32.const 1 - drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - ) - (func $~lib/array/Array<~lib/string/String>#__set (param $0 i32) (param $1 i32) (param $2 i32) - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 3760 - i32.const 3584 - i32.const 130 - i32.const 22 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - i32.const 1 - i32.add - call $~lib/array/Array<~lib/string/String>#set:length_ - end - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__uset - ) - (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) - local.get $0 - i32.load offset=12 - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - local.get $0 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=12 - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=16 - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=20 - ) - (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $1 - call $~lib/string/String#get:length - local.set $3 - local.get $3 - i32.eqz - if - i32.const 0 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $4 - local.get $4 - i32.eqz - if - i32.const -1 - return - end - local.get $2 - local.tee $5 - i32.const 0 - local.tee $6 - local.get $5 - local.get $6 - i32.gt_s - select - local.tee $6 - local.get $4 - local.tee $5 - local.get $6 - local.get $5 - i32.lt_s - select - local.set $7 - local.get $4 - local.get $3 - i32.sub - local.set $4 - loop $for-loop|0 - local.get $7 - local.get $4 - i32.le_s - local.set $6 - local.get $6 - if - local.get $0 - local.get $7 - local.get $1 - i32.const 0 - local.get $3 - call $~lib/util/string/compareImpl - i32.eqz - if - local.get $7 - return - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - i32.const -1 - ) - (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 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) - i32.const 1 - drop - block $~lib/util/hash/hashStr|inlined.0 (result i32) - local.get $0 - local.set $1 - local.get $1 - i32.const 0 - i32.eq - if - i32.const 0 - br $~lib/util/hash/hashStr|inlined.0 - end - local.get $1 - call $~lib/string/String#get:length - i32.const 1 - i32.shl - local.set $2 - local.get $2 - local.set $3 - local.get $1 - local.set $4 - local.get $3 - i32.const 16 - i32.ge_u - if - i32.const 0 - i32.const -1640531535 - i32.add - i32.const -2048144777 - i32.add - local.set $5 - i32.const 0 - i32.const -2048144777 - i32.add - local.set $6 - i32.const 0 - local.set $7 - i32.const 0 - i32.const -1640531535 - i32.sub - local.set $8 - local.get $3 - local.get $4 - i32.add - i32.const 16 - i32.sub - local.set $9 - loop $while-continue|0 - local.get $4 - local.get $9 - i32.le_u - local.set $10 - local.get $10 - if - local.get $5 - local.set $12 - local.get $4 - i32.load - local.set $11 - local.get $12 - local.get $11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $5 - local.get $6 - local.set $12 - local.get $4 - i32.load offset=4 - local.set $11 - local.get $12 - local.get $11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $6 - local.get $7 - local.set $12 - local.get $4 - i32.load offset=8 - local.set $11 - local.get $12 - local.get $11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $7 - local.get $8 - local.set $12 - local.get $4 - i32.load offset=12 - local.set $11 - local.get $12 - local.get $11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $8 - local.get $4 - i32.const 16 - i32.add - local.set $4 - br $while-continue|0 - end - end - local.get $2 - local.get $5 - i32.const 1 - i32.rotl - local.get $6 - i32.const 7 - i32.rotl - i32.add - local.get $7 - i32.const 12 - i32.rotl - i32.add - local.get $8 - i32.const 18 - i32.rotl - i32.add - i32.add - local.set $2 - else - local.get $2 - i32.const 0 - i32.const 374761393 - i32.add - i32.add - local.set $2 - end - local.get $1 - local.get $3 - i32.add - i32.const 4 - i32.sub - local.set $9 - loop $while-continue|1 - local.get $4 - local.get $9 - i32.le_u - local.set $8 - local.get $8 - if - local.get $2 - local.get $4 - i32.load - i32.const -1028477379 - i32.mul - i32.add - local.set $2 - local.get $2 - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $2 - local.get $4 - i32.const 4 - i32.add - local.set $4 - br $while-continue|1 - end - end - local.get $1 - local.get $3 - i32.add - local.set $9 - loop $while-continue|2 - local.get $4 - local.get $9 - i32.lt_u - local.set $8 - local.get $8 - if - local.get $2 - local.get $4 - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - local.set $2 - local.get $2 - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 - local.get $4 - i32.const 1 - i32.add - local.set $4 - br $while-continue|2 - end - end - local.get $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - local.set $2 - local.get $2 - i32.const -2048144777 - i32.mul - local.set $2 - local.get $2 - local.get $2 - i32.const 13 - i32.shr_u - i32.xor - local.set $2 - local.get $2 - i32.const -1028477379 - i32.mul - local.set $2 - local.get $2 - local.get $2 - i32.const 16 - i32.shr_u - i32.xor - local.set $2 - local.get $2 - end - return - ) - (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=8 - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 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 $13 i32) - (local $14 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.add - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store - local.get $2 - i32.const 8 - i32.mul - i32.const 3 - i32.div_s - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $5 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.set $6 - local.get $6 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $5 - local.set $8 - loop $while-continue|0 - local.get $6 - local.get $7 - i32.ne - local.set $9 - local.get $9 - if - local.get $6 - local.set $10 - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.load - local.tee $12 - i32.store offset=8 - local.get $11 - local.get $12 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key - local.get $11 - local.get $10 - i32.load offset=4 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value - local.get $12 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $1 - i32.and - local.set $13 - local.get $3 - local.get $13 - i32.const 4 - i32.mul - i32.add - local.set $14 - local.get $11 - local.get $14 - i32.load - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext - local.get $14 - local.get $8 - i32.store - local.get $8 - i32.const 12 - i32.add - local.set $8 - end - local.get $6 - i32.const 12 - i32.add - local.set $6 - br $while-continue|0 - end - end - local.get $0 - local.get $3 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets - local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask - local.get $0 - local.get $5 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries - local.get $0 - local.get $4 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity - local.get $0 - local.get $0 - i32.load offset=20 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#set:length (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.const 2 - i32.const 0 - call $~lib/array/ensureCapacity - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#set:length_ - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.set $2 - local.get $2 - i32.eqz - if - i32.const 4320 - i32.const 4384 - i32.const 105 - i32.const 17 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.load offset=4 - ) - (func $~lib/process/process.time (result i64) - (local $0 i32) - i32.const 1 - drop - i32.const 0 - i64.const 1000000 - global.get $~lib/bindings/wasi/tempbuf - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 65 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - i64.load - i64.const 1000000 - i64.div_u - return - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i64) - (local $10 i32) - (local $11 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $1 - i32.const 10000 - i32.div_u - local.set $4 - local.get $1 - i32.const 10000 - i32.rem_u - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 100 - i32.div_u - local.set $6 - local.get $5 - i32.const 100 - i32.rem_u - local.set $7 - i32.const 4684 - local.get $6 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $8 - i32.const 4684 - local.get $7 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $9 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $8 - local.get $9 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $1 - i32.const 100 - i32.div_u - local.set $3 - local.get $1 - i32.const 100 - i32.rem_u - local.set $10 - local.get $3 - local.set $1 - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 4684 - local.get $10 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - i32.const 4684 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store - else - local.get $2 - i32.const 1 - i32.sub - local.set $2 - i32.const 48 - local.get $1 - i32.add - local.set $11 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $11 - i32.store16 - end - ) - (func $~lib/util/number/decimalCount64High (param $0 i64) (result i32) - local.get $0 - i64.const 1000000000000000 - i64.lt_u - if - local.get $0 - i64.const 1000000000000 - i64.lt_u - if - i32.const 10 - local.get $0 - i64.const 100000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000 - i64.ge_u - i32.add - return - else - i32.const 13 - local.get $0 - i64.const 100000000000000 - i64.ge_u - i32.add - local.get $0 - i64.const 10000000000000 - i64.ge_u - i32.add - return - end - unreachable - else - local.get $0 - i64.const 100000000000000000 - i64.lt_u - if - i32.const 16 - local.get $0 - i64.const 10000000000000000 - i64.ge_u - i32.add - return - else - i32.const 18 - local.get $0 - i64.const -8446744073709551616 - i64.ge_u - i32.add - local.get $0 - i64.const 1000000000000000000 - i64.ge_u - i32.add - return - end - unreachable - end - unreachable - ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i64) - (local $13 i64) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u - local.set $3 - local.get $3 - if - local.get $1 - i64.const 100000000 - i64.div_u - local.set $4 - local.get $1 - local.get $4 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $5 - local.get $4 - local.set $1 - local.get $5 - i32.const 10000 - i32.div_u - local.set $6 - local.get $5 - i32.const 10000 - i32.rem_u - local.set $7 - local.get $6 - i32.const 100 - i32.div_u - local.set $8 - local.get $6 - i32.const 100 - i32.rem_u - local.set $9 - local.get $7 - i32.const 100 - i32.div_u - local.set $10 - local.get $7 - i32.const 100 - i32.rem_u - local.set $11 - i32.const 4684 - local.get $10 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 4684 - local.get $11 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 4684 - local.get $8 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $12 - i32.const 4684 - local.get $9 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $13 - local.get $2 - i32.const 4 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $12 - local.get $13 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - ) - (func $~lib/util/number/utoa_hex_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $2 - i32.const 2 - i32.ge_u - local.set $3 - local.get $3 - if - local.get $2 - i32.const 2 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 5104 - local.get $1 - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $1 - i64.const 8 - i64.shr_u - local.set $1 - br $while-continue|0 - end - end - local.get $2 - i32.const 1 - i32.and - if - local.get $0 - i32.const 5104 - local.get $1 - i32.wrap_i64 - i32.const 6 - i32.shl - i32.add - i32.load16_u - i32.store16 - end - ) - (func $~lib/util/number/ulog_base (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i64) - (local $4 i64) - (local $5 i32) - local.get $1 - local.set $2 - local.get $2 - i32.popcnt - i32.const 1 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 31 - local.get $1 - i32.clz - i32.sub - i32.div_u - i32.const 1 - i32.add - return - end - local.get $1 - i64.extend_i32_s - local.set $3 - local.get $3 - local.set $4 - i32.const 1 - local.set $5 - loop $while-continue|0 - local.get $0 - local.get $4 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $4 - i64.div_u - local.set $0 - local.get $4 - local.get $4 - i64.mul - local.set $4 - local.get $5 - i32.const 1 - i32.shl - local.set $5 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $0 - i64.const 1 - i64.ge_u - local.set $2 - local.get $2 - if - local.get $0 - local.get $3 - i64.div_u - local.set $0 - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $while-continue|1 - end - end - local.get $5 - i32.const 1 - i32.sub - ) - (func $~lib/util/number/utoa64_any_core (param $0 i32) (param $1 i64) (param $2 i32) (param $3 i32) - (local $4 i64) - (local $5 i64) - (local $6 i64) - local.get $3 - i64.extend_i32_s - local.set $4 - local.get $3 - local.get $3 - i32.const 1 - i32.sub - i32.and - i32.const 0 - i32.eq - if - local.get $3 - i32.ctz - i32.const 7 - i32.and - i64.extend_i32_s - local.set $5 - local.get $4 - i64.const 1 - i64.sub - local.set $6 - loop $do-loop|0 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 6160 - local.get $1 - local.get $6 - i64.and - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $1 - local.get $5 - i64.shr_u - local.set $1 - local.get $1 - i64.const 0 - i64.ne - br_if $do-loop|0 - end - else - loop $do-loop|1 - local.get $2 - i32.const 1 - i32.sub - local.set $2 - local.get $1 - local.get $4 - i64.div_u - local.set $6 - local.get $0 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.const 6160 - local.get $1 - local.get $6 - local.get $4 - i64.mul - i64.sub - i32.wrap_i64 - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $6 - local.set $1 - local.get $1 - i64.const 0 - i64.ne - br_if $do-loop|1 - end - end - ) - (func $~lib/number/I64#toString (param $0 i64) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/util/number/itoa64 - ) - (func $~lib/process/process.hrtime (result i64) - (local $0 i32) - i32.const 1 - drop - i32.const 1 - i64.const 0 - global.get $~lib/bindings/wasi/tempbuf - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 75 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - i64.load - return - ) - (func $~lib/number/U64#toString (param $0 i64) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/util/number/utoa64 - ) - (func $~lib/process/process.exit (param $0 i32) - i32.const 1 - drop - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - ) - (func $~lib/arraybuffer/ArrayBuffer#get:byteLength (param $0 i32) (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - ) - (func $~lib/process/ReadableStream#read (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - local.get $1 - call $~lib/arraybuffer/ArrayBuffer#get:byteLength - local.set $3 - local.get $2 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $2 - local.get $3 - i32.gt_u - end - if - i32.const 3760 - i32.const 3200 - i32.const 168 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - local.get $1 - local.get $2 - i32.add - i32.store - global.get $~lib/bindings/wasi/tempbuf - local.get $3 - local.get $2 - i32.sub - i32.store offset=4 - local.get $0 - global.get $~lib/bindings/wasi/tempbuf - i32.const 1 - global.get $~lib/bindings/wasi/tempbuf - i32.const 2 - i32.const 4 - i32.mul - i32.add - call $~lib/bindings/wasi_snapshot_preview1/fd_read - local.set $4 - local.get $4 - i32.const 65535 - i32.and - if - local.get $4 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 173 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - i32.load offset=8 - ) - (func $~lib/rt/__visit_globals (param $0 i32) - (local $1 i32) - global.get $~lib/process/process.arch - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/process/process.platform - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/process/process.argv - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $~lib/process/process.env - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/process/argv - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/process/env - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - global.get $std-wasi/process/envKeys - local.tee $1 - if - local.get $1 - local.get $0 - call $~lib/rt/itcms/__visit - end - i32.const 3760 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3536 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3952 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 4320 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 3328 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 112 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 5104 - local.get $0 - call $~lib/rt/itcms/__visit - i32.const 6160 - local.get $0 - call $~lib/rt/itcms/__visit - ) - (func $~lib/arraybuffer/ArrayBufferView~visit (param $0 i32) (param $1 i32) - (local $2 i32) - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - end - ) - (func $~lib/array/Array<~lib/string/String>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - i32.const 1 - drop - local.get $0 - i32.load offset=4 - local.set $2 - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $3 - loop $while-continue|0 - local.get $2 - local.get $3 - i32.lt_u - local.set $4 - local.get $4 - if - local.get $2 - i32.load - local.set $5 - local.get $5 - if - local.get $5 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $2 - i32.const 4 - i32.add - local.set $2 - br $while-continue|0 - end - end - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/array/Array<~lib/string/String>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__visit - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#__visit (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - i32.load - local.get $1 - call $~lib/rt/itcms/__visit - local.get $0 - i32.load offset=8 - local.set $2 - i32.const 1 - drop - local.get $2 - local.set $3 - local.get $3 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - loop $while-continue|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $5 - local.get $5 - if - local.get $3 - local.set $6 - local.get $6 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - i32.const 1 - drop - local.get $6 - i32.load - local.set $7 - i32.const 0 - drop - local.get $7 - local.get $1 - call $~lib/rt/itcms/__visit - i32.const 1 - drop - local.get $6 - i32.load offset=4 - local.set $7 - i32.const 0 - drop - local.get $7 - local.get $1 - call $~lib/rt/itcms/__visit - end - local.get $3 - i32.const 12 - i32.add - local.set $3 - br $while-continue|0 - end - end - local.get $2 - local.get $1 - call $~lib/rt/itcms/__visit - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>~visit (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#__visit - ) - (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) - block $invalid - block $~lib/map/Map<~lib/string/String,~lib/string/String> - block $~lib/array/Array<~lib/string/String> - block $~lib/arraybuffer/ArrayBufferView - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $~lib/arraybuffer/ArrayBufferView $~lib/array/Array<~lib/string/String> $~lib/map/Map<~lib/string/String,~lib/string/String> $invalid - end - return - end - return - end - local.get $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView~visit - return - end - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>~visit - return - end - local.get $0 - local.get $1 - call $~lib/map/Map<~lib/string/String,~lib/string/String>~visit - return - end - unreachable - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/process - ) - (func $~stack_check - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__data_end - i32.lt_s - if - i32.const 22784 - i32.const 22832 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/console/console.log (param $0 i32) - (local $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - drop - global.get $~lib/process/process.stdout - local.set $1 - local.get $1 - local.get $0 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $1 - i32.const 3392 - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $3 - loop $while-continue|0 - local.get $3 - local.set $4 - local.get $4 - if - local.get $3 - i32.load offset=8 - local.set $5 - local.get $5 - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $3 - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/string/String.__eq - else - i32.const 0 - end - if - local.get $3 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $5 - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $3 - br $while-continue|0 - end - end - i32.const 0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/process/lazyEnv (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 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) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - i32.const 1 - drop - global.get $~lib/bindings/wasi/tempbuf - global.get $~lib/bindings/wasi/tempbuf - i32.const 4 - i32.add - call $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 114 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - i32.load - local.set $1 - local.get $1 - i32.const 4 - i32.mul - local.set $2 - global.get $~lib/bindings/wasi/tempbuf - i32.load offset=4 - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 - local.get $4 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - local.get $5 - local.get $2 - i32.add - call $~lib/bindings/wasi_snapshot_preview1/environ_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 121 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#constructor - local.tee $6 - i32.store - i32.const 0 - local.set $7 - loop $for-loop|0 - local.get $7 - local.get $1 - i32.lt_u - local.set $8 - local.get $8 - if - local.get $5 - local.get $7 - i32.const 4 - i32.mul - i32.add - i32.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - local.get $9 - local.get $4 - i32.add - local.get $5 - i32.sub - i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $10 - i32.store offset=4 - local.get $10 - i32.const 4144 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - i32.const 0 - call $~lib/string/String#indexOf - local.set $11 - local.get $11 - i32.const -1 - i32.xor - if - local.get $6 - local.get $10 - i32.const 0 - local.get $11 - call $~lib/string/String#substring - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - local.get $10 - local.get $11 - i32.const 1 - i32.add - global.get $~lib/builtins/i32.MAX_VALUE - call $~lib/string/String#substring - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=12 - local.get $12 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set - drop - else - local.get $6 - local.get $10 - i32.const 4176 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=12 - local.get $12 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set - drop - end - local.get $7 - i32.const 1 - i32.add - local.set $7 - br $for-loop|0 - end - end - local.get $5 - call $~lib/rt/tlsf/__free - local.get $6 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#keys (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.load offset=8 - local.set $1 - local.get $0 - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $3 - i32.store - i32.const 0 - local.set $4 - i32.const 0 - local.set $5 - loop $for-loop|0 - local.get $5 - local.get $2 - i32.lt_s - local.set $6 - local.get $6 - if - local.get $1 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.set $7 - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $4 - local.tee $8 - i32.const 1 - i32.add - local.set $4 - local.get $8 - local.get $7 - i32.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=4 - local.get $9 - call $~lib/array/Array<~lib/string/String>#__uset - end - local.get $5 - i32.const 1 - i32.add - local.set $5 - br $for-loop|0 - end - end - local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#set:length - local.get $3 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) - (func $start:std-wasi/process - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 32 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - global.get $~lib/process/process.arch - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - i32.const 3456 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - global.get $~lib/process/process.platform - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - memory.size - i32.const 16 - i32.shl - global.get $~lib/memory/__heap_base - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 3680 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/pinSpace - i32.const 3712 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/toSpace - i32.const 3856 - call $~lib/rt/itcms/initLazy - global.set $~lib/rt/itcms/fromSpace - call $~lib/process/lazyArgv - global.set $~lib/process/process.argv - global.get $~lib/process/process.argv - global.set $std-wasi/process/argv - i32.const 3904 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - i32.const 0 - local.set $0 - global.get $std-wasi/process/argv - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/array/Array<~lib/string/String>#get:length - local.set $1 - loop $for-loop|0 - local.get $0 - local.get $1 - i32.lt_s - local.set $2 - local.get $2 - if - global.get $std-wasi/process/argv - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - call $~lib/process/lazyEnv - global.set $~lib/process/process.env - global.get $~lib/process/process.env - global.set $std-wasi/process/env - global.get $std-wasi/process/env - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#keys - global.set $std-wasi/process/envKeys - i32.const 4208 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - i32.const 0 - local.set $1 - global.get $std-wasi/process/envKeys - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/array/Array<~lib/string/String>#get:length - local.set $0 - loop $for-loop|1 - local.get $1 - local.get $0 - i32.lt_s - local.set $2 - local.get $2 - if - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/process/envKeys - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - local.get $1 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $3 - i32.store offset=8 - global.get $~lib/process/process.stdout - i32.const 4256 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/process/WritableStream#write<~lib/string/String> - local.get $3 - call $~lib/console/console.log - global.get $~lib/process/process.stdout - i32.const 4288 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $~lib/process/WritableStream#write<~lib/string/String> - global.get $std-wasi/process/env - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $3 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - i32.const 4432 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - call $~lib/process/process.time - i32.const 10 - call $~lib/number/I64#toString - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - i32.const 6256 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - call $~lib/process/process.hrtime - i32.const 10 - call $~lib/number/U64#toString - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - i32.const 6304 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - i32.const 42 - call $~lib/process/process.exit - global.get $~lib/process/process.stdin - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - call $~lib/process/ReadableStream#read - drop - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:buffer - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:dataStart - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:byteLength - local.get $0 - i32.const 0 - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $1 - i32.const 1073741820 - i32.const 2 - i32.shr_u - i32.gt_u - if - i32.const 3536 - i32.const 3584 - i32.const 70 - i32.const 60 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.tee $2 - i32.const 8 - local.tee $3 - local.get $2 - local.get $3 - i32.gt_u - select - i32.const 2 - i32.shl - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $0 - local.get $5 - call $~lib/array/Array<~lib/string/String>#set:buffer - local.get $0 - local.get $5 - call $~lib/array/Array<~lib/string/String>#set:dataStart - local.get $0 - local.get $4 - call $~lib/array/Array<~lib/string/String>#set:byteLength - local.get $0 - local.get $1 - call $~lib/array/Array<~lib/string/String>#set:length_ - local.get $0 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - ) - (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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 $13 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.set $3 - local.get $0 - local.get $1 - i32.add - local.set $4 - local.get $4 - local.get $3 - i32.ge_u - i32.eqz - if - i32.const 0 - i32.const 176 - i32.const 770 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - local.get $5 - local.set $6 - block $while-break|0 - loop $while-continue|0 - local.get $3 - local.get $4 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $3 - i32.load8_u - local.set $8 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $8 - i32.const 128 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i32.eqz - i32.and - if - br $while-break|0 - end - local.get $6 - local.get $8 - i32.store16 - else - local.get $4 - local.get $3 - i32.eq - if - br $while-break|0 - end - local.get $3 - i32.load8_u - i32.const 63 - i32.and - local.set $9 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $8 - i32.const 224 - i32.and - i32.const 192 - i32.eq - if - local.get $6 - local.get $8 - i32.const 31 - i32.and - i32.const 6 - i32.shl - local.get $9 - i32.or - i32.store16 - else - local.get $4 - local.get $3 - i32.eq - if - br $while-break|0 - end - local.get $3 - i32.load8_u - i32.const 63 - i32.and - local.set $10 - local.get $3 - i32.const 1 - i32.add - local.set $3 - local.get $8 - i32.const 240 - i32.and - i32.const 224 - i32.eq - if - local.get $8 - i32.const 15 - i32.and - i32.const 12 - i32.shl - local.get $9 - i32.const 6 - i32.shl - i32.or - local.get $10 - i32.or - local.set $8 - else - local.get $4 - local.get $3 - i32.eq - if - br $while-break|0 - end - local.get $8 - i32.const 7 - i32.and - i32.const 18 - i32.shl - local.get $9 - i32.const 12 - i32.shl - i32.or - local.get $10 - i32.const 6 - i32.shl - i32.or - local.get $3 - i32.load8_u - i32.const 63 - i32.and - i32.or - local.set $8 - local.get $3 - i32.const 1 - i32.add - local.set $3 - end - local.get $8 - i32.const 65536 - i32.lt_u - if - local.get $6 - local.get $8 - i32.store16 - else - local.get $8 - i32.const 65536 - i32.sub - local.set $8 - local.get $8 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.set $11 - local.get $8 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - local.set $12 - local.get $6 - local.get $11 - local.get $12 - i32.const 16 - i32.shl - i32.or - i32.store - local.get $6 - i32.const 2 - i32.add - local.set $6 - end - end - end - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $while-continue|0 - end - end - end - local.get $5 - local.get $6 - local.get $5 - i32.sub - call $~lib/rt/itcms/__renew - local.set $13 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $13 - ) - (func $~lib/process/lazyArgv (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 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) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 1 - drop - global.get $~lib/bindings/wasi/tempbuf - global.get $~lib/bindings/wasi/tempbuf - i32.const 4 - i32.add - call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 89 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/bindings/wasi/tempbuf - i32.load - local.set $1 - local.get $1 - i32.const 4 - i32.mul - local.set $2 - global.get $~lib/bindings/wasi/tempbuf - i32.load offset=4 - local.set $3 - local.get $2 - local.get $3 - i32.add - local.set $4 - local.get $4 - call $~lib/rt/tlsf/__alloc - local.set $5 - local.get $5 - local.get $5 - local.get $2 - i32.add - call $~lib/bindings/wasi_snapshot_preview1/args_get - local.set $0 - local.get $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 3200 - i32.const 96 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 0 - local.get $6 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $7 - i32.store - i32.const 0 - local.set $8 - loop $for-loop|0 - local.get $8 - local.get $6 - i32.lt_s - local.set $9 - local.get $9 - if - local.get $5 - local.get $8 - i32.const 4 - i32.mul - i32.add - i32.load - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $10 - local.get $10 - local.get $4 - i32.add - local.get $5 - i32.sub - i32.const 1 - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $11 - i32.store offset=4 - local.get $7 - local.get $8 - local.get $11 - call $~lib/array/Array<~lib/string/String>#__set - local.get $8 - i32.const 1 - i32.add - local.set $8 - br $for-loop|0 - end - end - local.get $5 - call $~lib/rt/tlsf/__free - local.get $7 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 3760 - i32.const 3584 - i32.const 114 - i32.const 42 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $2 - i32.store - i32.const 1 - drop - i32.const 0 - i32.eqz - drop - local.get $2 - i32.eqz - if - i32.const 3952 - i32.const 3584 - i32.const 118 - i32.const 40 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 3536 - i32.const 4080 - i32.const 52 - i32.const 43 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - i32.const 2 - global.get $~lib/shared/runtime/Runtime.Incremental - i32.ne - drop - local.get $2 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#constructor (param $0 i32) (result i32) - (local $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - local.get $0 - i32.const 0 - i32.const 4 - i32.const 4 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:buckets - local.get $0 - i32.const 4 - i32.const 1 - i32.sub - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:bucketsMask - local.get $0 - i32.const 0 - i32.const 4 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entries - local.get $0 - i32.const 4 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCapacity - local.get $0 - i32.const 0 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset - local.get $0 - i32.const 0 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount - local.get $0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 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) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - call $~lib/string/String#get:length - local.set $3 - local.get $1 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $6 - local.get $2 - local.tee $4 - i32.const 0 - local.tee $5 - local.get $4 - local.get $5 - i32.gt_s - select - local.tee $5 - local.get $3 - local.tee $4 - local.get $5 - local.get $4 - i32.lt_s - select - local.set $7 - local.get $6 - local.tee $4 - local.get $7 - local.tee $5 - local.get $4 - local.get $5 - i32.lt_s - select - i32.const 1 - i32.shl - local.set $8 - local.get $6 - local.tee $5 - local.get $7 - local.tee $4 - local.get $5 - local.get $4 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $9 - local.get $9 - local.get $8 - i32.sub - local.set $10 - local.get $10 - i32.eqz - if - i32.const 4176 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - local.get $8 - i32.eqz - if (result i32) - local.get $9 - local.get $3 - i32.const 1 - i32.shl - i32.eq - else - i32.const 0 - end - if - local.get $0 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - return - end - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $11 - i32.store - local.get $11 - local.get $0 - local.get $8 - i32.add - local.get $10 - memory.copy - local.get $11 - local.set $12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $12 - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - call $~lib/util/hash/HASH<~lib/string/String> - local.set $3 - local.get $0 - local.get $1 - local.get $3 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.set $4 - local.get $4 - if - local.get $4 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value - i32.const 1 - drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $~lib/map/Map<~lib/string/String,~lib/string/String>#rehash - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $5 - i32.store - local.get $5 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $6 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesOffset - local.get $6 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $4 - local.get $1 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:key - i32.const 1 - drop - local.get $0 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $4 - local.get $2 - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:value - i32.const 1 - drop - local.get $0 - local.get $2 - i32.const 1 - call $~lib/rt/itcms/__link - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set:entriesCount - local.get $0 - i32.load - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 4 - i32.mul - i32.add - local.set $6 - local.get $4 - local.get $6 - i32.load - call $~lib/map/MapEntry<~lib/string/String,~lib/string/String>#set:taggedNext - local.get $6 - local.get $4 - i32.store - end - local.get $0 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - ) - (func $~lib/util/number/itoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end - if - i32.const 4480 - i32.const 4608 - i32.const 431 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i64.const 0 - i64.ne - i32.eqz - if - i32.const 4672 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return - end - local.get $0 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.const 1 - i32.shl - local.set $2 - local.get $2 - if - i64.const 0 - local.get $0 - i64.sub - local.set $0 - end - local.get $1 - i32.const 10 - i32.eq - if - local.get $0 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u - if - local.get $0 - i32.wrap_i64 - local.set $4 - local.get $4 - call $~lib/util/number/decimalCount32 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $2 - i32.add - local.set $8 - local.get $4 - local.set $7 - local.get $5 - local.set $6 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $8 - local.get $7 - local.get $6 - call $~lib/util/number/utoa32_dec_lut - else - local.get $0 - call $~lib/util/number/decimalCount64High - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $2 - i32.add - local.set $7 - local.get $0 - local.set $9 - local.get $5 - local.set $6 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $9 - local.get $6 - call $~lib/util/number/utoa64_dec_lut - end - else - local.get $1 - i32.const 16 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $2 - i32.add - local.set $4 - local.get $0 - local.set $9 - local.get $5 - local.set $8 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $4 - local.get $9 - local.get $8 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - local.get $1 - call $~lib/util/number/ulog_base - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store - local.get $3 - local.get $2 - i32.add - local.get $0 - local.get $5 - local.get $1 - call $~lib/util/number/utoa64_any_core - end - end - local.get $2 - if - local.get $3 - i32.const 45 - i32.store16 - end - local.get $3 - local.set $10 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - ) - (func $~lib/util/number/utoa64 (param $0 i64) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i64) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 2 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 36 - i32.gt_s - end - if - i32.const 4480 - i32.const 4608 - i32.const 401 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i64.const 0 - i64.ne - i32.eqz - if - i32.const 4672 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - return - end - local.get $1 - i32.const 10 - i32.eq - if - local.get $0 - global.get $~lib/builtins/u32.MAX_VALUE - i64.extend_i32_u - i64.le_u - if - local.get $0 - i32.wrap_i64 - local.set $3 - local.get $3 - call $~lib/util/number/decimalCount32 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $7 - local.get $3 - local.set $6 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $7 - local.get $6 - local.get $5 - call $~lib/util/number/utoa32_dec_lut - else - local.get $0 - call $~lib/util/number/decimalCount64High - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $6 - local.get $0 - local.set $8 - local.get $4 - local.set $5 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $6 - local.get $8 - local.get $5 - call $~lib/util/number/utoa64_dec_lut - end - else - local.get $1 - i32.const 16 - i32.eq - if - i32.const 63 - local.get $0 - i64.clz - i32.wrap_i64 - i32.sub - i32.const 2 - i32.shr_s - i32.const 1 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $3 - local.get $0 - local.set $8 - local.get $4 - local.set $7 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $3 - local.get $8 - local.get $7 - call $~lib/util/number/utoa_hex_lut - else - local.get $0 - local.get $1 - call $~lib/util/number/ulog_base - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.get $0 - local.get $4 - local.get $1 - call $~lib/util/number/utoa64_any_core - end - end - local.get $2 - local.set $9 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $9 - ) -) diff --git a/tests/compiler/std-wasi/process.json b/tests/compiler/std-wasi/process.json deleted file mode 100644 index c7e46bd414..0000000000 --- a/tests/compiler/std-wasi/process.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "asc_flags": [ - "--exportStart", "_start" - ], - "asc_wasi": { - "args": [ - "firstArg", - "secondArg", - "thirdArg" - ], - "env": { - "FIRSTENV": "firstEnv", - "SECONDENV": "secondEnv", - "THIRDENV": "thirdEnv" - }, - "returnOnExit": true - } -} diff --git a/tests/compiler/std-wasi/process.release.wat b/tests/compiler/std-wasi/process.release.wat deleted file mode 100644 index 51011012f1..0000000000 --- a/tests/compiler/std-wasi/process.release.wat +++ /dev/null @@ -1,5610 +0,0 @@ -(module - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (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_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $none_=>_i32 (func (result i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_i64_i32_=>_i32 (func (param i32 i64 i32) (result i32))) - (type $i32_i64_i32_=>_none (func (param i32 i64 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))) - (import "wasi_snapshot_preview1" "args_sizes_get" (func $~lib/bindings/wasi_snapshot_preview1/args_sizes_get (param i32 i32) (result i32))) - (import "wasi_snapshot_preview1" "args_get" (func $~lib/bindings/wasi_snapshot_preview1/args_get (param i32 i32) (result i32))) - (import "wasi_snapshot_preview1" "environ_sizes_get" (func $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get (param i32 i32) (result i32))) - (import "wasi_snapshot_preview1" "environ_get" (func $~lib/bindings/wasi_snapshot_preview1/environ_get (param i32 i32) (result i32))) - (import "wasi_snapshot_preview1" "clock_time_get" (func $~lib/bindings/wasi_snapshot_preview1/clock_time_get (param i32 i64 i32) (result i32))) - (import "wasi_snapshot_preview1" "fd_read" (func $~lib/bindings/wasi_snapshot_preview1/fd_read (param i32 i32 i32 i32) (result i32))) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/total (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/threshold (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/state (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/visitCount (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/pinSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/iter (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/toSpace (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/white (mut i32) (i32.const 0)) - (global $~lib/rt/itcms/fromSpace (mut i32) (i32.const 0)) - (global $~lib/process/process.argv (mut i32) (i32.const 0)) - (global $std-wasi/process/argv (mut i32) (i32.const 0)) - (global $~lib/process/process.env (mut i32) (i32.const 0)) - (global $std-wasi/process/env (mut i32) (i32.const 0)) - (global $std-wasi/process/envKeys (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 23788)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 1036) ",") - (data (i32.const 1048) "\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00c\00h\00 \00=\00=") - (data (i32.const 1116) "<") - (data (i32.const 1128) "\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e") - (data (i32.const 1180) ",") - (data (i32.const 1192) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data (i32.const 1228) ",") - (data (i32.const 1240) "\01\00\00\00\0e\00\00\00S\00U\00C\00C\00E\00S\00S") - (data (i32.const 1276) "\1c") - (data (i32.const 1288) "\01\00\00\00\0c\00\00\00T\00O\00O\00B\00I\00G") - (data (i32.const 1308) "\1c") - (data (i32.const 1320) "\01\00\00\00\n\00\00\00A\00C\00C\00E\00S") - (data (i32.const 1340) ",") - (data (i32.const 1352) "\01\00\00\00\12\00\00\00A\00D\00D\00R\00I\00N\00U\00S\00E") - (data (i32.const 1388) ",") - (data (i32.const 1400) "\01\00\00\00\18\00\00\00A\00D\00D\00R\00N\00O\00T\00A\00V\00A\00I\00L") - (data (i32.const 1436) ",") - (data (i32.const 1448) "\01\00\00\00\16\00\00\00A\00F\00N\00O\00S\00U\00P\00P\00O\00R\00T") - (data (i32.const 1484) "\1c") - (data (i32.const 1496) "\01\00\00\00\n\00\00\00A\00G\00A\00I\00N") - (data (i32.const 1516) ",") - (data (i32.const 1528) "\01\00\00\00\0e\00\00\00A\00L\00R\00E\00A\00D\00Y") - (data (i32.const 1564) "\1c") - (data (i32.const 1576) "\01\00\00\00\08\00\00\00B\00A\00D\00F") - (data (i32.const 1596) "\1c") - (data (i32.const 1608) "\01\00\00\00\0c\00\00\00B\00A\00D\00M\00S\00G") - (data (i32.const 1628) "\1c") - (data (i32.const 1640) "\01\00\00\00\08\00\00\00B\00U\00S\00Y") - (data (i32.const 1660) ",") - (data (i32.const 1672) "\01\00\00\00\10\00\00\00C\00A\00N\00C\00E\00L\00E\00D") - (data (i32.const 1708) "\1c") - (data (i32.const 1720) "\01\00\00\00\n\00\00\00C\00H\00I\00L\00D") - (data (i32.const 1740) ",") - (data (i32.const 1752) "\01\00\00\00\16\00\00\00C\00O\00N\00N\00A\00B\00O\00R\00T\00E\00D") - (data (i32.const 1788) ",") - (data (i32.const 1800) "\01\00\00\00\16\00\00\00C\00O\00N\00N\00R\00E\00F\00U\00S\00E\00D") - (data (i32.const 1836) ",") - (data (i32.const 1848) "\01\00\00\00\12\00\00\00C\00O\00N\00N\00R\00E\00S\00E\00T") - (data (i32.const 1884) "\1c") - (data (i32.const 1896) "\01\00\00\00\0c\00\00\00D\00E\00A\00D\00L\00K") - (data (i32.const 1916) ",") - (data (i32.const 1928) "\01\00\00\00\16\00\00\00D\00E\00S\00T\00A\00D\00D\00R\00R\00E\00Q") - (data (i32.const 1964) "\1c") - (data (i32.const 1976) "\01\00\00\00\06\00\00\00D\00O\00M") - (data (i32.const 1996) "\1c") - (data (i32.const 2008) "\01\00\00\00\n\00\00\00D\00Q\00U\00O\00T") - (data (i32.const 2028) "\1c") - (data (i32.const 2040) "\01\00\00\00\n\00\00\00E\00X\00I\00S\00T") - (data (i32.const 2060) "\1c") - (data (i32.const 2072) "\01\00\00\00\n\00\00\00F\00A\00U\00L\00T") - (data (i32.const 2092) "\1c") - (data (i32.const 2104) "\01\00\00\00\08\00\00\00F\00B\00I\00G") - (data (i32.const 2124) ",") - (data (i32.const 2136) "\01\00\00\00\16\00\00\00H\00O\00S\00T\00U\00N\00R\00E\00A\00C\00H") - (data (i32.const 2172) "\1c") - (data (i32.const 2184) "\01\00\00\00\08\00\00\00I\00D\00R\00M") - (data (i32.const 2204) "\1c") - (data (i32.const 2216) "\01\00\00\00\n\00\00\00I\00L\00S\00E\00Q") - (data (i32.const 2236) ",") - (data (i32.const 2248) "\01\00\00\00\14\00\00\00I\00N\00P\00R\00O\00G\00R\00E\00S\00S") - (data (i32.const 2284) "\1c") - (data (i32.const 2296) "\01\00\00\00\08\00\00\00I\00N\00T\00R") - (data (i32.const 2316) "\1c") - (data (i32.const 2328) "\01\00\00\00\n\00\00\00I\00N\00V\00A\00L") - (data (i32.const 2348) "\1c") - (data (i32.const 2360) "\01\00\00\00\04\00\00\00I\00O") - (data (i32.const 2380) "\1c") - (data (i32.const 2392) "\01\00\00\00\0c\00\00\00I\00S\00C\00O\00N\00N") - (data (i32.const 2412) "\1c") - (data (i32.const 2424) "\01\00\00\00\n\00\00\00I\00S\00D\00I\00R") - (data (i32.const 2444) "\1c") - (data (i32.const 2456) "\01\00\00\00\08\00\00\00L\00O\00O\00P") - (data (i32.const 2476) "\1c") - (data (i32.const 2488) "\01\00\00\00\n\00\00\00M\00F\00I\00L\00E") - (data (i32.const 2508) "\1c") - (data (i32.const 2520) "\01\00\00\00\n\00\00\00M\00L\00I\00N\00K") - (data (i32.const 2540) ",") - (data (i32.const 2552) "\01\00\00\00\0e\00\00\00M\00S\00G\00S\00I\00Z\00E") - (data (i32.const 2588) ",") - (data (i32.const 2600) "\01\00\00\00\10\00\00\00M\00U\00L\00T\00I\00H\00O\00P") - (data (i32.const 2636) ",") - (data (i32.const 2648) "\01\00\00\00\16\00\00\00N\00A\00M\00E\00T\00O\00O\00L\00O\00N\00G") - (data (i32.const 2684) ",") - (data (i32.const 2696) "\01\00\00\00\0e\00\00\00N\00E\00T\00D\00O\00W\00N") - (data (i32.const 2732) ",") - (data (i32.const 2744) "\01\00\00\00\10\00\00\00N\00E\00T\00R\00E\00S\00E\00T") - (data (i32.const 2780) ",") - (data (i32.const 2792) "\01\00\00\00\14\00\00\00N\00E\00T\00U\00N\00R\00E\00A\00C\00H") - (data (i32.const 2828) "\1c") - (data (i32.const 2840) "\01\00\00\00\n\00\00\00N\00F\00I\00L\00E") - (data (i32.const 2860) "\1c") - (data (i32.const 2872) "\01\00\00\00\0c\00\00\00N\00O\00B\00U\00F\00S") - (data (i32.const 2892) "\1c") - (data (i32.const 2904) "\01\00\00\00\n\00\00\00N\00O\00D\00E\00V") - (data (i32.const 2924) "\1c") - (data (i32.const 2936) "\01\00\00\00\n\00\00\00N\00O\00E\00N\00T") - (data (i32.const 2956) "\1c") - (data (i32.const 2968) "\01\00\00\00\0c\00\00\00N\00O\00E\00X\00E\00C") - (data (i32.const 2988) "\1c") - (data (i32.const 3000) "\01\00\00\00\n\00\00\00N\00O\00L\00C\00K") - (data (i32.const 3020) "\1c") - (data (i32.const 3032) "\01\00\00\00\0c\00\00\00N\00O\00L\00I\00N\00K") - (data (i32.const 3052) "\1c") - (data (i32.const 3064) "\01\00\00\00\n\00\00\00N\00O\00M\00E\00M") - (data (i32.const 3084) "\1c") - (data (i32.const 3096) "\01\00\00\00\n\00\00\00N\00O\00M\00S\00G") - (data (i32.const 3116) ",") - (data (i32.const 3128) "\01\00\00\00\14\00\00\00N\00O\00P\00R\00O\00T\00O\00O\00P\00T") - (data (i32.const 3164) "\1c") - (data (i32.const 3176) "\01\00\00\00\n\00\00\00N\00O\00S\00P\00C") - (data (i32.const 3196) "\1c") - (data (i32.const 3208) "\01\00\00\00\n\00\00\00N\00O\00S\00Y\00S") - (data (i32.const 3228) ",") - (data (i32.const 3240) "\01\00\00\00\0e\00\00\00N\00O\00T\00C\00O\00N\00N") - (data (i32.const 3276) "\1c") - (data (i32.const 3288) "\01\00\00\00\0c\00\00\00N\00O\00T\00D\00I\00R") - (data (i32.const 3308) ",") - (data (i32.const 3320) "\01\00\00\00\10\00\00\00N\00O\00T\00E\00M\00P\00T\00Y") - (data (i32.const 3356) ",") - (data (i32.const 3368) "\01\00\00\00\1c\00\00\00N\00O\00T\00R\00E\00C\00O\00V\00E\00R\00A\00B\00L\00E") - (data (i32.const 3404) ",") - (data (i32.const 3416) "\01\00\00\00\0e\00\00\00N\00O\00T\00S\00O\00C\00K") - (data (i32.const 3452) "\1c") - (data (i32.const 3464) "\01\00\00\00\0c\00\00\00N\00O\00T\00S\00U\00P") - (data (i32.const 3484) "\1c") - (data (i32.const 3496) "\01\00\00\00\n\00\00\00N\00O\00T\00T\00Y") - (data (i32.const 3516) "\1c") - (data (i32.const 3528) "\01\00\00\00\08\00\00\00N\00X\00I\00O") - (data (i32.const 3548) ",") - (data (i32.const 3560) "\01\00\00\00\10\00\00\00O\00V\00E\00R\00F\00L\00O\00W") - (data (i32.const 3596) ",") - (data (i32.const 3608) "\01\00\00\00\12\00\00\00O\00W\00N\00E\00R\00D\00E\00A\00D") - (data (i32.const 3644) "\1c") - (data (i32.const 3656) "\01\00\00\00\08\00\00\00P\00E\00R\00M") - (data (i32.const 3676) "\1c") - (data (i32.const 3688) "\01\00\00\00\08\00\00\00P\00I\00P\00E") - (data (i32.const 3708) "\1c") - (data (i32.const 3720) "\01\00\00\00\n\00\00\00P\00R\00O\00T\00O") - (data (i32.const 3740) ",") - (data (i32.const 3752) "\01\00\00\00\1c\00\00\00P\00R\00O\00T\00O\00N\00O\00S\00U\00P\00P\00O\00R\00T") - (data (i32.const 3788) ",") - (data (i32.const 3800) "\01\00\00\00\12\00\00\00P\00R\00O\00T\00O\00T\00Y\00P\00E") - (data (i32.const 3836) "\1c") - (data (i32.const 3848) "\01\00\00\00\n\00\00\00R\00A\00N\00G\00E") - (data (i32.const 3868) "\1c") - (data (i32.const 3880) "\01\00\00\00\08\00\00\00R\00O\00F\00S") - (data (i32.const 3900) "\1c") - (data (i32.const 3912) "\01\00\00\00\n\00\00\00S\00P\00I\00P\00E") - (data (i32.const 3932) "\1c") - (data (i32.const 3944) "\01\00\00\00\08\00\00\00S\00R\00C\00H") - (data (i32.const 3964) "\1c") - (data (i32.const 3976) "\01\00\00\00\n\00\00\00S\00T\00A\00L\00E") - (data (i32.const 3996) ",") - (data (i32.const 4008) "\01\00\00\00\10\00\00\00T\00I\00M\00E\00D\00O\00U\00T") - (data (i32.const 4044) "\1c") - (data (i32.const 4056) "\01\00\00\00\0c\00\00\00T\00X\00T\00B\00S\00Y") - (data (i32.const 4076) "\1c") - (data (i32.const 4088) "\01\00\00\00\08\00\00\00X\00D\00E\00V") - (data (i32.const 4108) ",") - (data (i32.const 4120) "\01\00\00\00\14\00\00\00N\00O\00T\00C\00A\00P\00A\00B\00L\00E") - (data (i32.const 4156) ",") - (data (i32.const 4168) "\01\00\00\00\0e\00\00\00U\00N\00K\00N\00O\00W\00N") - (data (i32.const 4204) "<") - (data (i32.const 4216) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00p\00r\00o\00c\00e\00s\00s\00.\00t\00s") - (data (i32.const 4268) "<") - (data (i32.const 4280) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data (i32.const 4332) "<") - (data (i32.const 4344) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 4396) "\1c") - (data (i32.const 4408) "\01\00\00\00\02\00\00\00\n") - (data (i32.const 4428) "\1c") - (data (i32.const 4440) "\01\00\00\00\0c\00\00\00w\00a\00s\00m\003\002") - (data (i32.const 4460) ",") - (data (i32.const 4472) "\01\00\00\00\1c\00\00\00=\00=\00 \00p\00l\00a\00t\00f\00o\00r\00m\00 \00=\00=") - (data (i32.const 4508) "\1c") - (data (i32.const 4520) "\01\00\00\00\08\00\00\00w\00a\00s\00m") - (data (i32.const 4540) ",") - (data (i32.const 4552) "\01\00\00\00\1c\00\00\00I\00n\00v\00a\00l\00i\00d\00 \00l\00e\00n\00g\00t\00h") - (data (i32.const 4588) ",") - (data (i32.const 4600) "\01\00\00\00\1a\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00.\00t\00s") - (data (i32.const 4636) "<") - (data (i32.const 4648) "\01\00\00\00 \00\00\00~\00l\00i\00b\00/\00r\00t\00/\00i\00t\00c\00m\00s\00.\00t\00s") - (data (i32.const 4764) "<") - (data (i32.const 4776) "\01\00\00\00$\00\00\00I\00n\00d\00e\00x\00 \00o\00u\00t\00 \00o\00f\00 \00r\00a\00n\00g\00e") - (data (i32.const 4828) ",") - (data (i32.const 4840) "\01\00\00\00\14\00\00\00~\00l\00i\00b\00/\00r\00t\00.\00t\00s") - (data (i32.const 4908) ",") - (data (i32.const 4920) "\01\00\00\00\14\00\00\00=\00=\00 \00a\00r\00g\00v\00 \00=\00=") - (data (i32.const 4956) "|") - (data (i32.const 4968) "\01\00\00\00^\00\00\00E\00l\00e\00m\00e\00n\00t\00 \00t\00y\00p\00e\00 \00m\00u\00s\00t\00 \00b\00e\00 \00n\00u\00l\00l\00a\00b\00l\00e\00 \00i\00f\00 \00a\00r\00r\00a\00y\00 \00i\00s\00 \00h\00o\00l\00e\00y") - (data (i32.const 5084) "<") - (data (i32.const 5096) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00a\00r\00r\00a\00y\00b\00u\00f\00f\00e\00r\00.\00t\00s") - (data (i32.const 5148) "\1c") - (data (i32.const 5160) "\01\00\00\00\02\00\00\00=") - (data (i32.const 5180) "\1c") - (data (i32.const 5192) "\01") - (data (i32.const 5212) ",") - (data (i32.const 5224) "\01\00\00\00\12\00\00\00=\00=\00 \00e\00n\00v\00 \00=\00=") - (data (i32.const 5260) "\1c") - (data (i32.const 5272) "\01\00\00\00\n\00\00\00k\00e\00y\00:\00 ") - (data (i32.const 5292) "\1c") - (data (i32.const 5304) "\01\00\00\00\n\00\00\00v\00a\00l\00:\00 ") - (data (i32.const 5324) "<") - (data (i32.const 5336) "\01\00\00\00$\00\00\00K\00e\00y\00 \00d\00o\00e\00s\00 \00n\00o\00t\00 \00e\00x\00i\00s\00t") - (data (i32.const 5388) ",") - (data (i32.const 5400) "\01\00\00\00\16\00\00\00~\00l\00i\00b\00/\00m\00a\00p\00.\00t\00s") - (data (i32.const 5436) ",") - (data (i32.const 5448) "\01\00\00\00\14\00\00\00=\00=\00 \00t\00i\00m\00e\00 \00=\00=") - (data (i32.const 5484) "|") - (data (i32.const 5496) "\01\00\00\00d\00\00\00t\00o\00S\00t\00r\00i\00n\00g\00(\00)\00 \00r\00a\00d\00i\00x\00 \00a\00r\00g\00u\00m\00e\00n\00t\00 \00m\00u\00s\00t\00 \00b\00e\00 \00b\00e\00t\00w\00e\00e\00n\00 \002\00 \00a\00n\00d\00 \003\006") - (data (i32.const 5612) "<") - (data (i32.const 5624) "\01\00\00\00&\00\00\00~\00l\00i\00b\00/\00u\00t\00i\00l\00/\00n\00u\00m\00b\00e\00r\00.\00t\00s") - (data (i32.const 5676) "\1c") - (data (i32.const 5688) "\01\00\00\00\02\00\00\000") - (data (i32.const 5708) "0\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009") - (data (i32.const 6108) "\1c\04") - (data (i32.const 6120) "\01\00\00\00\00\04\00\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\008\000\009\000\00a\000\00b\000\00c\000\00d\000\00e\000\00f\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\008\001\009\001\00a\001\00b\001\00c\001\00d\001\00e\001\00f\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\008\002\009\002\00a\002\00b\002\00c\002\00d\002\00e\002\00f\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\008\003\009\003\00a\003\00b\003\00c\003\00d\003\00e\003\00f\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\008\004\009\004\00a\004\00b\004\00c\004\00d\004\00e\004\00f\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\008\005\009\005\00a\005\00b\005\00c\005\00d\005\00e\005\00f\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\008\006\009\006\00a\006\00b\006\00c\006\00d\006\00e\006\00f\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\008\007\009\007\00a\007\00b\007\00c\007\00d\007\00e\007\00f\008\000\008\001\008\002\008\003\008\004\008\005\008\006\008\007\008\008\008\009\008\00a\008\00b\008\00c\008\00d\008\00e\008\00f\009\000\009\001\009\002\009\003\009\004\009\005\009\006\009\007\009\008\009\009\009\00a\009\00b\009\00c\009\00d\009\00e\009\00f\00a\000\00a\001\00a\002\00a\003\00a\004\00a\005\00a\006\00a\007\00a\008\00a\009\00a\00a\00a\00b\00a\00c\00a\00d\00a\00e\00a\00f\00b\000\00b\001\00b\002\00b\003\00b\004\00b\005\00b\006\00b\007\00b\008\00b\009\00b\00a\00b\00b\00b\00c\00b\00d\00b\00e\00b\00f\00c\000\00c\001\00c\002\00c\003\00c\004\00c\005\00c\006\00c\007\00c\008\00c\009\00c\00a\00c\00b\00c\00c\00c\00d\00c\00e\00c\00f\00d\000\00d\001\00d\002\00d\003\00d\004\00d\005\00d\006\00d\007\00d\008\00d\009\00d\00a\00d\00b\00d\00c\00d\00d\00d\00e\00d\00f\00e\000\00e\001\00e\002\00e\003\00e\004\00e\005\00e\006\00e\007\00e\008\00e\009\00e\00a\00e\00b\00e\00c\00e\00d\00e\00e\00e\00f\00f\000\00f\001\00f\002\00f\003\00f\004\00f\005\00f\006\00f\007\00f\008\00f\009\00f\00a\00f\00b\00f\00c\00f\00d\00f\00e\00f\00f") - (data (i32.const 7164) "\\") - (data (i32.const 7176) "\01\00\00\00H\00\00\000\001\002\003\004\005\006\007\008\009\00a\00b\00c\00d\00e\00f\00g\00h\00i\00j\00k\00l\00m\00n\00o\00p\00q\00r\00s\00t\00u\00v\00w\00x\00y\00z") - (data (i32.const 7260) ",") - (data (i32.const 7272) "\01\00\00\00\18\00\00\00=\00=\00 \00h\00r\00t\00i\00m\00e\00 \00=\00=") - (data (i32.const 7308) ",") - (data (i32.const 7320) "\01\00\00\00\14\00\00\00=\00=\00 \00e\00x\00i\00t\00 \00=\00=") - (data (i32.const 7360) "\05\00\00\00 \00\00\00\00\00\00\00 ") - (data (i32.const 7388) "\02A\00\00\00\00\00\00\10A\82") - (export "memory" (memory $0)) - (export "_start" (func $~start)) - (func $~lib/util/string/compareImpl (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) - (local $4 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.tee $1 - i32.const 7 - i32.and - local.get $2 - i32.const 7 - i32.and - i32.or - i32.eqz - local.get $3 - i32.const 4 - i32.ge_u - i32.and - if - loop $do-loop|0 - local.get $1 - i64.load - local.get $2 - i64.load - i64.eq - if - local.get $1 - i32.const 8 - i32.add - local.set $1 - local.get $2 - i32.const 8 - i32.add - local.set $2 - local.get $3 - i32.const 4 - i32.sub - local.tee $3 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 - local.get $3 - local.tee $0 - i32.const 1 - i32.sub - local.set $3 - local.get $0 - if - local.get $1 - i32.load16_u - local.tee $0 - local.get $2 - i32.load16_u - local.tee $4 - i32.ne - if - local.get $0 - local.get $4 - i32.sub - return - end - local.get $1 - i32.const 2 - i32.add - local.set $1 - local.get $2 - i32.const 2 - i32.add - local.set $2 - br $while-continue|1 - end - end - i32.const 0 - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $1 - i32.const 0 - local.get $0 - select - i32.eqz - if - i32.const 0 - return - end - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $2 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.ne - if - i32.const 0 - return - end - local.get $0 - i32.const 0 - local.get $1 - local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - ) - (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - block $2of2 - block $outOfRange - global.get $~argumentsLength - i32.const 3 - i32.sub - br_table $2of2 $2of2 $2of2 $outOfRange - end - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $3 - local.get $2 - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $3 - i32.lt_u - if - local.get $0 - i32.load16_u - local.tee $4 - i32.const 128 - i32.lt_u - if (result i32) - local.get $1 - local.get $4 - i32.store8 - local.get $1 - i32.const 1 - i32.add - else - local.get $4 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $1 - local.get $4 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.get $4 - 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 $4 - i32.const 56320 - i32.lt_u - local.get $0 - i32.const 2 - i32.add - local.get $3 - i32.lt_u - i32.and - local.get $4 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - i32.and - 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 $4 - 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 $4 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 24 - i32.shl - local.get $4 - 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 $4 - 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 $4 - 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 $4 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.get $4 - 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 $4 - 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/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - i32.const 0 - i32.const 12 - i32.store - i32.const 12 - i64.const 9071471065260641 - i64.store - local.get $0 - i32.const 0 - call $~lib/string/String.__eq - if (result i32) - i32.const 19 - else - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - i32.const 3 - global.set $~argumentsLength - local.get $0 - local.get $4 - i32.const 19 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - i32.const 19 - i32.add - end - local.tee $0 - i32.const 544106784 - i32.store - local.get $0 - i32.const 4 - i32.add - local.set $0 - local.get $1 - i32.const 0 - call $~lib/string/String.__eq - i32.eqz - if - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.set $4 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $4 - local.get $0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $0 - i32.add - local.set $0 - end - local.get $0 - i32.const 40 - i32.store8 - local.get $2 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $0 - loop $do-loop|0 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.get $2 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $2 - i32.const 10 - i32.div_u - local.tee $2 - br_if $do-loop|0 - end - local.get $0 - local.get $1 - i32.add - local.tee $0 - i32.const 58 - i32.store8 - local.get $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $1 - local.get $0 - i32.const 1 - i32.add - i32.add - local.set $0 - loop $do-loop|1 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.get $3 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $3 - i32.const 10 - i32.div_u - local.tee $3 - br_if $do-loop|1 - end - local.get $0 - local.get $1 - i32.add - local.tee $0 - i32.const 2601 - i32.store16 - i32.const 4 - local.get $0 - i32.const 10 - i32.sub - 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/bindings/wasi_snapshot_preview1/errnoToString (param $0 i32) (result i32) - block $break|0 - block $case76|0 - block $case75|0 - block $case74|0 - block $case73|0 - block $case72|0 - block $case71|0 - block $case70|0 - block $case69|0 - block $case68|0 - block $case67|0 - block $case66|0 - block $case65|0 - block $case64|0 - block $case63|0 - block $case62|0 - block $case61|0 - block $case60|0 - block $case59|0 - block $case58|0 - block $case57|0 - block $case56|0 - block $case55|0 - block $case54|0 - block $case53|0 - block $case52|0 - block $case51|0 - block $case50|0 - block $case49|0 - block $case48|0 - block $case47|0 - block $case46|0 - block $case45|0 - block $case44|0 - block $case43|0 - block $case42|0 - block $case41|0 - block $case40|0 - block $case39|0 - block $case38|0 - block $case37|0 - block $case36|0 - block $case35|0 - block $case34|0 - block $case33|0 - block $case32|0 - block $case31|0 - block $case30|0 - block $case29|0 - block $case28|0 - block $case27|0 - block $case26|0 - block $case25|0 - block $case24|0 - block $case23|0 - block $case22|0 - block $case21|0 - block $case20|0 - block $case19|0 - block $case18|0 - block $case17|0 - block $case16|0 - block $case15|0 - block $case14|0 - block $case13|0 - block $case12|0 - block $case11|0 - block $case10|0 - block $case9|0 - block $case8|0 - block $case7|0 - block $case6|0 - block $case5|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 65535 - i32.and - br_table $case0|0 $case1|0 $case2|0 $case3|0 $case4|0 $case5|0 $case6|0 $case7|0 $case8|0 $case9|0 $case10|0 $case11|0 $case12|0 $case13|0 $case14|0 $case15|0 $case16|0 $case17|0 $case18|0 $case19|0 $case20|0 $case21|0 $case22|0 $case23|0 $case24|0 $case25|0 $case26|0 $case27|0 $case28|0 $case29|0 $case30|0 $case31|0 $case32|0 $case33|0 $case34|0 $case35|0 $case36|0 $case37|0 $case38|0 $case39|0 $case40|0 $case41|0 $case42|0 $case43|0 $case44|0 $case45|0 $case46|0 $case47|0 $case48|0 $case49|0 $case50|0 $case51|0 $case52|0 $case53|0 $case54|0 $case55|0 $case56|0 $case57|0 $case58|0 $case59|0 $case60|0 $case61|0 $case62|0 $case63|0 $case64|0 $case65|0 $case66|0 $case67|0 $case68|0 $case69|0 $case70|0 $case71|0 $case72|0 $case73|0 $case74|0 $case75|0 $case76|0 $break|0 - end - i32.const 1248 - return - end - i32.const 1296 - return - end - i32.const 1328 - return - end - i32.const 1360 - return - end - i32.const 1408 - return - end - i32.const 1456 - return - end - i32.const 1504 - return - end - i32.const 1536 - return - end - i32.const 1584 - return - end - i32.const 1616 - return - end - i32.const 1648 - return - end - i32.const 1680 - return - end - i32.const 1728 - return - end - i32.const 1760 - return - end - i32.const 1808 - return - end - i32.const 1856 - return - end - i32.const 1904 - return - end - i32.const 1936 - return - end - i32.const 1984 - return - end - i32.const 2016 - return - end - i32.const 2048 - return - end - i32.const 2080 - return - end - i32.const 2112 - return - end - i32.const 2144 - return - end - i32.const 2192 - return - end - i32.const 2224 - return - end - i32.const 2256 - return - end - i32.const 2304 - return - end - i32.const 2336 - return - end - i32.const 2368 - return - end - i32.const 2400 - return - end - i32.const 2432 - return - end - i32.const 2464 - return - end - i32.const 2496 - return - end - i32.const 2528 - return - end - i32.const 2560 - return - end - i32.const 2608 - return - end - i32.const 2656 - return - end - i32.const 2704 - return - end - i32.const 2752 - return - end - i32.const 2800 - return - end - i32.const 2848 - return - end - i32.const 2880 - return - end - i32.const 2912 - return - end - i32.const 2944 - return - end - i32.const 2976 - return - end - i32.const 3008 - return - end - i32.const 3040 - return - end - i32.const 3072 - return - end - i32.const 3104 - return - end - i32.const 3136 - return - end - i32.const 3184 - return - end - i32.const 3216 - return - end - i32.const 3248 - return - end - i32.const 3296 - return - end - i32.const 3328 - return - end - i32.const 3376 - return - end - i32.const 3424 - return - end - i32.const 3472 - return - end - i32.const 3504 - return - end - i32.const 3536 - return - end - i32.const 3568 - return - end - i32.const 3616 - return - end - i32.const 3664 - return - end - i32.const 3696 - return - end - i32.const 3728 - return - end - i32.const 3760 - return - end - i32.const 3808 - return - end - i32.const 3856 - return - end - i32.const 3888 - return - end - i32.const 3920 - return - end - i32.const 3952 - return - end - i32.const 3984 - return - end - i32.const 4016 - return - end - i32.const 4064 - return - end - i32.const 4096 - return - end - i32.const 4128 - return - end - i32.const 4176 - ) - (func $~lib/rt/tlsf/removeBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - local.get $1 - i32.load - local.tee $2 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 4288 - i32.const 268 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 4288 - i32.const 270 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - local.get $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $4 - i32.const 7 - i32.sub - local.set $3 - local.get $2 - local.get $4 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $3 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 4288 - i32.const 284 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load offset=8 - local.set $5 - local.get $1 - i32.load offset=4 - local.tee $4 - if - local.get $4 - local.get $5 - i32.store offset=8 - end - local.get $5 - if - local.get $5 - local.get $4 - i32.store offset=4 - end - local.get $1 - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - i32.eq - if - local.get $0 - local.get $3 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $5 - i32.store offset=96 - local.get $5 - i32.eqz - if - local.get $0 - local.get $3 - i32.const 2 - i32.shl - i32.add - local.tee $1 - i32.load offset=4 - i32.const -2 - local.get $2 - i32.rotl - i32.and - local.set $2 - local.get $1 - local.get $2 - i32.store offset=4 - local.get $2 - i32.eqz - if - local.get $0 - local.get $0 - i32.load - i32.const -2 - local.get $3 - i32.rotl - i32.and - i32.store - end - end - end - ) - (func $~lib/rt/tlsf/insertBlock (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 4288 - i32.const 201 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.load - local.tee $3 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 4288 - i32.const 203 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.tee $2 - i32.const 1 - i32.and - if - local.get $0 - local.get $4 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $3 - i32.const 4 - i32.add - local.get $2 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $4 - i32.load - local.set $2 - end - local.get $3 - i32.const 2 - i32.and - if - local.get $1 - i32.const 4 - i32.sub - i32.load - local.tee $1 - i32.load - local.tee $6 - i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - i32.const 4288 - i32.const 221 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - local.get $6 - i32.const 4 - i32.add - local.get $3 - i32.const -4 - i32.and - i32.add - local.tee $3 - i32.store - end - local.get $4 - local.get $2 - i32.const 2 - i32.or - i32.store - local.get $3 - i32.const -4 - i32.and - local.tee $2 - i32.const 12 - i32.lt_u - if - i32.const 0 - i32.const 4288 - i32.const 233 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - i32.ne - if - i32.const 0 - i32.const 4288 - i32.const 234 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - i32.const 4 - i32.sub - local.get $1 - i32.store - local.get $2 - i32.const 256 - i32.lt_u - if (result i32) - local.get $2 - i32.const 4 - i32.shr_u - else - i32.const 31 - local.get $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - i32.clz - i32.sub - local.tee $3 - i32.const 7 - i32.sub - local.set $5 - local.get $2 - local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $2 - i32.const 16 - i32.lt_u - local.get $5 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 4288 - i32.const 251 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - local.set $3 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - local.get $3 - i32.store offset=8 - local.get $3 - if - local.get $3 - local.get $1 - i32.store offset=4 - end - local.get $0 - local.get $5 - i32.const 4 - i32.shl - local.get $2 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $1 - i32.store offset=96 - local.get $0 - local.get $0 - i32.load - i32.const 1 - local.get $5 - i32.shl - i32.or - i32.store - local.get $0 - local.get $5 - i32.const 2 - i32.shl - i32.add - local.tee $0 - local.get $0 - i32.load offset=4 - i32.const 1 - local.get $2 - i32.shl - i32.or - i32.store offset=4 - ) - (func $~lib/rt/tlsf/addMemory (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - local.get $2 - i32.gt_u - if - i32.const 0 - i32.const 4288 - i32.const 377 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.load offset=1568 - local.tee $4 - if - local.get $4 - i32.const 4 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 4288 - i32.const 384 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 16 - i32.sub - local.get $4 - i32.eq - if - local.get $4 - i32.load - local.set $3 - local.get $1 - i32.const 16 - i32.sub - local.set $1 - end - else - local.get $0 - i32.const 1572 - i32.add - local.get $1 - i32.gt_u - if - i32.const 0 - i32.const 4288 - i32.const 397 - i32.const 5 - call $~lib/wasi/index/abort - unreachable - end - end - local.get $2 - i32.const -16 - i32.and - local.get $1 - i32.sub - local.tee $2 - i32.const 20 - i32.lt_u - if - return - end - local.get $1 - local.get $3 - i32.const 2 - i32.and - local.get $2 - i32.const 8 - i32.sub - local.tee $2 - i32.const 1 - i32.or - i32.or - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=8 - local.get $1 - i32.const 4 - i32.add - local.get $2 - i32.add - local.tee $2 - i32.const 2 - i32.store - local.get $0 - local.get $2 - i32.store offset=1568 - local.get $0 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/rt/tlsf/initialize - (local $0 i32) - (local $1 i32) - memory.size - local.tee $1 - i32.const 0 - i32.le_s - if (result i32) - i32.const 1 - local.get $1 - i32.sub - memory.grow - i32.const 0 - i32.lt_s - else - i32.const 0 - end - if - unreachable - end - i32.const 23792 - i32.const 0 - i32.store - i32.const 25360 - i32.const 0 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 23 - i32.lt_u - if - local.get $0 - i32.const 2 - i32.shl - i32.const 23792 - i32.add - i32.const 0 - i32.store offset=4 - i32.const 0 - local.set $1 - loop $for-loop|1 - local.get $1 - i32.const 16 - i32.lt_u - if - local.get $0 - i32.const 4 - i32.shl - local.get $1 - i32.add - i32.const 2 - i32.shl - i32.const 23792 - i32.add - i32.const 0 - i32.store offset=96 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|1 - end - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - i32.const 23792 - i32.const 25364 - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - i32.const 23792 - global.set $~lib/rt/tlsf/ROOT - ) - (func $~lib/rt/tlsf/searchBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - i32.const 256 - i32.lt_u - if (result i32) - local.get $1 - i32.const 4 - i32.shr_u - else - i32.const 31 - local.get $1 - i32.const 1 - i32.const 27 - local.get $1 - i32.clz - i32.sub - i32.shl - i32.add - i32.const 1 - i32.sub - local.get $1 - local.get $1 - i32.const 536870910 - i32.lt_u - select - local.tee $1 - i32.clz - i32.sub - local.tee $3 - i32.const 7 - i32.sub - local.set $2 - local.get $1 - local.get $3 - i32.const 4 - i32.sub - i32.shr_u - i32.const 16 - i32.xor - end - local.tee $1 - i32.const 16 - i32.lt_u - local.get $2 - i32.const 23 - i32.lt_u - i32.and - i32.eqz - if - i32.const 0 - i32.const 4288 - i32.const 330 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - i32.const -1 - local.get $1 - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.get $2 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - local.get $0 - i32.load - i32.const -1 - local.get $2 - i32.const 1 - i32.add - i32.shl - i32.and - local.tee $1 - if (result i32) - local.get $0 - local.get $1 - i32.ctz - local.tee $1 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 4288 - i32.const 343 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $2 - i32.ctz - local.get $1 - i32.const 4 - i32.shl - i32.add - i32.const 2 - i32.shl - i32.add - i32.load offset=96 - else - i32.const 0 - end - end - ) - (func $~lib/rt/tlsf/allocateBlock (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - i32.const 1073741820 - i32.gt_u - if - i32.const 4352 - i32.const 4288 - i32.const 458 - i32.const 29 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 12 - local.get $1 - i32.const 19 - i32.add - i32.const -16 - i32.and - i32.const 4 - i32.sub - local.get $1 - i32.const 12 - i32.le_u - select - local.tee $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - memory.size - local.tee $1 - i32.const 4 - local.get $0 - i32.load offset=1568 - local.get $1 - i32.const 16 - i32.shl - i32.const 4 - i32.sub - i32.ne - i32.shl - local.get $3 - i32.const 1 - i32.const 27 - local.get $3 - i32.clz - i32.sub - i32.shl - i32.const 1 - i32.sub - i32.add - local.get $3 - local.get $3 - i32.const 536870910 - i32.lt_u - select - i32.add - i32.const 65535 - i32.add - i32.const -65536 - i32.and - i32.const 16 - i32.shr_u - local.tee $2 - local.get $1 - local.get $2 - i32.gt_s - select - memory.grow - i32.const 0 - i32.lt_s - if - local.get $2 - memory.grow - i32.const 0 - i32.lt_s - if - unreachable - end - end - local.get $0 - local.get $1 - i32.const 16 - i32.shl - memory.size - i32.const 16 - i32.shl - call $~lib/rt/tlsf/addMemory - local.get $0 - local.get $3 - call $~lib/rt/tlsf/searchBlock - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 4288 - i32.const 496 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - local.get $3 - local.get $1 - i32.load - i32.const -4 - i32.and - i32.gt_u - if - i32.const 0 - i32.const 4288 - i32.const 498 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - local.get $1 - call $~lib/rt/tlsf/removeBlock - local.get $1 - i32.load - local.set $4 - local.get $3 - i32.const 4 - i32.add - i32.const 15 - i32.and - if - i32.const 0 - i32.const 4288 - i32.const 357 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - local.get $4 - i32.const -4 - i32.and - local.get $3 - i32.sub - local.tee $2 - i32.const 16 - i32.ge_u - if - local.get $1 - local.get $3 - local.get $4 - i32.const 2 - i32.and - i32.or - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $3 - i32.add - local.tee $3 - local.get $2 - i32.const 4 - i32.sub - i32.const 1 - i32.or - i32.store - local.get $0 - local.get $3 - call $~lib/rt/tlsf/insertBlock - else - local.get $1 - local.get $4 - i32.const -2 - i32.and - i32.store - local.get $1 - i32.const 4 - i32.add - local.get $1 - i32.load - i32.const -4 - i32.and - i32.add - local.tee $0 - local.get $0 - i32.load - i32.const -3 - i32.and - i32.store - end - local.get $1 - ) - (func $~lib/rt/tlsf/__free (param $0 i32) - (local $1 i32) - (local $2 i32) - local.get $0 - i32.const 23788 - i32.lt_u - if - return - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.set $2 - local.get $0 - i32.const 4 - i32.sub - local.set $1 - local.get $0 - i32.const 15 - i32.and - i32.const 1 - local.get $0 - select - if (result i32) - i32.const 1 - else - local.get $1 - i32.load - i32.const 1 - i32.and - end - if - i32.const 0 - i32.const 4288 - i32.const 559 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $1 - i32.load - i32.const 1 - i32.or - i32.store - local.get $2 - local.get $1 - call $~lib/rt/tlsf/insertBlock - ) - (func $~lib/process/writeString (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - block $break|0 - block $case4|0 - block $case3|0 - block $case2|0 - block $case1|0 - block $case0|0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $4 - br_table $case4|0 $case3|0 $case2|0 $case1|0 $case0|0 $break|0 - end - local.get $0 - i32.load16_u offset=6 - local.tee $3 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=4 - local.tee $1 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u offset=2 - local.tee $2 - i32.const 128 - i32.ge_u - br_if $break|0 - end - local.get $0 - i32.load16_u - local.tee $5 - i32.const 128 - i32.ge_u - br_if $break|0 - i32.const 1088 - i32.const 1096 - i32.store - i32.const 1092 - local.get $4 - i32.store - i32.const 1096 - local.get $5 - local.get $2 - i32.const 8 - i32.shl - i32.or - local.get $1 - i32.const 16 - i32.shl - i32.or - local.get $3 - i32.const 24 - i32.shl - i32.or - i32.store - i32.const 1 - i32.const 1088 - i32.const 1 - i32.const 1100 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 211 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - end - return - end - local.get $0 - local.set $1 - local.get $0 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.add - local.set $3 - i32.const 0 - local.set $2 - loop $while-continue|0 - local.get $0 - local.get $3 - i32.lt_u - if - local.get $0 - i32.load16_u - local.tee $5 - i32.const 128 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1 - i32.add - else - local.get $5 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $2 - i32.const 2 - i32.add - else - local.get $5 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq - local.get $0 - i32.const 2 - i32.add - local.get $3 - i32.lt_u - i32.and - if - local.get $0 - i32.load16_u offset=2 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - local.get $2 - i32.const 4 - i32.add - local.set $2 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $2 - i32.const 3 - i32.add - end - end - local.set $2 - local.get $0 - i32.const 2 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $2 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.set $0 - i32.const 3 - global.set $~argumentsLength - local.get $1 - local.get $4 - local.get $0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $2 - i32.ne - if - i32.const 0 - i32.const 4224 - i32.const 217 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1088 - local.get $0 - i32.store - i32.const 1092 - local.get $2 - i32.store - i32.const 1 - i32.const 1088 - i32.const 1 - i32.const 1096 - call $~lib/bindings/wasi_snapshot_preview1/fd_write - local.set $1 - local.get $0 - call $~lib/rt/tlsf/__free - local.get $1 - i32.const 65535 - i32.and - if - local.get $1 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 222 - i32.const 12 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~lib/rt/itcms/visitRoots - (local $0 i32) - (local $1 i32) - i32.const 4448 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 4528 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - global.get $~lib/process/process.argv - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $~lib/process/process.env - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $std-wasi/process/argv - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $std-wasi/process/env - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - global.get $std-wasi/process/envKeys - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - i32.const 4784 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 4560 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 4976 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 5344 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 4352 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 1136 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 6128 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - i32.const 7184 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - global.get $~lib/rt/itcms/pinSpace - local.tee $1 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|0 - local.get $0 - local.get $1 - i32.ne - if - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 4656 - i32.const 159 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|0 - end - end - ) - (func $~lib/rt/itcms/Object#makeGray (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - local.get $0 - global.get $~lib/rt/itcms/iter - i32.eq - if - local.get $0 - i32.load offset=8 - local.tee $1 - i32.eqz - if - i32.const 0 - i32.const 4656 - i32.const 147 - i32.const 30 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - global.set $~lib/rt/itcms/iter - end - block $__inlined_func$~lib/rt/itcms/Object#unlink - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.tee $1 - i32.eqz - if - i32.const 0 - local.get $0 - i32.const 23788 - i32.lt_u - local.get $0 - i32.load offset=8 - select - i32.eqz - if - i32.const 0 - i32.const 4656 - i32.const 127 - i32.const 18 - call $~lib/wasi/index/abort - unreachable - end - br $__inlined_func$~lib/rt/itcms/Object#unlink - end - local.get $0 - i32.load offset=8 - local.tee $2 - i32.eqz - if - i32.const 0 - i32.const 4656 - i32.const 131 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - local.get $2 - i32.store offset=8 - local.get $2 - local.get $1 - local.get $2 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - end - global.get $~lib/rt/itcms/toSpace - local.set $2 - local.get $0 - i32.load offset=12 - local.tee $1 - i32.const 1 - i32.le_u - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 7360 - i32.load - i32.gt_u - if - i32.const 4784 - i32.const 4848 - i32.const 22 - i32.const 28 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 3 - i32.shl - i32.const 7364 - i32.add - i32.load - i32.const 32 - i32.and - end - local.set $3 - local.get $2 - i32.load offset=8 - local.set $1 - local.get $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.const 2 - local.get $3 - select - local.get $2 - i32.or - i32.store offset=4 - local.get $0 - local.get $1 - i32.store offset=8 - local.get $1 - local.get $0 - local.get $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=8 - ) - (func $~lib/rt/itcms/step (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - block $break|0 - block $case2|0 - block $case1|0 - block $case0|0 - global.get $~lib/rt/itcms/state - br_table $case0|0 $case1|0 $case2|0 $break|0 - end - i32.const 1 - global.set $~lib/rt/itcms/state - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/white - i32.eqz - local.set $1 - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|1 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - global.set $~lib/rt/itcms/iter - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - return - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|1 - end - end - i32.const 0 - global.set $~lib/rt/itcms/visitCount - call $~lib/rt/itcms/visitRoots - global.get $~lib/rt/itcms/toSpace - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.set $0 - loop $while-continue|0 - local.get $0 - i32.const 23788 - i32.lt_u - if - local.get $0 - i32.load - local.tee $2 - if - local.get $2 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/rt/itcms/iter - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - loop $while-continue|2 - local.get $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $1 - local.get $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.ne - if - local.get $0 - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.get $1 - i32.or - i32.store offset=4 - local.get $0 - i32.const 20 - i32.add - call $~lib/rt/__visit_members - end - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - local.set $0 - br $while-continue|2 - end - end - global.get $~lib/rt/itcms/fromSpace - local.set $0 - global.get $~lib/rt/itcms/toSpace - global.set $~lib/rt/itcms/fromSpace - local.get $0 - global.set $~lib/rt/itcms/toSpace - local.get $1 - global.set $~lib/rt/itcms/white - local.get $0 - i32.load offset=4 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - i32.const 2 - global.set $~lib/rt/itcms/state - end - global.get $~lib/rt/itcms/visitCount - return - end - global.get $~lib/rt/itcms/iter - local.tee $0 - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $0 - i32.load offset=4 - local.tee $1 - i32.const -4 - i32.and - global.set $~lib/rt/itcms/iter - global.get $~lib/rt/itcms/white - i32.eqz - local.get $1 - i32.const 3 - i32.and - i32.ne - if - i32.const 0 - i32.const 4656 - i32.const 228 - i32.const 20 - call $~lib/wasi/index/abort - unreachable - end - local.get $0 - i32.const 23788 - i32.lt_u - if - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - else - global.get $~lib/rt/itcms/total - local.get $0 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.sub - global.set $~lib/rt/itcms/total - local.get $0 - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - i32.const 10 - return - end - global.get $~lib/rt/itcms/toSpace - local.tee $0 - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.store offset=8 - i32.const 0 - global.set $~lib/rt/itcms/state - end - i32.const 0 - ) - (func $~lib/rt/itcms/__new (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $0 - i32.const 1073741804 - i32.ge_u - if - i32.const 4352 - i32.const 4656 - i32.const 260 - i32.const 31 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/total - global.get $~lib/rt/itcms/threshold - i32.ge_u - if - block $__inlined_func$~lib/rt/itcms/interrupt - i32.const 2048 - local.set $2 - loop $do-loop|0 - local.get $2 - call $~lib/rt/itcms/step - i32.sub - local.set $2 - global.get $~lib/rt/itcms/state - i32.eqz - if - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - br $__inlined_func$~lib/rt/itcms/interrupt - end - local.get $2 - i32.const 0 - i32.gt_s - br_if $do-loop|0 - end - global.get $~lib/rt/itcms/total - local.tee $2 - global.get $~lib/rt/itcms/threshold - i32.sub - i32.const 1024 - i32.lt_u - i32.const 10 - i32.shl - local.get $2 - i32.add - global.set $~lib/rt/itcms/threshold - end - end - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $0 - i32.const 16 - i32.add - call $~lib/rt/tlsf/allocateBlock - local.tee $2 - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - i32.store offset=16 - global.get $~lib/rt/itcms/fromSpace - local.tee $1 - i32.load offset=8 - local.set $3 - local.get $2 - local.get $1 - global.get $~lib/rt/itcms/white - i32.or - i32.store offset=4 - local.get $2 - local.get $3 - i32.store offset=8 - local.get $3 - local.get $2 - local.get $3 - i32.load offset=4 - i32.const 3 - i32.and - i32.or - i32.store offset=4 - local.get $1 - local.get $2 - i32.store offset=8 - global.get $~lib/rt/itcms/total - local.get $2 - i32.load - i32.const -4 - i32.and - i32.const 4 - i32.add - i32.add - global.set $~lib/rt/itcms/total - local.get $2 - i32.const 20 - i32.add - local.tee $1 - i32.const 0 - local.get $0 - memory.fill - local.get $1 - ) - (func $~lib/rt/itcms/__renew (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - local.get $1 - local.get $0 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $3 - local.get $1 - i32.store offset=16 - local.get $0 - return - end - local.get $1 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 - local.get $0 - local.get $1 - local.get $3 - i32.load offset=16 - local.tee $0 - local.get $0 - local.get $1 - i32.gt_u - select - memory.copy - local.get $2 - ) - (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - local.get $1 - local.get $0 - i32.load offset=8 - local.tee $3 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $1 - i32.const 268435455 - i32.gt_u - if - i32.const 4560 - i32.const 4608 - i32.const 19 - i32.const 48 - call $~lib/wasi/index/abort - unreachable - end - local.get $1 - i32.const 8 - local.get $1 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.set $1 - local.get $2 - if - local.get $3 - i32.const 1 - i32.shl - local.tee $2 - i32.const 1073741820 - local.get $2 - i32.const 1073741820 - i32.lt_u - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.set $1 - end - local.get $0 - i32.load - local.tee $4 - local.get $1 - call $~lib/rt/itcms/__renew - local.tee $2 - local.get $4 - i32.ne - if - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.store offset=4 - local.get $2 - if - local.get $0 - local.get $2 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - end - local.get $0 - local.get $1 - i32.store offset=8 - end - ) - (func $~lib/array/Array<~lib/string/String>#__uset (param $0 i32) (param $1 i32) (param $2 i32) - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - local.get $2 - i32.store - local.get $2 - if - local.get $0 - local.get $2 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - ) - (func $~lib/util/hash/HASH<~lib/string/String> (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - local.get $0 - if (result i32) - local.get $0 - local.tee $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - i32.const 1 - i32.shl - local.tee $3 - i32.const 16 - i32.ge_u - if (result i32) - i32.const 606290984 - local.set $2 - i32.const -2048144777 - local.set $4 - i32.const 1640531535 - local.set $5 - local.get $1 - local.get $3 - i32.add - i32.const 16 - i32.sub - local.set $7 - loop $while-continue|0 - local.get $1 - local.get $7 - i32.le_u - if - local.get $2 - local.get $1 - i32.load - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 - local.get $4 - local.get $1 - i32.load offset=4 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $4 - local.get $6 - local.get $1 - i32.load offset=8 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $6 - local.get $5 - local.get $1 - i32.load offset=12 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $5 - local.get $1 - i32.const 16 - i32.add - local.set $1 - br $while-continue|0 - end - end - local.get $3 - local.get $2 - i32.const 1 - i32.rotl - local.get $4 - i32.const 7 - i32.rotl - i32.add - local.get $6 - i32.const 12 - i32.rotl - i32.add - local.get $5 - i32.const 18 - i32.rotl - i32.add - i32.add - else - local.get $3 - i32.const 374761393 - i32.add - end - local.set $2 - local.get $0 - local.get $3 - i32.add - i32.const 4 - i32.sub - local.set $4 - loop $while-continue|1 - local.get $1 - local.get $4 - i32.le_u - if - local.get $2 - local.get $1 - i32.load - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $2 - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|1 - end - end - local.get $0 - local.get $3 - i32.add - local.set $0 - loop $while-continue|2 - local.get $0 - local.get $1 - i32.gt_u - if - local.get $2 - local.get $1 - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $2 - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $while-continue|2 - end - end - local.get $2 - local.get $2 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - else - i32.const 0 - end - ) - (func $~lib/util/number/utoa32_dec_lut (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - loop $while-continue|0 - local.get $1 - i32.const 10000 - i32.ge_u - if - local.get $1 - i32.const 10000 - i32.rem_u - local.set $3 - local.get $1 - i32.const 10000 - i32.div_u - local.set $1 - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 5708 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5708 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $1 - i32.const 100 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5708 - i32.add - i32.load - i32.store - local.get $1 - i32.const 100 - i32.div_u - local.set $1 - end - local.get $1 - i32.const 10 - i32.ge_u - if - local.get $0 - local.get $2 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 2 - i32.shl - i32.const 5708 - i32.add - i32.load - i32.store - else - local.get $0 - local.get $2 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.get $1 - i32.const 48 - i32.add - i32.store16 - end - ) - (func $~lib/util/number/utoa64_dec_lut (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - loop $while-continue|0 - local.get $1 - i64.const 100000000 - i64.ge_u - if - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $1 - i64.const 100000000 - i64.div_u - local.tee $1 - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.tee $3 - i32.const 10000 - i32.rem_u - local.tee $4 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 5708 - i32.add - i64.load32_u - local.get $4 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5708 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - local.get $0 - local.get $2 - i32.const 4 - i32.sub - local.tee $2 - i32.const 1 - i32.shl - i32.add - local.get $3 - i32.const 10000 - i32.div_u - local.tee $3 - i32.const 100 - i32.div_u - i32.const 2 - i32.shl - i32.const 5708 - i32.add - i64.load32_u - local.get $3 - i32.const 100 - i32.rem_u - i32.const 2 - i32.shl - i32.const 5708 - i32.add - i64.load32_u - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $0 - local.get $1 - i32.wrap_i64 - local.get $2 - call $~lib/util/number/utoa32_dec_lut - ) - (func $~lib/rt/__visit_members (param $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - block $folding-inner0 - block $invalid - block $~lib/map/Map<~lib/string/String,~lib/string/String> - block $~lib/array/Array<~lib/string/String> - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $~lib/array/Array<~lib/string/String> $~lib/map/Map<~lib/string/String,~lib/string/String> $invalid - end - return - end - return - end - local.get $0 - i32.load offset=4 - local.tee $1 - local.get $0 - i32.load offset=12 - i32.const 2 - i32.shl - i32.add - local.set $2 - loop $while-continue|0 - local.get $1 - local.get $2 - i32.lt_u - if - local.get $1 - i32.load - local.tee $3 - if - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $1 - i32.const 4 - i32.add - local.set $1 - br $while-continue|0 - end - end - br $folding-inner0 - end - local.get $0 - i32.load - local.tee $1 - if - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - local.get $0 - i32.load offset=8 - local.tee $1 - local.tee $0 - i32.add - local.set $2 - loop $while-continue|01 - local.get $0 - local.get $2 - i32.lt_u - if - local.get $0 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $0 - i32.load - local.tee $3 - if - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - local.get $0 - i32.load offset=4 - local.tee $3 - if - local.get $3 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - end - local.get $0 - i32.const 12 - i32.add - local.set $0 - br $while-continue|01 - end - end - local.get $1 - if - local.get $1 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - return - end - unreachable - end - local.get $0 - i32.load - local.tee $0 - if - local.get $0 - call $byn-split-outlined-A$~lib/rt/itcms/__visit - end - ) - (func $~start - global.get $~started - if - return - end - i32.const 1 - global.set $~started - call $start:std-wasi/process - ) - (func $~lib/console/console.log (param $0 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - if - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4416 - i32.store - i32.const 4416 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#find (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - if - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.load - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load - local.tee $3 - i32.store - local.get $3 - local.get $1 - call $~lib/string/String.__eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $~lib/process/lazyEnv (result i32) - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $0 - i64.const 0 - i64.store offset=8 - i32.const 1088 - i32.const 1092 - call $~lib/bindings/wasi_snapshot_preview1/environ_sizes_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 114 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1088 - i32.load - local.tee $4 - i32.const 2 - i32.shl - local.tee $0 - i32.const 1092 - i32.load - i32.add - local.set $3 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $3 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $1 - local.get $0 - local.get $1 - i32.add - call $~lib/bindings/wasi_snapshot_preview1/environ_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 121 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $0 - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $5 - i32.const 0 - i32.store - local.get $5 - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - local.get $5 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - local.get $6 - if - local.get $5 - local.get $6 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $5 - i32.const 3 - i32.store offset=4 - local.get $5 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store offset=8 - local.get $6 - if - local.get $5 - local.get $6 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $5 - i32.const 4 - i32.store offset=12 - local.get $5 - i32.const 0 - i32.store offset=16 - local.get $5 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $5 - i32.store - loop $for-loop|0 - local.get $2 - local.get $4 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - local.get $0 - local.get $3 - i32.add - local.get $1 - i32.sub - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 - i32.const 0 - local.set $0 - block $__inlined_func$~lib/string/String#indexOf - i32.const 5164 - i32.load - i32.const 1 - i32.shr_u - local.tee $7 - i32.eqz - br_if $__inlined_func$~lib/string/String#indexOf - i32.const -1 - local.set $0 - local.get $6 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $8 - i32.eqz - br_if $__inlined_func$~lib/string/String#indexOf - i32.const 0 - local.set $0 - local.get $8 - local.get $7 - i32.sub - local.set $8 - loop $for-loop|02 - local.get $0 - local.get $8 - i32.le_s - if - local.get $6 - local.get $0 - i32.const 5168 - local.get $7 - call $~lib/util/string/compareImpl - i32.eqz - br_if $__inlined_func$~lib/string/String#indexOf - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end - i32.const -1 - local.set $0 - end - local.get $0 - i32.const -1 - i32.xor - if - local.get $6 - i32.const 0 - local.get $0 - call $~lib/string/String#substring - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $6 - local.get $0 - i32.const 1 - i32.add - i32.const 2147483647 - call $~lib/string/String#substring - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $5 - local.get $7 - local.get $0 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set - else - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.store offset=12 - local.get $5 - local.get $6 - i32.const 5200 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#set - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $1 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $start:std-wasi/process - (local $0 i32) - (local $1 i64) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - i32.const 1056 - i32.store - i32.const 1056 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4448 - i32.store - i32.const 4448 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4480 - i32.store - i32.const 4480 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store - i32.const 4528 - call $~lib/console/console.log - memory.size - i32.const 16 - i32.shl - i32.const 23788 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 4708 - i32.const 4704 - i32.store - i32.const 4712 - i32.const 4704 - i32.store - i32.const 4704 - global.set $~lib/rt/itcms/pinSpace - i32.const 4740 - i32.const 4736 - i32.store - i32.const 4744 - i32.const 4736 - i32.store - i32.const 4736 - global.set $~lib/rt/itcms/toSpace - i32.const 4884 - i32.const 4880 - i32.store - i32.const 4888 - i32.const 4880 - i32.store - i32.const 4880 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - i32.const 1088 - i32.const 1092 - call $~lib/bindings/wasi_snapshot_preview1/args_sizes_get - local.tee $3 - i32.const 65535 - i32.and - if - local.get $3 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 89 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1088 - i32.load - local.tee $5 - i32.const 2 - i32.shl - local.tee $3 - i32.const 1092 - i32.load - i32.add - local.set $6 - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - local.get $6 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $7 - local.get $3 - local.get $7 - i32.add - call $~lib/bindings/wasi_snapshot_preview1/args_get - local.tee $3 - i32.const 65535 - i32.and - if - local.get $3 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 96 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $3 - i32.store - loop $for-loop|0 - local.get $0 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $4 - local.get $4 - local.get $6 - i32.add - local.get $7 - i32.sub - call $~lib/string/String.UTF8.decodeUnsafe - local.tee $4 - i32.store offset=4 - local.get $0 - local.get $3 - i32.load offset=12 - i32.ge_u - if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 4784 - i32.const 4608 - i32.const 130 - i32.const 22 - call $~lib/wasi/index/abort - unreachable - end - local.get $3 - local.get $0 - i32.const 1 - i32.add - local.tee $8 - i32.const 1 - call $~lib/array/ensureCapacity - local.get $3 - local.get $8 - i32.store offset=12 - end - local.get $3 - local.get $0 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__uset - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - local.get $7 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - global.set $~lib/process/process.argv - global.get $~lib/process/process.argv - global.set $std-wasi/process/argv - global.get $~lib/memory/__stack_pointer - i32.const 4928 - i32.store - i32.const 4928 - call $~lib/console/console.log - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/process/argv - local.tee $3 - i32.store - local.get $3 - i32.load offset=12 - local.set $3 - loop $for-loop|01 - local.get $0 - local.get $3 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/process/argv - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $0 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store - local.get $4 - call $~lib/console/console.log - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|01 - end - end - call $~lib/process/lazyEnv - global.set $~lib/process/process.env - global.get $~lib/process/process.env - global.set $std-wasi/process/env - global.get $~lib/memory/__stack_pointer - local.tee $0 - global.get $std-wasi/process/env - local.tee $3 - i32.store - local.get $0 - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.tee $0 - i64.const 0 - i64.store - local.get $3 - i32.load offset=8 - local.set $4 - local.get $0 - local.get $3 - i32.load offset=16 - local.tee $3 - call $~lib/array/Array<~lib/string/String>#constructor - local.tee $5 - i32.store - i32.const 0 - local.set $0 - loop $for-loop|02 - local.get $2 - local.get $3 - i32.lt_s - if - local.get $4 - local.get $2 - i32.const 12 - i32.mul - i32.add - local.tee $6 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.load - local.tee $6 - i32.store offset=4 - local.get $5 - local.get $0 - local.get $6 - call $~lib/array/Array<~lib/string/String>#__uset - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|02 - end - end - local.get $5 - local.get $0 - i32.const 0 - call $~lib/array/ensureCapacity - local.get $5 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - global.set $std-wasi/process/envKeys - global.get $~lib/memory/__stack_pointer - i32.const 5232 - i32.store - i32.const 5232 - call $~lib/console/console.log - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/process/envKeys - local.tee $2 - i32.store - local.get $2 - i32.load offset=12 - local.set $2 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.tee $3 - global.get $std-wasi/process/envKeys - local.tee $4 - i32.store - local.get $3 - local.get $4 - local.get $0 - call $~lib/array/Array<~lib/string/String>#__get - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5280 - i32.store offset=4 - i32.const 5280 - call $~lib/process/writeString - local.get $3 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 5312 - i32.store offset=4 - i32.const 5312 - call $~lib/process/writeString - global.get $~lib/memory/__stack_pointer - global.get $std-wasi/process/env - local.tee $4 - i32.store offset=4 - local.get $4 - local.get $3 - local.get $3 - call $~lib/util/hash/HASH<~lib/string/String> - call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.tee $3 - i32.eqz - if - i32.const 5344 - i32.const 5408 - i32.const 105 - i32.const 17 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.load offset=4 - local.tee $3 - i32.store - local.get $3 - call $~lib/console/console.log - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store - i32.const 5456 - call $~lib/console/console.log - i32.const 0 - i64.const 1000000 - i32.const 1088 - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 65 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1088 - i64.load - i64.const 1000000 - i64.div_u - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/itoa64 - local.get $1 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 5696 - local.set $0 - br $__inlined_func$~lib/util/number/itoa64 - end - i64.const 0 - local.get $1 - i64.sub - local.get $1 - local.get $1 - i64.const 63 - i64.shr_u - i32.wrap_i64 - i32.const 1 - i32.shl - local.tee $2 - select - local.tee $1 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.wrap_i64 - local.tee $3 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 100 - i32.lt_u - if (result i32) - local.get $3 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $3 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $3 - i32.const 1000 - i32.ge_u - i32.add - end - else - local.get $3 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $3 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $3 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $3 - i32.const 100000000 - i32.ge_u - i32.add - end - end - local.tee $4 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - i32.add - local.get $3 - local.get $4 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $3 - i32.const 1 - i32.shl - local.get $2 - i32.add - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - i32.add - local.get $1 - local.get $3 - call $~lib/util/number/utoa64_dec_lut - end - local.get $2 - if - local.get $0 - i32.const 45 - i32.store16 - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7280 - i32.store - i32.const 7280 - call $~lib/console/console.log - i32.const 1 - i64.const 0 - i32.const 1088 - call $~lib/bindings/wasi_snapshot_preview1/clock_time_get - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 75 - i32.const 16 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1088 - i64.load - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64 - local.get $1 - i64.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 5696 - local.set $0 - br $__inlined_func$~lib/util/number/utoa64 - end - local.get $1 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.wrap_i64 - local.tee $2 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 100 - i32.lt_u - if (result i32) - local.get $0 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - 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 - end - else - local.get $0 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $0 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - 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 - end - end - local.tee $3 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $3 - call $~lib/util/number/utoa32_dec_lut - else - global.get $~lib/memory/__stack_pointer - local.get $1 - i64.const 1000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 1000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 100000000000 - i64.ge_u - i32.const 10 - i32.add - local.get $1 - i64.const 10000000000 - i64.ge_u - i32.add - else - local.get $1 - i64.const 100000000000000 - i64.ge_u - i32.const 13 - i32.add - local.get $1 - i64.const 10000000000000 - i64.ge_u - i32.add - end - else - local.get $1 - i64.const 100000000000000000 - i64.lt_u - if (result i32) - local.get $1 - i64.const 10000000000000000 - i64.ge_u - i32.const 16 - i32.add - else - local.get $1 - i64.const -8446744073709551616 - i64.ge_u - i32.const 18 - i32.add - local.get $1 - i64.const 1000000000000000000 - i64.ge_u - i32.add - end - end - local.tee $2 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $1 - local.get $2 - call $~lib/util/number/utoa64_dec_lut - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/console/console.log - global.get $~lib/memory/__stack_pointer - i32.const 7328 - i32.store - i32.const 7328 - call $~lib/console/console.log - i32.const 42 - call $~lib/bindings/wasi_snapshot_preview1/proc_exit - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $2 - i32.const 1088 - local.get $0 - i32.store - i32.const 1092 - local.get $2 - i32.store - i32.const 0 - i32.const 1088 - i32.const 1 - i32.const 1096 - call $~lib/bindings/wasi_snapshot_preview1/fd_read - local.tee $0 - i32.const 65535 - i32.and - if - local.get $0 - call $~lib/bindings/wasi_snapshot_preview1/errnoToString - i32.const 4224 - i32.const 173 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - i32.const 1096 - i32.load - drop - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $~lib/array/Array<~lib/string/String>#constructor (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - if - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.tee $1 - i64.const 0 - i64.store - local.get $1 - i32.const 16 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $2 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 268435455 - i32.gt_u - if - i32.const 4560 - i32.const 4608 - i32.const 70 - i32.const 60 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 8 - local.get $0 - i32.const 8 - i32.gt_u - select - i32.const 2 - i32.shl - local.tee $1 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=4 - local.get $2 - local.get $3 - i32.store - local.get $3 - if - local.get $2 - local.get $3 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $2 - local.get $3 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - ) - (func $~lib/string/String.UTF8.decodeUnsafe (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - if - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.add - local.tee $4 - local.get $0 - i32.lt_u - if - i32.const 0 - i32.const 1200 - i32.const 770 - i32.const 7 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.shl - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - local.get $2 - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $4 - i32.lt_u - if - block $while-break|0 - local.get $0 - i32.load8_u - local.set $5 - local.get $0 - i32.const 1 - i32.add - local.set $0 - local.get $5 - i32.const 128 - i32.and - if - local.get $0 - local.get $4 - i32.eq - br_if $while-break|0 - local.get $0 - i32.load8_u - i32.const 63 - i32.and - local.set $6 - local.get $0 - i32.const 1 - i32.add - local.set $0 - local.get $5 - i32.const 224 - i32.and - i32.const 192 - i32.eq - if - local.get $1 - local.get $5 - i32.const 31 - i32.and - i32.const 6 - i32.shl - local.get $6 - i32.or - i32.store16 - else - local.get $0 - local.get $4 - i32.eq - br_if $while-break|0 - local.get $0 - i32.load8_u - i32.const 63 - i32.and - local.set $3 - local.get $0 - i32.const 1 - i32.add - local.set $0 - local.get $5 - i32.const 240 - i32.and - i32.const 224 - i32.eq - if - local.get $5 - i32.const 15 - i32.and - i32.const 12 - i32.shl - local.get $6 - i32.const 6 - i32.shl - i32.or - local.get $3 - i32.or - local.set $3 - else - local.get $0 - local.get $4 - i32.eq - br_if $while-break|0 - local.get $0 - i32.load8_u - i32.const 63 - i32.and - local.get $5 - i32.const 7 - i32.and - i32.const 18 - i32.shl - local.get $6 - i32.const 12 - i32.shl - i32.or - local.get $3 - i32.const 6 - i32.shl - i32.or - i32.or - local.set $3 - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 65536 - i32.lt_u - if - local.get $1 - local.get $3 - i32.store16 - else - local.get $1 - local.get $3 - i32.const 65536 - i32.sub - local.tee $3 - i32.const 10 - i32.shr_u - i32.const 55296 - i32.or - local.get $3 - i32.const 1023 - i32.and - i32.const 56320 - i32.or - i32.const 16 - i32.shl - i32.or - i32.store - local.get $1 - i32.const 2 - i32.add - local.set $1 - end - end - else - local.get $5 - i32.eqz - br_if $while-break|0 - local.get $1 - local.get $5 - i32.store16 - end - local.get $1 - i32.const 2 - i32.add - local.set $1 - br $while-continue|0 - end - end - end - local.get $2 - local.get $1 - local.get $2 - i32.sub - call $~lib/rt/itcms/__renew - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - if - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - i32.const 4784 - i32.const 4608 - i32.const 114 - i32.const 42 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $0 - i32.store - local.get $0 - i32.eqz - if - i32.const 4976 - i32.const 4608 - i32.const 118 - i32.const 40 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/arraybuffer/ArrayBuffer#constructor (param $0 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - if - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - i32.const 1073741820 - i32.gt_u - if - i32.const 4560 - i32.const 5104 - i32.const 52 - i32.const 43 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - if - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $1 - i32.const 0 - local.get $1 - i32.const 0 - i32.gt_s - select - local.tee $3 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $1 - local.get $1 - local.get $3 - i32.gt_s - select - local.tee $3 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.gt_s - select - local.tee $2 - local.get $1 - local.get $1 - local.get $2 - i32.gt_s - select - local.tee $2 - local.get $2 - local.get $3 - i32.gt_s - select - i32.const 1 - i32.shl - local.set $4 - local.get $3 - local.get $2 - local.get $2 - local.get $3 - i32.lt_s - select - i32.const 1 - i32.shl - local.tee $2 - local.get $4 - i32.sub - local.tee $3 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 5200 - return - end - i32.const 0 - local.get $2 - local.get $1 - i32.const 1 - i32.shl - i32.eq - local.get $4 - select - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - local.get $1 - local.get $0 - local.get $4 - i32.add - local.get $3 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - ) - (func $~lib/map/Map<~lib/string/String,~lib/string/String>#set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 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) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - local.get $1 - call $~lib/util/hash/HASH<~lib/string/String> - local.tee $7 - call $~lib/map/Map<~lib/string/String,~lib/string/String>#find - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=4 - local.get $2 - if - local.get $0 - local.get $2 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - else - local.get $0 - i32.load offset=16 - local.get $0 - i32.load offset=12 - i32.eq - if - local.get $0 - i32.load offset=20 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - local.get $0 - i32.load offset=4 - else - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 7404 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - local.tee $3 - i64.const 0 - i64.store - local.get $3 - i32.const 0 - i32.store offset=8 - local.get $3 - local.get $8 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $6 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - local.get $0 - i32.load offset=8 - local.tee $10 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $5 - local.get $4 - local.set $3 - loop $while-continue|0 - local.get $5 - local.get $10 - i32.ne - if - local.get $10 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.load - local.tee $11 - i32.store offset=8 - local.get $3 - local.get $11 - i32.store - local.get $3 - local.get $10 - i32.load offset=4 - i32.store offset=4 - local.get $3 - local.get $9 - local.get $11 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $8 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=8 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 12 - i32.add - local.set $3 - end - local.get $10 - i32.const 12 - i32.add - local.set $10 - br $while-continue|0 - end - end - local.get $0 - local.get $9 - i32.store - local.get $9 - if - local.get $0 - local.get $9 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $8 - i32.store offset=4 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $4 - if - local.get $0 - local.get $4 - i32.const 0 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $6 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store - local.get $1 - if - local.get $0 - local.get $1 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $3 - local.get $2 - i32.store offset=4 - local.get $2 - if - local.get $0 - local.get $2 - i32.const 1 - call $byn-split-outlined-A$~lib/rt/itcms/__link - end - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - local.get $3 - local.get $0 - i32.load - local.get $7 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 23808 - i32.const 23856 - i32.const 1 - i32.const 1 - call $~lib/wasi/index/abort - unreachable - ) - (func $byn-split-outlined-A$~lib/rt/itcms/__visit (param $0 i32) - global.get $~lib/rt/itcms/white - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - call $~lib/rt/itcms/Object#makeGray - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.add - global.set $~lib/rt/itcms/visitCount - end - ) - (func $byn-split-outlined-A$~lib/rt/itcms/__link (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 4656 - i32.const 294 - i32.const 14 - call $~lib/wasi/index/abort - unreachable - end - global.get $~lib/rt/itcms/white - local.get $1 - i32.const 20 - i32.sub - local.tee $1 - i32.load offset=4 - i32.const 3 - i32.and - i32.eq - if - local.get $0 - i32.const 20 - i32.sub - local.tee $0 - i32.load offset=4 - i32.const 3 - i32.and - local.tee $3 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - local.get $0 - local.get $1 - local.get $2 - select - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $3 - i32.const 3 - i32.eq - i32.and - if - local.get $1 - call $~lib/rt/itcms/Object#makeGray - end - end - end - ) -) diff --git a/tests/compiler/std-wasi/process.ts b/tests/compiler/std-wasi/process.ts deleted file mode 100644 index f85232d80c..0000000000 --- a/tests/compiler/std-wasi/process.ts +++ /dev/null @@ -1,35 +0,0 @@ -import "wasi"; - -console.log("== arch =="); -console.log(process.arch); - -console.log("== platform =="); -console.log(process.platform); - -var argv = process.argv; -console.log("== argv =="); -for (let i = 0, k = argv.length; i < k; ++i) { - console.log(argv[i]); -} - -var env = process.env; -var envKeys = env.keys(); -console.log("== env =="); -for (let i = 0, k = envKeys.length; i < k; ++i) { - let key = envKeys[i]; - process.stdout.write("key: "); - console.log(key); - process.stdout.write("val: "); - console.log(env.get(key)); -} - -console.log("== time =="); -console.log(process.time().toString()); - -console.log("== hrtime =="); -console.log(process.hrtime().toString()); - -console.log("== exit =="); -process.exit(42); - -process.stdin.read(new ArrayBuffer(0)); diff --git a/tests/compiler/wasi/abort.debug.wat b/tests/compiler/wasi/abort.debug.wat deleted file mode 100644 index fc401d04b0..0000000000 --- a/tests/compiler/wasi/abort.debug.wat +++ /dev/null @@ -1,702 +0,0 @@ -(module - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_none (func)) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) - (type $i32_=>_none (func (param 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))) - (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) - (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/memory/__data_end i32 (i32.const 220)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16604)) - (global $~lib/memory/__heap_base i32 (i32.const 16604)) - (memory $0 1) - (data (i32.const 12) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 76) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e\00\00\00\00\00\00\00") - (data (i32.const 172) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1a\00\00\00w\00a\00s\00i\00/\00a\00b\00o\00r\00t\00.\00t\00s\00\00\00") - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "test" (func $wasi/abort/test)) - (export "memory" (memory $0)) - (export "_initialize" (func $~start)) - (func $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store - ) - (func $~lib/string/String#get:length (param $0 i32) (result i32) - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - ) - (func $~lib/util/string/compareImpl (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) - (local $8 i32) - (local $9 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.get $3 - i32.const 1 - i32.shl - i32.add - local.set $6 - i32.const 0 - i32.const 2 - i32.lt_s - drop - local.get $4 - i32.const 4 - i32.ge_u - if (result i32) - local.get $5 - i32.const 7 - i32.and - local.get $6 - i32.const 7 - i32.and - i32.or - i32.eqz - else - i32.const 0 - end - if - block $do-break|0 - loop $do-loop|0 - local.get $5 - i64.load - local.get $6 - i64.load - i64.ne - if - br $do-break|0 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - local.get $6 - i32.const 8 - i32.add - local.set $6 - local.get $4 - i32.const 4 - i32.sub - local.set $4 - local.get $4 - i32.const 4 - i32.ge_u - br_if $do-loop|0 - end - end - end - loop $while-continue|1 - local.get $4 - local.tee $7 - i32.const 1 - i32.sub - local.set $4 - local.get $7 - local.set $7 - local.get $7 - if - local.get $5 - i32.load16_u - local.set $8 - local.get $6 - i32.load16_u - local.set $9 - local.get $8 - local.get $9 - i32.ne - if - local.get $8 - local.get $9 - i32.sub - return - end - local.get $5 - i32.const 2 - i32.add - local.set $5 - local.get $6 - i32.const 2 - i32.add - local.set $6 - br $while-continue|1 - end - end - i32.const 0 - ) - (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) - local.get $0 - local.get $1 - i32.eq - if - i32.const 1 - return - end - local.get $0 - i32.const 0 - i32.eq - if (result i32) - i32.const 1 - else - local.get $1 - i32.const 0 - i32.eq - end - if - i32.const 0 - return - end - local.get $0 - call $~lib/string/String#get:length - local.set $2 - local.get $2 - local.get $1 - call $~lib/string/String#get:length - i32.ne - if - i32.const 0 - return - end - local.get $0 - i32.const 0 - local.get $1 - i32.const 0 - local.get $2 - call $~lib/util/string/compareImpl - i32.eqz - ) - (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - call $~lib/string/String.__eq - i32.eqz - ) - (func $~lib/string/String.UTF8.encodeUnsafe (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) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - (local $12 i32) - (local $13 i32) - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $5 - local.get $2 - local.set $6 - loop $while-continue|0 - local.get $0 - local.get $5 - i32.lt_u - local.set $7 - local.get $7 - if - local.get $0 - i32.load16_u - local.set $8 - local.get $8 - i32.const 128 - i32.lt_u - if - local.get $6 - local.get $8 - i32.store8 - local.get $6 - i32.const 1 - i32.add - local.set $6 - local.get $3 - local.get $8 - i32.eqz - i32.and - if - local.get $6 - local.get $2 - i32.sub - return - end - else - local.get $8 - i32.const 2048 - i32.lt_u - if - local.get $8 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.set $9 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $10 - local.get $6 - local.get $10 - i32.const 8 - i32.shl - local.get $9 - i32.or - i32.store16 - local.get $6 - i32.const 2 - i32.add - local.set $6 - else - local.get $8 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - if - local.get $8 - i32.const 56320 - i32.lt_u - if (result i32) - local.get $0 - i32.const 2 - i32.add - local.get $5 - i32.lt_u - else - i32.const 0 - end - if - local.get $0 - i32.load16_u offset=2 - local.set $10 - local.get $10 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - if - i32.const 65536 - local.get $8 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.add - local.get $10 - i32.const 1023 - i32.and - i32.or - local.set $8 - local.get $8 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.set $9 - local.get $8 - i32.const 12 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $11 - local.get $8 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $12 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $13 - local.get $6 - local.get $13 - i32.const 24 - i32.shl - local.get $12 - i32.const 16 - i32.shl - i32.or - local.get $11 - i32.const 8 - i32.shl - i32.or - local.get $9 - i32.or - i32.store - local.get $6 - i32.const 4 - i32.add - local.set $6 - local.get $0 - i32.const 4 - i32.add - local.set $0 - br $while-continue|0 - end - end - local.get $4 - i32.const 0 - i32.ne - if - local.get $4 - i32.const 2 - i32.eq - if - i32.const 32 - i32.const 96 - i32.const 742 - i32.const 49 - call $~lib/wasi/index/abort - unreachable - end - i32.const 65533 - local.set $8 - end - end - local.get $8 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.set $10 - local.get $8 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $13 - local.get $8 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $12 - local.get $6 - local.get $13 - i32.const 8 - i32.shl - local.get $10 - i32.or - i32.store16 - local.get $6 - local.get $12 - i32.store8 offset=2 - local.get $6 - i32.const 3 - i32.add - local.set $6 - 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 $6 - local.tee $7 - i32.const 1 - i32.add - local.set $6 - local.get $7 - i32.const 0 - i32.store8 - end - local.get $6 - local.get $2 - i32.sub - ) - (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (result i32) - block $2of2 - block $1of2 - block $0of2 - block $outOfRange - global.get $~argumentsLength - i32.const 3 - i32.sub - br_table $0of2 $1of2 $2of2 $outOfRange - end - unreachable - end - i32.const 0 - local.set $3 - end - i32.const 0 - local.set $4 - end - local.get $0 - local.get $1 - local.get $2 - local.get $3 - local.get $4 - call $~lib/string/String.UTF8.encodeUnsafe - ) - (func $~lib/util/number/decimalCount32 (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/bindings/wasi_snapshot_preview1/iovec#set:buf_len (param $0 i32) (param $1 i32) - local.get $0 - local.get $1 - i32.store offset=4 - ) - (func $~lib/wasi/index/abort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - i32.const 0 - i32.const 12 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf - 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 - call $~lib/string/String.__ne - if - local.get $4 - local.get $0 - local.get $0 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - 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 - call $~lib/string/String.__ne - if - local.get $4 - local.get $1 - local.get $1 - call $~lib/string/String#get:length - local.get $4 - i32.const 0 - i32.const 3 - global.set $~argumentsLength - i32.const 0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - 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-loop|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 - br_if $do-loop|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-loop|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 - br_if $do-loop|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 - call $~lib/bindings/wasi_snapshot_preview1/iovec#set:buf_len - 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 - i32.const 0 - i32.eqz - if - i32.const 144 - i32.const 192 - i32.const 4 - i32.const 3 - call $~lib/wasi/index/abort - unreachable - end - ) - (func $~start - nop - ) -) diff --git a/tests/compiler/wasi/abort.js b/tests/compiler/wasi/abort.js deleted file mode 100644 index 234be716b5..0000000000 --- a/tests/compiler/wasi/abort.js +++ /dev/null @@ -1,31 +0,0 @@ -var memory; -var failed; - -export function preInstantiate(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:3)\n") failed = "unexpected message: " + message; - }, - proc_exit: function(code) { - if (code != 255) failed = "unexpected exit code: " + code; - } - }; - if (failed) throw Error(failed); -} - -export function postInstantiate(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 deleted file mode 100644 index 1bdd02b1be..0000000000 --- a/tests/compiler/wasi/abort.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "asc_flags": [ - ] -} diff --git a/tests/compiler/wasi/abort.release.wat b/tests/compiler/wasi/abort.release.wat deleted file mode 100644 index 92a18cbb31..0000000000 --- a/tests/compiler/wasi/abort.release.wat +++ /dev/null @@ -1,327 +0,0 @@ -(module - (type $none_=>_none (func)) - (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))) - (type $i32_=>_none (func (param 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))) - (global $~argumentsLength (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 1036) "<") - (data (i32.const 1048) "\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e") - (data (i32.const 1100) ",") - (data (i32.const 1112) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data (i32.const 1148) ",") - (data (i32.const 1160) "\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e") - (data (i32.const 1196) ",") - (data (i32.const 1208) "\01\00\00\00\1a\00\00\00w\00a\00s\00i\00/\00a\00b\00o\00r\00t\00.\00t\00s") - (export "test" (func $wasi/abort/test)) - (export "memory" (memory $0)) - (export "_initialize" (func $~start)) - (func $~lib/string/String.UTF8.encodeUnsafe@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - block $2of2 - block $outOfRange - global.get $~argumentsLength - i32.const 3 - i32.sub - br_table $2of2 $2of2 $2of2 $outOfRange - end - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.set $3 - local.get $2 - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $3 - i32.lt_u - if - local.get $0 - i32.load16_u - local.tee $4 - i32.const 128 - i32.lt_u - if (result i32) - local.get $1 - local.get $4 - i32.store8 - local.get $1 - i32.const 1 - i32.add - else - local.get $4 - i32.const 2048 - i32.lt_u - if (result i32) - local.get $1 - local.get $4 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.get $4 - 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 $4 - i32.const 56320 - i32.lt_u - local.get $0 - i32.const 2 - i32.add - local.get $3 - i32.lt_u - i32.and - local.get $4 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - i32.and - 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 $4 - 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 $4 - i32.const 63 - i32.and - i32.const 128 - i32.or - i32.const 24 - i32.shl - local.get $4 - 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 $4 - 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 $4 - 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 $4 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.get $4 - 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 $4 - 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 $wasi/abort/test - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - i32.const 3 - local.set $1 - i32.const 4 - local.set $2 - i32.const 0 - i32.const 12 - i32.store - i32.const 12 - i64.const 9071471065260641 - i64.store - i32.const 1164 - i32.load - i32.const 1 - i32.shr_u - local.set $0 - i32.const 3 - global.set $~argumentsLength - i32.const 1168 - local.get $0 - i32.const 19 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - i32.const 19 - i32.add - local.tee $3 - i32.const 544106784 - i32.store - i32.const 1212 - i32.load - i32.const 1 - i32.shr_u - local.set $0 - i32.const 3 - global.set $~argumentsLength - i32.const 1216 - local.get $0 - local.get $3 - i32.const 4 - i32.add - local.tee $0 - call $~lib/string/String.UTF8.encodeUnsafe@varargs - local.get $0 - i32.add - local.tee $0 - i32.const 40 - i32.store8 - local.get $0 - i32.const 2 - i32.add - local.set $0 - loop $do-loop|0 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.get $2 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $2 - i32.const 10 - i32.div_u - local.tee $2 - br_if $do-loop|0 - end - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 58 - i32.store8 - local.get $0 - i32.const 2 - i32.add - local.set $0 - loop $do-loop|1 - local.get $0 - i32.const 1 - i32.sub - local.tee $0 - local.get $1 - i32.const 10 - i32.rem_u - i32.const 48 - i32.add - i32.store8 - local.get $1 - i32.const 10 - i32.div_u - local.tee $1 - br_if $do-loop|1 - end - local.get $0 - i32.const 1 - i32.add - local.tee $0 - i32.const 2601 - i32.store16 - i32.const 4 - local.get $0 - i32.const 10 - i32.sub - 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 - unreachable - ) - (func $~start - nop - ) -) diff --git a/tests/compiler/wasi/abort.ts b/tests/compiler/wasi/abort.ts deleted file mode 100644 index 731925477b..0000000000 --- a/tests/compiler/wasi/abort.ts +++ /dev/null @@ -1,5 +0,0 @@ -import "wasi"; - -export function test(): void { - assert(false, "the message"); -} diff --git a/tests/compiler/wasi/seed.debug.wat b/tests/compiler/wasi/seed.debug.wat deleted file mode 100644 index 2febc472fd..0000000000 --- a/tests/compiler/wasi/seed.debug.wat +++ /dev/null @@ -1,192 +0,0 @@ -(module - (type $none_=>_f64 (func (result f64))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i64_=>_i64 (func (param i64) (result i64))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i64_=>_none (func (param i64))) - (type $none_=>_none (func)) - (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32))) - (global $~lib/math/random_seeded (mut i32) (i32.const 0)) - (global $~lib/bindings/wasi/tempbuf i32 (i32.const 16)) - (global $~lib/math/random_state0_64 (mut i64) (i64.const 0)) - (global $~lib/math/random_state1_64 (mut i64) (i64.const 0)) - (global $~lib/math/random_state0_32 (mut i32) (i32.const 0)) - (global $~lib/math/random_state1_32 (mut i32) (i32.const 0)) - (global $~lib/memory/__data_end i32 (i32.const 32)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16416)) - (global $~lib/memory/__heap_base i32 (i32.const 16416)) - (memory $0 1) - (data (i32.const 16) "\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "test" (func $wasi/seed/test)) - (export "memory" (memory $0)) - (export "_initialize" (func $~start)) - (func $~lib/wasi/index/seed (result f64) - (local $0 i64) - loop $do-loop|0 - global.get $~lib/bindings/wasi/tempbuf - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/random_get - drop - global.get $~lib/bindings/wasi/tempbuf - i64.load - local.set $0 - local.get $0 - i64.const 0 - i64.ne - i32.eqz - br_if $do-loop|0 - end - local.get $0 - f64.reinterpret_i64 - ) - (func $~lib/math/murmurHash3 (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 (param $0 i32) (result i32) - local.get $0 - i32.const 1831565813 - i32.add - local.set $0 - local.get $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - local.get $0 - i32.const 1 - i32.or - i32.mul - local.set $0 - local.get $0 - local.get $0 - local.get $0 - local.get $0 - i32.const 7 - i32.shr_u - i32.xor - local.get $0 - i32.const 61 - i32.or - i32.mul - i32.add - i32.xor - local.set $0 - local.get $0 - local.get $0 - i32.const 14 - i32.shr_u - i32.xor - ) - (func $~lib/math/NativeMath.seedRandom (param $0 i64) - local.get $0 - i64.const 0 - i64.eq - if - i64.const -7046029254386353131 - local.set $0 - end - 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 - i32.const 1 - global.set $~lib/math/random_seeded - ) - (func $~lib/math/NativeMath.random (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 (result f64) - call $~lib/math/NativeMath.random - ) - (func $~start - nop - ) -) diff --git a/tests/compiler/wasi/seed.js b/tests/compiler/wasi/seed.js deleted file mode 100644 index 9a4560191d..0000000000 --- a/tests/compiler/wasi/seed.js +++ /dev/null @@ -1,29 +0,0 @@ -import crypto from "crypto"; - -var memory; -var failed; - -export function preInstantiate(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(crypto.randomBytes(len)); - } - }; -} - -export function postInstantiate(instance) { - const exports = instance.exports; - memory = exports.memory; - console.log("Math.random = " + exports.test()); - if (failed) throw Error(failed); -} diff --git a/tests/compiler/wasi/seed.json b/tests/compiler/wasi/seed.json deleted file mode 100644 index 1bdd02b1be..0000000000 --- a/tests/compiler/wasi/seed.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "asc_flags": [ - ] -} diff --git a/tests/compiler/wasi/seed.release.wat b/tests/compiler/wasi/seed.release.wat deleted file mode 100644 index d460121069..0000000000 --- a/tests/compiler/wasi/seed.release.wat +++ /dev/null @@ -1,115 +0,0 @@ -(module - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_f64 (func (result f64))) - (type $none_=>_none (func)) - (import "wasi_snapshot_preview1" "random_get" (func $~lib/bindings/wasi_snapshot_preview1/random_get (param i32 i32) (result i32))) - (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)) - (memory $0 1) - (export "test" (func $wasi/seed/test)) - (export "memory" (memory $0)) - (export "_initialize" (func $~start)) - (func $wasi/seed/test (result f64) - (local $0 i64) - (local $1 i64) - global.get $~lib/math/random_seeded - i32.eqz - if - loop $do-loop|0 - i32.const 1024 - i32.const 8 - call $~lib/bindings/wasi_snapshot_preview1/random_get - drop - i32.const 1024 - i64.load - local.tee $0 - i64.eqz - br_if $do-loop|0 - end - i64.const -7046029254386353131 - local.get $0 - local.get $0 - i64.eqz - select - local.tee $0 - i64.const 33 - i64.shr_u - local.get $0 - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $0 - i64.const 33 - i64.shr_u - local.get $0 - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $0 - i64.const 33 - i64.shr_u - local.get $0 - i64.xor - global.set $~lib/math/random_state0_64 - global.get $~lib/math/random_state0_64 - i64.const -1 - i64.xor - local.tee $0 - i64.const 33 - i64.shr_u - local.get $0 - i64.xor - i64.const -49064778989728563 - i64.mul - local.tee $0 - i64.const 33 - i64.shr_u - local.get $0 - i64.xor - i64.const -4265267296055464877 - i64.mul - local.tee $0 - i64.const 33 - i64.shr_u - local.get $0 - i64.xor - global.set $~lib/math/random_state1_64 - i32.const 1 - global.set $~lib/math/random_seeded - 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 - i64.const 17 - i64.shr_u - local.get $1 - 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 $~start - nop - ) -) diff --git a/tests/compiler/wasi/seed.ts b/tests/compiler/wasi/seed.ts deleted file mode 100644 index a315eddef3..0000000000 --- a/tests/compiler/wasi/seed.ts +++ /dev/null @@ -1,5 +0,0 @@ -import "wasi"; - -export function test(): f64 { - return Math.random(); -} diff --git a/tests/compiler/wasi/snapshot_preview1.debug.wat b/tests/compiler/wasi/snapshot_preview1.debug.wat deleted file mode 100644 index 7e8cefdb7d..0000000000 --- a/tests/compiler/wasi/snapshot_preview1.debug.wat +++ /dev/null @@ -1,211 +0,0 @@ -(module - (type $none_=>_none (func)) - (global $~lib/shared/target/Target.JS i32 (i32.const 0)) - (global $~lib/shared/target/Target.WASM32 i32 (i32.const 1)) - (global $~lib/shared/target/Target.WASM64 i32 (i32.const 2)) - (global $~lib/native/ASC_TARGET i32 (i32.const 1)) - (global $wasi/snapshot_preview1/sig (mut i32) (i32.const 1)) - (global $~lib/memory/__data_end i32 (i32.const 8)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 16392)) - (global $~lib/memory/__heap_base i32 (i32.const 16392)) - (memory $0 0) - (table $0 1 1 funcref) - (elem $0 (i32.const 1)) - (export "memory" (memory $0)) - (start $~start) - (func $start:wasi/snapshot_preview1 - i32.const 0 - i32.const 0 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 16 - i32.const 16 - i32.eq - drop - i32.const 20 - i32.const 20 - i32.eq - drop - i32.const 24 - i32.const 24 - i32.eq - drop - i32.const 0 - i32.const 0 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 10 - i32.const 10 - i32.eq - drop - i32.const 16 - i32.const 16 - i32.eq - drop - i32.const 24 - i32.const 24 - i32.eq - drop - i32.const 32 - i32.const 32 - i32.eq - drop - i32.const 32 - i32.const 32 - i32.eq - drop - i32.const 0 - i32.const 0 - i32.eq - drop - i32.const 2 - i32.const 2 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 16 - i32.const 16 - i32.eq - drop - i32.const 24 - i32.const 24 - i32.eq - drop - i32.const 0 - i32.const 0 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 16 - i32.const 16 - i32.eq - drop - i32.const 24 - i32.const 24 - i32.eq - drop - i32.const 32 - i32.const 32 - i32.eq - drop - i32.const 40 - i32.const 40 - i32.eq - drop - i32.const 48 - i32.const 48 - i32.eq - drop - i32.const 56 - i32.const 56 - i32.eq - drop - i32.const 64 - i32.const 64 - i32.eq - drop - i32.const 0 - i32.const 0 - i32.eq - drop - i32.const 1 - global.get $~lib/shared/target/Target.WASM32 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 0 - i32.const 0 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 16 - i32.const 16 - i32.eq - drop - i32.const 24 - i32.const 24 - i32.eq - drop - i32.const 32 - i32.const 32 - i32.eq - drop - i32.const 40 - i32.const 40 - i32.eq - drop - i32.const 48 - i32.const 48 - i32.eq - drop - i32.const 0 - i32.const 0 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 16 - i32.const 16 - i32.eq - drop - i32.const 48 - i32.const 48 - i32.eq - drop - i32.const 48 - i32.const 48 - i32.eq - drop - i32.const 0 - i32.const 0 - i32.eq - drop - i32.const 1 - global.get $~lib/shared/target/Target.WASM32 - i32.eq - drop - i32.const 4 - i32.const 4 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 8 - i32.const 8 - i32.eq - drop - i32.const 9 - global.set $wasi/snapshot_preview1/sig - ) - (func $~start - call $start:wasi/snapshot_preview1 - ) -) diff --git a/tests/compiler/wasi/snapshot_preview1.json b/tests/compiler/wasi/snapshot_preview1.json deleted file mode 100644 index 1bdd02b1be..0000000000 --- a/tests/compiler/wasi/snapshot_preview1.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "asc_flags": [ - ] -} diff --git a/tests/compiler/wasi/snapshot_preview1.release.wat b/tests/compiler/wasi/snapshot_preview1.release.wat deleted file mode 100644 index 23da3862e2..0000000000 --- a/tests/compiler/wasi/snapshot_preview1.release.wat +++ /dev/null @@ -1,4 +0,0 @@ -(module - (memory $0 0) - (export "memory" (memory $0)) -) diff --git a/tests/compiler/wasi/snapshot_preview1.ts b/tests/compiler/wasi/snapshot_preview1.ts deleted file mode 100644 index 1ee34b7877..0000000000 --- a/tests/compiler/wasi/snapshot_preview1.ts +++ /dev/null @@ -1,90 +0,0 @@ -import { - dirent, - event, - event_fd_readwrite, - fdstat, - filestat, - iovec, - subscription, - subscription_clock, - subscription_fd_readwrite, - signal, - prestat, - prestat_dir -} from "bindings/wasi"; - -import { Target } from "shared/target"; - -assert(offsetof("next") == 0); -assert(offsetof("ino") == 8); -assert(offsetof("namlen") == 16); -assert(offsetof("type") == 20); -assert(offsetof() == 24); - -assert(offsetof("userdata") == 0); -assert(offsetof("error") == 8); -assert(offsetof("type") == 10); -assert(offsetof("nbytes") == 16); -assert(offsetof("flags") == 24); -assert(offsetof() == 32); - -assert(offsetof() == 32); - -assert(offsetof("filetype") == 0); -assert(offsetof("flags") == 2); -assert(offsetof("rights_base") == 8); -assert(offsetof("rights_inheriting") == 16); -assert(offsetof() == 24); - -assert(offsetof("dev") == 0); -assert(offsetof("ino") == 8); -assert(offsetof("filetype") == 16); -assert(offsetof("nlink") == 24); -assert(offsetof("size") == 32); -assert(offsetof("atim") == 40); -assert(offsetof("mtim") == 48); -assert(offsetof("ctim") == 56); -assert(offsetof() == 64); - -assert(offsetof("buf") == 0); -if (ASC_TARGET == Target.WASM32) { - assert(offsetof("buf_len") == 4); - assert(offsetof() == 8); -} else if (ASC_TARGET == Target.WASM64) { - assert(offsetof("buf_len") == 8); - assert(offsetof() == 16); -} else { - assert(false); -} - -assert(offsetof("userdata") == 0); -assert(offsetof("type") == 8); -assert(offsetof("clock_id") == 16); -assert(offsetof("timeout") == 24); -assert(offsetof("precision") == 32); -assert(offsetof("flags") == 40); -assert(offsetof() == 48); - -assert(offsetof("userdata") == 0); -assert(offsetof("type") == 8); -assert(offsetof("file_descriptor") == 16); -assert(offsetof() == 48); - -assert(offsetof() == 48); - -assert(offsetof("type") == 0); -if (ASC_TARGET == Target.WASM32) { - assert(offsetof("name_len") == 4); - assert(offsetof() == 8); - assert(offsetof() == 8); -} else if (ASC_TARGET == Target.WASM64) { - assert(offsetof("name_len") == 8); - assert(offsetof() == 16); - assert(offsetof() == 16); -} else { - assert(false); -} - -// check assignability of mimicked typed enums -var sig: signal = signal.HUP; -sig = signal.KILL; diff --git a/tests/compiler/wasi/trace.debug.wat b/tests/compiler/wasi/trace.debug.wat deleted file mode 100644 index 420c70530c..0000000000 --- a/tests/compiler/wasi/trace.debug.wat +++ /dev/null @@ -1,3994 +0,0 @@ -(module - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_=>_i32 (func (param i32) (result i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $none_=>_none (func)) - (type $i32_i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32 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_=>_none (func (param i32 i32 i32))) - (type $i32_f64_=>_i32 (func (param i32 f64) (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_i64_i32_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i32 i64 i32 i64 i32) (result i32))) - (type $i32_i32_f64_f64_f64_f64_f64_=>_none (func (param i32 i32 f64 f64 f64 f64 f64))) - (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))) - (global $~lib/shared/runtime/Runtime.Stub i32 (i32.const 0)) - (global $~lib/shared/runtime/Runtime.Minimal i32 (i32.const 1)) - (global $~lib/shared/runtime/Runtime.Incremental i32 (i32.const 2)) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~lib/native/ASC_LOW_MEMORY_LIMIT i32 (i32.const 0)) - (global $~lib/native/ASC_SHRINK_LEVEL i32 (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) - (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) - (global $~lib/util/number/_exp (mut i32) (i32.const 0)) - (global $~lib/util/number/_K (mut i32) (i32.const 0)) - (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) - (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/memory/__data_end i32 (i32.const 1616)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 18000)) - (global $~lib/memory/__heap_base i32 (i32.const 18000)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 12) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e\00\00\00\00\00\00\00") - (data (i32.const 60) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e\00\00\00\00\00\00\00\00\00") - (data (i32.const 124) ",\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s\00") - (data (i32.const 172) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00") - (data (i32.const 236) "<\00\00\00\00\00\00\00\00\00\00\00\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e\00\00\00\00\00") - (data (i32.const 304) "\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>> 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.stderr.write(message); - }, - proc_exit: function(code) { - console.log("exit: " + code); - } - }; -} - -export function postInstantiate(instance) { - const exports = instance.exports; - memory = exports.memory; - if (failed) throw Error(failed); -} diff --git a/tests/compiler/wasi/trace.json b/tests/compiler/wasi/trace.json deleted file mode 100644 index 1bdd02b1be..0000000000 --- a/tests/compiler/wasi/trace.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "asc_flags": [ - ] -} diff --git a/tests/compiler/wasi/trace.release.wat b/tests/compiler/wasi/trace.release.wat deleted file mode 100644 index f58ef99384..0000000000 --- a/tests/compiler/wasi/trace.release.wat +++ /dev/null @@ -1,2952 +0,0 @@ -(module - (type $i32_i32_i32_=>_i32 (func (param i32 i32 i32) (result i32))) - (type $i32_i32_=>_none (func (param i32 i32))) - (type $i32_i32_i32_=>_none (func (param i32 i32 i32))) - (type $none_=>_none (func)) - (type $i32_f64_=>_i32 (func (param i32 f64) (result i32))) - (type $i32_i32_i32_i32_=>_i32 (func (param i32 i32 i32 i32) (result i32))) - (type $i32_=>_none (func (param i32))) - (type $i32_i32_i32_i32_=>_none (func (param i32 i32 i32 i32))) - (type $i32_i32_=>_i32 (func (param i32 i32) (result i32))) - (type $i32_i64_i64_i32_i64_i32_=>_i32 (func (param i32 i64 i64 i32 i64 i32) (result i32))) - (type $i32_f64_f64_f64_f64_f64_=>_none (func (param i32 f64 f64 f64 f64 f64))) - (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))) - (global $~lib/rt/tlsf/ROOT (mut i32) (i32.const 0)) - (global $~argumentsLength (mut i32) (i32.const 0)) - (global $~lib/util/number/_frc_plus (mut i64) (i64.const 0)) - (global $~lib/util/number/_frc_minus (mut i64) (i64.const 0)) - (global $~lib/util/number/_exp (mut i32) (i32.const 0)) - (global $~lib/util/number/_K (mut i32) (i32.const 0)) - (global $~lib/util/number/_frc_pow (mut i64) (i64.const 0)) - (global $~lib/util/number/_exp_pow (mut i32) (i32.const 0)) - (global $~lib/memory/__stack_pointer (mut i32) (i32.const 19024)) - (global $~started (mut i32) (i32.const 0)) - (memory $0 1) - (data (i32.const 1036) ",") - (data (i32.const 1048) "\01\00\00\00\16\00\00\00t\00h\00e\00 \00m\00e\00s\00s\00a\00g\00e") - (data (i32.const 1084) "<") - (data (i32.const 1096) "\01\00\00\00$\00\00\00U\00n\00p\00a\00i\00r\00e\00d\00 \00s\00u\00r\00r\00o\00g\00a\00t\00e") - (data (i32.const 1148) ",") - (data (i32.const 1160) "\01\00\00\00\1c\00\00\00~\00l\00i\00b\00/\00s\00t\00r\00i\00n\00g\00.\00t\00s") - (data (i32.const 1196) "<") - (data (i32.const 1208) "\01\00\00\00\1e\00\00\00~\00l\00i\00b\00/\00r\00t\00/\00t\00l\00s\00f\00.\00t\00s") - (data (i32.const 1260) "<") - (data (i32.const 1272) "\01\00\00\00(\00\00\00A\00l\00l\00o\00c\00a\00t\00i\00o\00n\00 \00t\00o\00o\00 \00l\00a\00r\00g\00e") - (data (i32.const 1328) "\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 Date: Wed, 17 Aug 2022 04:38:04 +0200 Subject: [PATCH 2/7] without a trace --- cli/options.json | 4 +- src/common.ts | 1 - src/compiler.ts | 5 -- src/program.ts | 6 -- std/assembly/console.ts | 108 +++------------------------ std/assembly/index.d.ts | 6 +- tests/compiler/std/console.debug.wat | 18 ----- 7 files changed, 14 insertions(+), 134 deletions(-) diff --git a/cli/options.json b/cli/options.json index 91254ddc44..25b71075eb 100644 --- a/cli/options.json +++ b/cli/options.json @@ -157,8 +157,8 @@ "category": "Features", "description": [ "Exports the start function using the specified name instead", - "of calling it implicitly. Useful for WASI or to obtain the", - "exported memory before executing any code accessing it." + "of calling it implicitly. Useful to obtain the exported memory", + "before executing any code accessing it." ], "type": "s" }, diff --git a/src/common.ts b/src/common.ts index 661dbd1143..3fec37e0ca 100644 --- a/src/common.ts +++ b/src/common.ts @@ -169,7 +169,6 @@ export namespace CommonNames { export const ASC_SHRINK_LEVEL = "ASC_SHRINK_LEVEL"; export const ASC_LOW_MEMORY_LIMIT = "ASC_LOW_MEMORY_LIMIT"; export const ASC_EXPORT_RUNTIME = "ASC_EXPORT_RUNTIME"; - 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"; diff --git a/src/compiler.ts b/src/compiler.ts index 16454f998c..0fa19d35cd 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -760,11 +760,6 @@ export class Compiler extends DiagnosticEmitter { // compile the start function if not empty or if explicitly requested var startIsEmpty = !startFunctionBody.length; var exportStart = options.exportStart; - if (program.isWasi && !exportStart) { - // Try to do the right thing for WASI. If the module has custom function - // exports it is likely a reactor, otherwise it is likely a command. - exportStart = this.hasCustomFunctionExports ? "_initialize" : "_start"; - } if (!startIsEmpty || exportStart != null) { let signature = startFunctionInstance.signature; if (!startIsEmpty && exportStart != null) { diff --git a/src/program.ts b/src/program.ts index f2169560f6..a393d3f361 100644 --- a/src/program.ts +++ b/src/program.ts @@ -781,11 +781,6 @@ export class Program extends DiagnosticEmitter { // Utility - /** Tests whether this is a WASI program. */ - get isWasi(): bool { - return this.elementsByName.has(CommonNames.ASC_WASI); - } - /** Obtains the source matching the specified internal path. */ getSource(internalPath: string): string | null { var sources = this.sources; @@ -1401,7 +1396,6 @@ export class Program extends DiagnosticEmitter { { let globalAliases = options.globalAliases; if (!globalAliases) globalAliases = new Map(); - let isWasi = this.isWasi; if (!globalAliases.has(CommonNames.abort)) { globalAliases.set(CommonNames.abort, BuiltinNames.abort); } diff --git a/std/assembly/console.ts b/std/assembly/console.ts index c65771a2df..5d495dab47 100644 --- a/std/assembly/console.ts +++ b/std/assembly/console.ts @@ -12,128 +12,38 @@ import { export namespace console { export function assert(condition: T, message: string = ""): void { - if (isDefined(ASC_WASI)) { - if (!condition) { - let stderr = process.stderr; - stderr.write("Assertion failed: "); - stderr.write(message); - stderr.write("\n"); - } - } else { - binding.assert(!!condition, message); - } + binding.assert(!!condition, message); } export function log(message: string = ""): void { - if (isDefined(ASC_WASI)) { - let stdout = process.stdout; - stdout.write(message); - stdout.write("\n"); - } else { - binding.log(message); - } + binding.log(message); } export function debug(message: string = ""): void { - if (isDefined(ASC_WASI)) { - let stdout = process.stdout; - stdout.write("Debug: "); - stdout.write(message); - stdout.write("\n"); - } else { - binding.debug(message); - } + binding.debug(message); } export function info(message: string = ""): void { - if (isDefined(ASC_WASI)) { - let stdout = process.stdout; - stdout.write("Info: "); - stdout.write(message); - stdout.write("\n"); - } else { - binding.info(message); - } + binding.info(message); } export function warn(message: string = ""): void { - if (isDefined(ASC_WASI)) { - let stdout = process.stdout; - stdout.write("Warning: "); - stdout.write(message); - stdout.write("\n"); - } else { - binding.warn(message); - } + binding.warn(message); } export function error(message: string = ""): void { - if (isDefined(ASC_WASI)) { - let stdout = process.stdout; - stdout.write("Error: "); - stdout.write(message); - stdout.write("\n"); - } else { - binding.error(message); - } + binding.error(message); } export function time(label: string = "default"): void { - if (isDefined(ASC_WASI)) { - let stdout = process.stdout; - if (timers.has(label)) { - stdout.write("Warning: Label '"); - stdout.write(label); - stdout.write("' already exists for console.time()\n"); - return; - } - timers.set(label, process.hrtime()); - } else { - binding.time(label); - } + binding.time(label); } export function timeLog(label: string = "default"): void { - if (isDefined(ASC_WASI)) { - let stdout = process.stdout; - if (!timers.has(label)) { - stdout.write("Warning: No such label '"); - stdout.write(label); - stdout.write("' for console.timeLog()\n"); - return; - } - timeLogImpl(label); - } else { - binding.timeLog(label); - } + binding.timeLog(label); } export function timeEnd(label: string = "default"): void { - if (isDefined(ASC_WASI)) { - let stdout = process.stdout; - if (!timers.has(label)) { - stdout.write("Warning: No such label '"); - stdout.write(label); - stdout.write("' for console.timeEnd()\n"); - return; - } - timeLogImpl(label); - timers.delete(label); - } else { - binding.timeEnd(label); - } + binding.timeEnd(label); } } - -function timeLogImpl(label: string): void { - var start = changetype(timers.get(label)); - var end = process.hrtime(); - var nanos = end - start; - var millis = nanos / 1000000; - var millisStr = millis.toString(); - var stdout = process.stdout; - stdout.write(label); - stdout.write(": "); - stdout.write(millisStr); - stdout.write("ms\n"); -} diff --git a/std/assembly/index.d.ts b/std/assembly/index.d.ts index 243e6c8229..51e8ab17cc 100644 --- a/std/assembly/index.d.ts +++ b/std/assembly/index.d.ts @@ -2175,7 +2175,7 @@ declare function trace(msg: string, n?: i32, a0?: f64, a1?: f64, a2?: f64, a3?: /** Environmental seeding function. */ declare function seed(): f64; -/** Node-like process on top of WASI. */ +/** Node-like process. */ declare namespace process { /** String representing the CPU architecture for which the binary was compiled. Either `wasm32` or `wasm64`. */ export const arch: string; @@ -2214,7 +2214,7 @@ declare namespace process { } } -/** Browser-like console on top of WASI. */ +/** Browser-like console. */ declare namespace console { /** Logs `message` to console if `assertion` is false-ish. */ export function assert(assertion: T, message?: string): void; @@ -2236,7 +2236,7 @@ declare namespace console { export function timeEnd(label?: string): void; } -/** Browser-like crypto utilities on top of WASI. */ +/** Browser-like crypto utilities. */ declare namespace crypto { /** Fills `array` with cryptographically strong random values. */ export function getRandomValues(array: Uint8Array): void; diff --git a/tests/compiler/std/console.debug.wat b/tests/compiler/std/console.debug.wat index 4315b53355..a22d7f7361 100644 --- a/tests/compiler/std/console.debug.wat +++ b/tests/compiler/std/console.debug.wat @@ -36,8 +36,6 @@ (export "memory" (memory $0)) (start $~start) (func $~lib/console/console.assert (param $0 i32) (param $1 i32) - i32.const 0 - drop local.get $0 i32.eqz i32.eqz @@ -45,50 +43,34 @@ call $~lib/bindings/dom/console.assert ) (func $~lib/console/console.log (param $0 i32) - i32.const 0 - drop local.get $0 call $~lib/bindings/dom/console.log ) (func $~lib/console/console.debug (param $0 i32) - i32.const 0 - drop local.get $0 call $~lib/bindings/dom/console.debug ) (func $~lib/console/console.info (param $0 i32) - i32.const 0 - drop local.get $0 call $~lib/bindings/dom/console.info ) (func $~lib/console/console.warn (param $0 i32) - i32.const 0 - drop local.get $0 call $~lib/bindings/dom/console.warn ) (func $~lib/console/console.error (param $0 i32) - i32.const 0 - drop local.get $0 call $~lib/bindings/dom/console.error ) (func $~lib/console/console.time (param $0 i32) - i32.const 0 - drop local.get $0 call $~lib/bindings/dom/console.time ) (func $~lib/console/console.timeLog (param $0 i32) - i32.const 0 - drop local.get $0 call $~lib/bindings/dom/console.timeLog ) (func $~lib/console/console.timeEnd (param $0 i32) - i32.const 0 - drop local.get $0 call $~lib/bindings/dom/console.timeEnd ) From 55421562e9f489859f8fa299041e077f2fb1b70a Mon Sep 17 00:00:00 2001 From: dcode Date: Wed, 17 Aug 2022 04:41:29 +0200 Subject: [PATCH 3/7] unused now --- std/assembly/console.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/std/assembly/console.ts b/std/assembly/console.ts index 5d495dab47..26a18a4e81 100644 --- a/std/assembly/console.ts +++ b/std/assembly/console.ts @@ -1,14 +1,7 @@ -import { - process -} from "./process"; - import { console as binding } from "./bindings/dom"; -// @ts-ignore: decorator -@lazy var timers = new Map(); - export namespace console { export function assert(condition: T, message: string = ""): void { From 338fcb8f9e8452e0b74f97f9a0db05021c3d7e2d Mon Sep 17 00:00:00 2001 From: dcode Date: Thu, 18 Aug 2022 16:11:13 +0200 Subject: [PATCH 4/7] support overriding Date.now --- std/assembly/date.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/std/assembly/date.ts b/std/assembly/date.ts index be7d064115..9c993bbf13 100644 --- a/std/assembly/date.ts +++ b/std/assembly/date.ts @@ -38,6 +38,8 @@ export class Date { } @inline static now(): i64 { + // @ts-ignore: allow global override + if (isDefined(Date_now)) return Date_now(); return Date_binding.now(); } From 612af534999e7f47b209cd3d6899b4a175222cce Mon Sep 17 00:00:00 2001 From: dcode Date: Fri, 19 Aug 2022 18:52:13 +0200 Subject: [PATCH 5/7] update fixture --- tests/compiler/std/date.debug.wat | 8 ++++---- tests/compiler/std/date.release.wat | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index 5a5484b126..a3bc08b7bc 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -2502,7 +2502,7 @@ if i32.const 32 i32.const 80 - i32.const 112 + i32.const 114 i32.const 28 call $~lib/builtins/abort unreachable @@ -5649,7 +5649,7 @@ if i32.const 32 i32.const 80 - i32.const 50 + i32.const 52 i32.const 33 call $~lib/builtins/abort unreachable @@ -5715,7 +5715,7 @@ if i32.const 32 i32.const 80 - i32.const 67 + i32.const 69 i32.const 21 call $~lib/builtins/abort unreachable @@ -9106,7 +9106,7 @@ if i32.const 32 i32.const 80 - i32.const 100 + i32.const 102 i32.const 35 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 5629d101f5..2415d6a405 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -1897,7 +1897,7 @@ if i32.const 1056 i32.const 1104 - i32.const 112 + i32.const 114 i32.const 28 call $~lib/builtins/abort unreachable @@ -4509,7 +4509,7 @@ if i32.const 1056 i32.const 1104 - i32.const 50 + i32.const 52 i32.const 33 call $~lib/builtins/abort unreachable @@ -4560,7 +4560,7 @@ if i32.const 1056 i32.const 1104 - i32.const 67 + i32.const 69 i32.const 21 call $~lib/builtins/abort unreachable @@ -8056,7 +8056,7 @@ if i32.const 1056 i32.const 1104 - i32.const 100 + i32.const 102 i32.const 35 call $~lib/builtins/abort unreachable From 5d65f8e75e8fc6e4375cb25a40ce0a97ff0cc0a7 Mon Sep 17 00:00:00 2001 From: dcode Date: Sat, 20 Aug 2022 23:39:38 +0200 Subject: [PATCH 6/7] no longer necessary --- std/assembly/date.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/std/assembly/date.ts b/std/assembly/date.ts index 9c993bbf13..be7d064115 100644 --- a/std/assembly/date.ts +++ b/std/assembly/date.ts @@ -38,8 +38,6 @@ export class Date { } @inline static now(): i64 { - // @ts-ignore: allow global override - if (isDefined(Date_now)) return Date_now(); return Date_binding.now(); } From 2b738999fd1349fce28e5e536cc120abaf7f161f Mon Sep 17 00:00:00 2001 From: dcode Date: Sat, 20 Aug 2022 23:40:12 +0200 Subject: [PATCH 7/7] update fixture --- tests/compiler/std/date.debug.wat | 8 ++++---- tests/compiler/std/date.release.wat | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index a3bc08b7bc..5a5484b126 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -2502,7 +2502,7 @@ if i32.const 32 i32.const 80 - i32.const 114 + i32.const 112 i32.const 28 call $~lib/builtins/abort unreachable @@ -5649,7 +5649,7 @@ if i32.const 32 i32.const 80 - i32.const 52 + i32.const 50 i32.const 33 call $~lib/builtins/abort unreachable @@ -5715,7 +5715,7 @@ if i32.const 32 i32.const 80 - i32.const 69 + i32.const 67 i32.const 21 call $~lib/builtins/abort unreachable @@ -9106,7 +9106,7 @@ if i32.const 32 i32.const 80 - i32.const 102 + i32.const 100 i32.const 35 call $~lib/builtins/abort unreachable diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 2415d6a405..5629d101f5 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -1897,7 +1897,7 @@ if i32.const 1056 i32.const 1104 - i32.const 114 + i32.const 112 i32.const 28 call $~lib/builtins/abort unreachable @@ -4509,7 +4509,7 @@ if i32.const 1056 i32.const 1104 - i32.const 52 + i32.const 50 i32.const 33 call $~lib/builtins/abort unreachable @@ -4560,7 +4560,7 @@ if i32.const 1056 i32.const 1104 - i32.const 69 + i32.const 67 i32.const 21 call $~lib/builtins/abort unreachable @@ -8056,7 +8056,7 @@ if i32.const 1056 i32.const 1104 - i32.const 102 + i32.const 100 i32.const 35 call $~lib/builtins/abort unreachable